diff options
| author | Alexander Potapenko <glider@google.com> | 2019-08-30 08:58:46 +0000 |
|---|---|---|
| committer | Alexander Potapenko <glider@google.com> | 2019-08-30 08:58:46 +0000 |
| commit | 57b87322ab4fd0033902938dbe00fd93e153cf78 (patch) | |
| tree | 3d79476d15aaa90a9a27b27088130d34550019f1 /clang/lib | |
| parent | fd66c8bf072d04b3d459150400f1ae5791be0586 (diff) | |
| download | bcm5719-llvm-57b87322ab4fd0033902938dbe00fd93e153cf78.tar.gz bcm5719-llvm-57b87322ab4fd0033902938dbe00fd93e153cf78.zip | |
[CodeGen]: fix error message for "=r" asm constraint
Summary:
Nico Weber reported that the following code:
char buf[9];
asm("" : "=r" (buf));
yields the "impossible constraint in asm: can't store struct into a register"
error message, although |buf| is not a struct (see
http://crbug.com/999160).
Make the error message more generic and add a test for it.
Also make sure other tests in x86_64-PR42672.c check for the full error
message.
Reviewers: eli.friedman, thakis
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D66948
llvm-svn: 370444
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/CodeGen/CGStmt.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGStmt.cpp b/clang/lib/CodeGen/CGStmt.cpp index 90974345bc3..707db04a892 100644 --- a/clang/lib/CodeGen/CGStmt.cpp +++ b/clang/lib/CodeGen/CGStmt.cpp @@ -2326,7 +2326,7 @@ void CodeGenFunction::EmitAsmStmt(const AsmStmt &S) { const Expr *OutExpr = S.getOutputExpr(i); CGM.Error( OutExpr->getExprLoc(), - "impossible constraint in asm: can't store struct into a register"); + "impossible constraint in asm: can't store value into a register"); return; } Dest = MakeAddrLValue(A, Ty); |

