diff options
author | Ivan A. Kosarev <ikosarev@accesssoftek.com> | 2017-12-21 08:14:16 +0000 |
---|---|---|
committer | Ivan A. Kosarev <ikosarev@accesssoftek.com> | 2017-12-21 08:14:16 +0000 |
commit | 617c3b788a6031f5bc6561e035ba099bc4a459b2 (patch) | |
tree | 09c69228aac685d1a57047b84a110c914734ebfa | |
parent | 38af615b4c03cc0ed36c816e0cd722505bf385b9 (diff) | |
download | bcm5719-llvm-617c3b788a6031f5bc6561e035ba099bc4a459b2.tar.gz bcm5719-llvm-617c3b788a6031f5bc6561e035ba099bc4a459b2.zip |
[CodeGen] Fix access sizes in new-format TBAA tags
The new format requires to specify both the type of the access
and its size. This patch fixes setting access sizes for TBAA tags
that denote accesses to structure members. This fix affects all
future TBAA metadata tests for the new format, so I guess we
don't need any special tests for this fix.
Differential Revision: https://reviews.llvm.org/D41452
llvm-svn: 321250
-rw-r--r-- | clang/lib/CodeGen/CGExpr.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp index b61b273977d..90eeddf5cc0 100644 --- a/clang/lib/CodeGen/CGExpr.cpp +++ b/clang/lib/CodeGen/CGExpr.cpp @@ -3801,8 +3801,10 @@ LValue CodeGenFunction::EmitLValueForField(LValue base, FieldTBAAInfo.Offset += Layout.getFieldOffset(field->getFieldIndex()) / CharWidth; - // Update the final access type. + // Update the final access type and size. FieldTBAAInfo.AccessType = CGM.getTBAATypeInfo(FieldType); + FieldTBAAInfo.Size = + getContext().getTypeSizeInChars(FieldType).getQuantity(); } Address addr = base.getAddress(); |