summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan A. Kosarev <ikosarev@accesssoftek.com>2017-12-21 08:14:16 +0000
committerIvan A. Kosarev <ikosarev@accesssoftek.com>2017-12-21 08:14:16 +0000
commit617c3b788a6031f5bc6561e035ba099bc4a459b2 (patch)
tree09c69228aac685d1a57047b84a110c914734ebfa
parent38af615b4c03cc0ed36c816e0cd722505bf385b9 (diff)
downloadbcm5719-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.cpp4
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();
OpenPOWER on IntegriCloud