Benjamin Kramer
7ee3b9c0e4
Reject asm output constraints that consist of modifiers only.
...
Fixes PR15759.
llvm-svn: 179756
2013-04-18 13:23:23 +00:00
Bill Wendling
55ab0c5438
Simplify test to use a count for the number of notes expected.
...
llvm-svn: 178196
2013-03-27 23:26:09 +00:00
Tim Northover
c1ec2dbbd2
Add another expected note. Two errors => two notes.
...
llvm-svn: 178143
2013-03-27 13:50:57 +00:00
Bill Wendling
953c701b8b
Fix testcase to add expected note.
...
llvm-svn: 178122
2013-03-27 06:45:37 +00:00
Bill Wendling
c4fc3a2ba5
Emit an error message instead of crashing when dereferencing an incomplete pointer type.
...
If the ASM statement is dereferencing an incomplete pointer type, issue an error
instead of crashing.
<rdar://problem/12700799>
llvm-svn: 177915
2013-03-25 21:09:49 +00:00
Fariborz Jahanian
f85f338634
c: privide deprecated warning when __private_extern__ storage
...
specifier is unsed in a declaration; as it may not make the symbol
local to linkage unit as intended. Suggest using "hidden" visibility
attribute instead. // rdar://7703982
llvm-svn: 162138
2012-08-17 21:44:55 +00:00
Eric Christopher
af6431077c
Add support for AVX registers to clang inline asm. Add a small testcase
...
and update the Sema testcase with a register that we won't hit for a while
I hope.
Fixes rdar://10510405
llvm-svn: 145671
2011-12-02 02:12:16 +00:00
Eric Christopher
f7d303c541
Add a testcase for the previous commit and update an existing test for an
...
extra register.
Part of PR10299 and rdar://9740322
llvm-svn: 134657
2011-07-07 23:11:01 +00:00
Hans Wennborg
77d1abef07
Fix off-by-one error in StringLiteral::getLocationOfByte.
...
This fixes PR10223.
llvm-svn: 134183
2011-06-30 20:17:41 +00:00
Eric Christopher
fd9a5f4f66
Split out logic for valid clobbers and valid inline asm registers.
...
Fixes rdar://9281377
llvm-svn: 134016
2011-06-28 18:20:53 +00:00
John McCall
dfbf9341ad
Use a heralded conversion to bool in inline-asm constraints.
...
llvm-svn: 131170
2011-05-10 23:39:47 +00:00
Abramo Bagnara
1339223186
Added warning about invalid register specification for local variables.
...
llvm-svn: 123236
2011-01-11 15:16:52 +00:00
Rafael Espindola
478abcab3d
Produce a better error message for invalid register names.
...
llvm-svn: 122670
2011-01-01 21:47:03 +00:00
Anders Carlsson
2d5f8b4201
When setting a tied check if it's already tied. If it's tied to another constraint it's invalid. Fixes PR3905.
...
llvm-svn: 118146
2010-11-03 02:54:51 +00:00
Anders Carlsson
da1f5fc881
A number in an input constraint can't point to a read-write ('+') constraint. Fixes PR3904.
...
llvm-svn: 118145
2010-11-03 02:22:29 +00:00
Chris Lattner
53fa04909c
make clang print types as "const int *" instead of "int const*",
...
which is should have done from the beginning. As usual, the most
fun with this sort of change is updating all the testcases.
llvm-svn: 113090
2010-09-05 00:04:01 +00:00
John McCall
9dfb16210e
Warn on top-level 'asm volatile' (instead of misparsing it).
...
"Fixes" rdar://problem/7574870
llvm-svn: 94458
2010-01-25 22:27:48 +00:00
Daniel Dunbar
8fbe78f6fc
Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'.
...
- This is designed to make it obvious that %clang_cc1 is a "test variable"
which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it
can be useful to redefine what gets run as 'clang -cc1' (for example, to set
a default target).
llvm-svn: 91446
2009-12-15 20:14:24 +00:00
Eli Friedman
45966b4671
Remove the -arch option from clang-cc: for all practical purposes, it's
...
redundant with -triple.
llvm-svn: 72108
2009-05-19 11:12:40 +00:00
Chris Lattner
cb66c73a48
If we have mismatched integer tied operands, but the operand
...
number is not mentioned in the asm string, let it past sema.
Right now these are currently rejected by the llvm code generator
but this will be fixed next.
llvm-svn: 70670
2009-05-03 07:04:21 +00:00
Chris Lattner
574428e4db
implement PR4077: [Linux kernel] inscrutable error on inline asm input/output constraint mismatch
...
Before we emitted:
$ clang t.c -S -m64
llvm: error: Unsupported asm: input constraint with a matching output constraint of incompatible type!
Now we produce:
$ clang t.c -S -m64
t.c:5:40: error: unsupported inline asm: input with type 'unsigned long' matching output with type 'int'
asm volatile("foo " : "=a" (a) :"0" (b));
~~~ ~^~
llvm-svn: 70142
2009-04-26 18:22:24 +00:00
Daniel Dunbar
a45cf5b6b0
Rename clang to clang-cc.
...
Tests and drivers updated, still need to shuffle dirs.
llvm-svn: 67602
2009-03-24 02:24:46 +00:00
Chris Lattner
14311925f2
fix PR3258 by rejecting invalid numeric operands.
...
llvm-svn: 66618
2009-03-11 00:23:13 +00:00
Chris Lattner
3fa25c683f
checking for symbolic operands as well as % at end of string.
...
llvm-svn: 66614
2009-03-11 00:06:36 +00:00
Chris Lattner
a41b847401
reject invalid escape characters in extended-asm strings with a nice diagnostic.
...
llvm-svn: 66605
2009-03-10 23:51:40 +00:00
Anders Carlsson
570c357ded
If an input constraint refers to an output constraint, it should have the same constraint info as the output constraint. Fixes PR3417
...
llvm-svn: 63127
2009-01-27 20:38:24 +00:00
Anders Carlsson
a0b892113a
Handle the 'e' constraint. Fixes PR3385
...
llvm-svn: 62923
2009-01-24 18:03:09 +00:00
Anders Carlsson
dc6ceca4ba
Fix an inline asm sema bug that I introduced.
...
llvm-svn: 62666
2009-01-21 06:27:20 +00:00
Anders Carlsson
224fca8982
Improvements to Sema of asm statements. Fixes <rdar://problem/6156893>
...
llvm-svn: 62609
2009-01-20 20:49:22 +00:00
Anders Carlsson
a79203be85
Add sema support for symbolic names in inline asm statements.
...
llvm-svn: 62441
2009-01-18 01:56:57 +00:00
Chris Lattner
070968957e
Fix rdar://6094010 various asserts happening with wide strings in inline asm.
...
llvm-svn: 53947
2008-07-23 06:46:56 +00:00
Anders Carlsson
290aa8560b
Check that the clobber registers are valid.
...
llvm-svn: 44311
2007-11-25 00:25:21 +00:00
Anders Carlsson
80a5ea3552
Check asm input and output expressions.
...
llvm-svn: 44289
2007-11-23 19:43:50 +00:00