diff options
-rw-r--r-- | clang/lib/AST/Stmt.cpp | 2 | ||||
-rw-r--r-- | clang/lib/Sema/SemaStmt.cpp | 5 |
2 files changed, 3 insertions, 4 deletions
diff --git a/clang/lib/AST/Stmt.cpp b/clang/lib/AST/Stmt.cpp index 6fa40330889..8062884d7ea 100644 --- a/clang/lib/AST/Stmt.cpp +++ b/clang/lib/AST/Stmt.cpp @@ -288,7 +288,7 @@ unsigned AsmStmt::AnalyzeAsmString(llvm::SmallVectorImpl<AsmStringPiece>&Pieces, continue; } - DiagOffs = CurPtr-StrStart; + DiagOffs = CurPtr-StrStart-1; return diag::err_asm_invalid_escape; } } diff --git a/clang/lib/Sema/SemaStmt.cpp b/clang/lib/Sema/SemaStmt.cpp index 55f556444dc..32d295772cd 100644 --- a/clang/lib/Sema/SemaStmt.cpp +++ b/clang/lib/Sema/SemaStmt.cpp @@ -967,9 +967,8 @@ Sema::OwningStmtResult Sema::ActOnAsmStmt(SourceLocation AsmLoc, llvm::SmallVector<AsmStmt::AsmStringPiece, 8> Pieces; unsigned DiagOffs; if (unsigned DiagID = NS->AnalyzeAsmString(Pieces, Context, DiagOffs)) { - // FIXME: get offsets in strings working. - // StringLiteralParser::getOffsetOfStringByte - Diag(AsmString->getLocStart(), DiagID) << AsmString->getSourceRange(); + Diag(getLocationOfStringLiteralByte(AsmString, DiagOffs), DiagID) + << AsmString->getSourceRange(); DeleteStmt(NS); return StmtError(); } |