diff options
author | Hans Wennborg <hans@hanshq.net> | 2014-09-04 22:16:48 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2014-09-04 22:16:48 +0000 |
commit | 93dbeae0f7345b34080082a17fd0568aa2afe292 (patch) | |
tree | 3757ccc988400b9c48aa0b7e668a11aac9c5835f /clang/test/Sema/ms-inline-asm.c | |
parent | d62cdd2c14c481e6d3e7fdebc17baba2ba447b24 (diff) | |
download | bcm5719-llvm-93dbeae0f7345b34080082a17fd0568aa2afe292.tar.gz bcm5719-llvm-93dbeae0f7345b34080082a17fd0568aa2afe292.zip |
Don't allow inline asm statements to reference parameters in naked functions
Differential Revision: http://reviews.llvm.org/D5183
llvm-svn: 217200
Diffstat (limited to 'clang/test/Sema/ms-inline-asm.c')
-rw-r--r-- | clang/test/Sema/ms-inline-asm.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/test/Sema/ms-inline-asm.c b/clang/test/Sema/ms-inline-asm.c index d4227027d7c..358b0bd4543 100644 --- a/clang/test/Sema/ms-inline-asm.c +++ b/clang/test/Sema/ms-inline-asm.c @@ -103,3 +103,14 @@ void t4() { void test_operand_size() { __asm { call word t4 } // expected-error {{Expected 'PTR' or 'ptr' token!}} } + +__declspec(naked) int t5(int x) { // expected-note {{attribute is here}} + asm { movl eax, x } // expected-error {{parameter references not allowed in naked functions}} + asm { retl } +} + +int y; +__declspec(naked) int t6(int x) { + asm { mov eax, y } // No error. + asm { ret } +} |