summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/builtin-ms-noop.cpp
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2014-07-11 23:54:29 +0000
committerReid Kleckner <reid@kleckner.net>2014-07-11 23:54:29 +0000
commitf392ec6ecc249a34731951baacf8ccf99f1a732d (patch)
tree60b5e549d680c99d54508c7c184b0b90b0b5bf55 /clang/test/CodeGen/builtin-ms-noop.cpp
parentcb314ceaa9bb803f1c77e6bb32f9c74686f1d876 (diff)
downloadbcm5719-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.cpp27
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
+}
OpenPOWER on IntegriCloud