diff options
author | Nico Weber <nicolasweber@gmx.de> | 2014-05-06 03:13:27 +0000 |
---|---|---|
committer | Nico Weber <nicolasweber@gmx.de> | 2014-05-06 03:13:27 +0000 |
commit | 9ef9ca470fbfbef88aadd2213e3d39574cdbba72 (patch) | |
tree | ce030c90044f33bb7c2afc24e7fa4d8a57a6c32e /clang/lib/Sema/SemaStmtAsm.cpp | |
parent | bdc4f12f1996a3070da0a24b469da9bf93f544dd (diff) | |
download | bcm5719-llvm-9ef9ca470fbfbef88aadd2213e3d39574cdbba72.tar.gz bcm5719-llvm-9ef9ca470fbfbef88aadd2213e3d39574cdbba72.zip |
Support field references to struct names and c++11 aliases from inline asm.
This is in addition to the existing support for typedefs.
llvm-svn: 208053
Diffstat (limited to 'clang/lib/Sema/SemaStmtAsm.cpp')
-rw-r--r-- | clang/lib/Sema/SemaStmtAsm.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaStmtAsm.cpp b/clang/lib/Sema/SemaStmtAsm.cpp index 1cbc901da67..e733fd0c334 100644 --- a/clang/lib/Sema/SemaStmtAsm.cpp +++ b/clang/lib/Sema/SemaStmtAsm.cpp @@ -441,8 +441,10 @@ bool Sema::LookupInlineAsmField(StringRef Base, StringRef Member, NamedDecl *FoundDecl = BaseResult.getFoundDecl(); if (VarDecl *VD = dyn_cast<VarDecl>(FoundDecl)) RT = VD->getType()->getAs<RecordType>(); - else if (TypedefDecl *TD = dyn_cast<TypedefDecl>(FoundDecl)) + else if (TypedefNameDecl *TD = dyn_cast<TypedefNameDecl>(FoundDecl)) RT = TD->getUnderlyingType()->getAs<RecordType>(); + else if (TypeDecl *TD = dyn_cast<TypeDecl>(FoundDecl)) + RT = TD->getTypeForDecl()->getAs<RecordType>(); if (!RT) return true; |