svn commit: r331066 - head/contrib/llvm/tools/clang/lib/CodeGen
Dimitry Andric
dim at FreeBSD.org
Fri Mar 16 18:04:14 UTC 2018
Author: dim
Date: Fri Mar 16 18:04:13 2018
New Revision: 331066
URL: https://svnweb.freebsd.org/changeset/base/331066
Log:
Pull in r321999 from upstream clang trunk (by Ivan A. Kosarev):
[CodeGen] Fix TBAA info for accesses to members of base classes
Resolves:
Bug 35724 - regression (r315984): fatal error: error in backend:
Broken function found (Did not see access type in access path!)
https://bugs.llvm.org/show_bug.cgi?id=35724
Differential Revision: https://reviews.llvm.org/D41547
This fixes "Did not see access type in access path" fatal errors when
building the devel/gdb port (version 8.1).
Reported by: jbeich
PR: 226658
MFC after: 3 months
X-MFC-With: r327952
Modified:
head/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp
Modified: head/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp
==============================================================================
--- head/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp Fri Mar 16 17:50:44 2018 (r331065)
+++ head/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp Fri Mar 16 18:04:13 2018 (r331066)
@@ -1034,8 +1034,12 @@ Address CodeGenFunction::EmitPointerWithAlignment(cons
// Derived-to-base conversions.
case CK_UncheckedDerivedToBase:
case CK_DerivedToBase: {
- Address Addr = EmitPointerWithAlignment(CE->getSubExpr(), BaseInfo,
- TBAAInfo);
+ // TODO: Support accesses to members of base classes in TBAA. For now, we
+ // conservatively pretend that the complete object is of the base class
+ // type.
+ if (TBAAInfo)
+ *TBAAInfo = CGM.getTBAAAccessInfo(E->getType());
+ Address Addr = EmitPointerWithAlignment(CE->getSubExpr(), BaseInfo);
auto Derived = CE->getSubExpr()->getType()->getPointeeCXXRecordDecl();
return GetAddressOfBaseClass(Addr, Derived,
CE->path_begin(), CE->path_end(),
More information about the svn-src-head
mailing list