diff options
-rw-r--r-- | lib/Sema/SemaStmtAsm.cpp | 18 | ||||
-rw-r--r-- | test/CodeGen/ms-inline-asm.c | 9 |
2 files changed, 1 insertions, 26 deletions
diff --git a/lib/Sema/SemaStmtAsm.cpp b/lib/Sema/SemaStmtAsm.cpp index 3c3a9eb0b5..9b6b6c929c 100644 --- a/lib/Sema/SemaStmtAsm.cpp +++ b/lib/Sema/SemaStmtAsm.cpp @@ -353,19 +353,6 @@ static StringRef getMSInlineAsmExprName(StringRef Name) { return Name; } -// getIdentifierInfo - Given a Name and a range of tokens, find the associated -// IdentifierInfo*. -static IdentifierInfo *getIdentifierInfo(StringRef Name, - ArrayRef<Token> AsmToks, - unsigned Begin, unsigned End) { - for (unsigned i = Begin; i <= End; ++i) { - IdentifierInfo *II = AsmToks[i].getIdentifierInfo(); - if (II && II->getName() == Name) - return II; - } - return 0; -} - // getSpelling - Get the spelling of the AsmTok token. static StringRef getSpelling(Sema &SemaRef, Token AsmTok) { StringRef Asm; @@ -624,10 +611,7 @@ StmtResult Sema::ActOnMSAsmStmt(SourceLocation AsmLoc, SourceLocation LBraceLoc, if (Context.getTargetInfo().isValidGCCRegisterName(Name)) continue; - IdentifierInfo *II = getIdentifierInfo(Name, AsmToks, - AsmTokRanges[StrIdx].first, - AsmTokRanges[StrIdx].second); - if (II) { + if (IdentifierInfo *II = &Context.Idents.get(Name)) { CXXScopeSpec SS; UnqualifiedId Id; SourceLocation Loc; diff --git a/test/CodeGen/ms-inline-asm.c b/test/CodeGen/ms-inline-asm.c index 30d922040b..00643406a8 100644 --- a/test/CodeGen/ms-inline-asm.c +++ b/test/CodeGen/ms-inline-asm.c @@ -167,12 +167,3 @@ unsigned t19(void) { // CHECK: t19 // CHECK: call void asm sideeffect inteldialect "mov eax, $2\0A\09mov $0, eax\0A\09mov eax, $3\0A\09mov $1, eax", "=*m,=*m,*m,*m,~{eax},~{dirflag},~{fpsr},~{flags}"(i32* %{{.*}}, i32* %{{.*}}, i32* %{{.*}}, i32* %{{.*}}) nounwind } - -void t20(void) { - __asm { - mov eax, fs:[0x10] - mov eax, [eax] - } -// CHECK: t20 -// call void asm sideeffect inteldialect "mov eax, fs:[0x10]\0A\09mov eax, [eax]", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind -} |