summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/lib/AST/Stmt.cpp2
-rw-r--r--clang/lib/Sema/SemaStmt.cpp5
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();
}
OpenPOWER on IntegriCloud