diff options
author | Reid Kleckner <reid@kleckner.net> | 2014-07-11 23:54:29 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2014-07-11 23:54:29 +0000 |
commit | f392ec6ecc249a34731951baacf8ccf99f1a732d (patch) | |
tree | 60b5e549d680c99d54508c7c184b0b90b0b5bf55 /clang/test/CodeGen/builtin-ms-noop.cpp | |
parent | cb314ceaa9bb803f1c77e6bb32f9c74686f1d876 (diff) | |
download | bcm5719-llvm-f392ec6ecc249a34731951baacf8ccf99f1a732d.tar.gz bcm5719-llvm-f392ec6ecc249a34731951baacf8ccf99f1a732d.zip |
Form a CallExpr from __noop without parens
MSVC accepts __noop without any trailing parens and treats it like a
literal zero. We don't treat __noop as an integer literal, but now at
least we can parse a naked __noop expression.
Reviewers: rsmith
Differential Revision: http://reviews.llvm.org/D4476
llvm-svn: 212860
Diffstat (limited to 'clang/test/CodeGen/builtin-ms-noop.cpp')
-rw-r--r-- | clang/test/CodeGen/builtin-ms-noop.cpp | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/clang/test/CodeGen/builtin-ms-noop.cpp b/clang/test/CodeGen/builtin-ms-noop.cpp index f5064fbf3c0..76c6c139d00 100644 --- a/clang/test/CodeGen/builtin-ms-noop.cpp +++ b/clang/test/CodeGen/builtin-ms-noop.cpp @@ -1,13 +1,30 @@ -// RUN: %clang_cc1 -fms-extensions -triple %itanium_abi_triple -emit-llvm %s -o - | FileCheck %s +// RUN: %clang_cc1 -fms-extensions -triple x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck %s -class A { - public: +struct A { ~A() {} }; -int f() { -// CHECK: @_Z1fv +extern "C" int f() { +// CHECK: define i32 @f() // CHECK-NOT: call void @_ZN1AD1Ev // CHECK: ret i32 0 return __noop(A()); }; + +extern "C" int g() { + return __noop; +// CHECK: define i32 @g() +// CHECK: ret i32 0 +} + +extern "C" int h() { + return (__noop); +// CHECK: define i32 @h() +// CHECK: ret i32 0 +} + +extern "C" int i() { + return __noop + 1; +// CHECK: define i32 @i() +// CHECK: ret i32 1 +} |