diff options
| author | Eli Friedman <eli.friedman@gmail.com> | 2009-05-30 21:09:44 +0000 |
|---|---|---|
| committer | Eli Friedman <eli.friedman@gmail.com> | 2009-05-30 21:09:44 +0000 |
| commit | f7f9f6872297089d40f0ac882a7c98c6d214fd96 (patch) | |
| tree | a8156d77b29e8afd74a2f04dce98b05a9b59523b /clang/lib/AST | |
| parent | 9499ab32879d1da02b35169488c149712f17b758 (diff) | |
| download | bcm5719-llvm-f7f9f6872297089d40f0ac882a7c98c6d214fd96.tar.gz bcm5719-llvm-f7f9f6872297089d40f0ac882a7c98c6d214fd96.zip | |
Some small fixes for fields of reference type.
llvm-svn: 72636
Diffstat (limited to 'clang/lib/AST')
| -rw-r--r-- | clang/lib/AST/ExprConstant.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp index 4ad2bec53bc..50fdcfd6eb2 100644 --- a/clang/lib/AST/ExprConstant.cpp +++ b/clang/lib/AST/ExprConstant.cpp @@ -231,7 +231,10 @@ APValue LValueExprEvaluator::VisitMemberExpr(MemberExpr *E) { FieldDecl *FD = dyn_cast<FieldDecl>(E->getMemberDecl()); if (!FD) // FIXME: deal with other kinds of member expressions return APValue(); - + + if (FD->getType()->isReferenceType()) + return APValue(); + // FIXME: This is linear time. unsigned i = 0; for (RecordDecl::field_iterator Field = RD->field_begin(Info.Ctx), @@ -1047,7 +1050,7 @@ unsigned IntExprEvaluator::GetAlignOfType(QualType T) { // Get information about the alignment. unsigned CharSize = Info.Ctx.Target.getCharWidth(); - // FIXME: Why do we ask for the preferred alignment? + // __alignof is defined to return the preferred alignment. return Info.Ctx.getPreferredTypeAlign(T.getTypePtr()) / CharSize; } |

