summaryrefslogtreecommitdiffstats
path: root/clang/test/Driver/le32-unknown-nacl.cpp
diff options
context:
space:
mode:
authorIvan Krasin <krasin@chromium.org>2011-08-24 20:22:22 +0000
committerIvan Krasin <krasin@chromium.org>2011-08-24 20:22:22 +0000
commitdd7403e612c8e5650fa78001e578f822c9e695c9 (patch)
tree388f3f9da8b997d2328133f92732e876252a386d /clang/test/Driver/le32-unknown-nacl.cpp
parent365af6f17bf5b68490feef24c11d4e882bebfc8a (diff)
downloadbcm5719-llvm-dd7403e612c8e5650fa78001e578f822c9e695c9.tar.gz
bcm5719-llvm-dd7403e612c8e5650fa78001e578f822c9e695c9.zip
Add PNaCl TargetInfo.
llvm-svn: 138470
Diffstat (limited to 'clang/test/Driver/le32-unknown-nacl.cpp')
-rw-r--r--clang/test/Driver/le32-unknown-nacl.cpp86
1 files changed, 86 insertions, 0 deletions
diff --git a/clang/test/Driver/le32-unknown-nacl.cpp b/clang/test/Driver/le32-unknown-nacl.cpp
new file mode 100644
index 00000000000..2ec2bd538fe
--- /dev/null
+++ b/clang/test/Driver/le32-unknown-nacl.cpp
@@ -0,0 +1,86 @@
+// RUN: %clang -ccc-host-triple le32-unknown-nacl -ccc-echo %s -emit-llvm -c -o /tmp/OUTPUTNAME 2> %t.log
+
+// Make sure we used clang.
+// RUN: grep 'clang\(-[0-9.]\+\)\?\(\.[Ee][Xx][Ee]\)\?" -cc1 .*le32-unknown-nacl.c' %t.log
+
+// RUN: llvm-dis < /tmp/OUTPUTNAME | FileCheck %s
+
+// Check platform defines
+#include <stddef.h>
+
+extern "C" {
+
+#ifdef __native_client__
+void __native_client__defined() {
+ // CHECK: __native_client__defined
+}
+#endif
+
+#ifdef __le32__
+void __le32__defined() {
+ // CHECK: __le32__defined
+}
+#endif
+
+#ifdef __pnacl__
+void __pnacl__defined() {
+ // CHECK: __pnacl__defined
+}
+#endif
+
+// Check types
+
+// CHECK: signext i8 @check_char()
+char check_char() { return 0; }
+
+// CHECK: signext i16 @check_short()
+short check_short() { return 0; }
+
+// CHECK: i32 @check_int()
+int check_int() { return 0; }
+
+// CHECK: i32 @check_long()
+long check_long() { return 0; }
+
+// CHECK: i64 @check_longlong()
+long long check_longlong() { return 0; }
+
+// CHECK: zeroext i8 @check_uchar()
+unsigned char check_uchar() { return 0; }
+
+// CHECK: zeroext i16 @check_ushort()
+unsigned short check_ushort() { return 0; }
+
+// CHECK: i32 @check_uint()
+unsigned int check_uint() { return 0; }
+
+// CHECK: i32 @check_ulong()
+unsigned long check_ulong() { return 0; }
+
+// CHECK: i64 @check_ulonglong()
+unsigned long long check_ulonglong() { return 0; }
+
+// CHECK: i32 @check_size_t()
+size_t check_size_t() { return 0; }
+
+// CHECK: float @check_float()
+float check_float() { return 0; }
+
+// CHECK: double @check_double()
+double check_double() { return 0; }
+
+}
+
+// Check that pointers are 32-bit.
+
+template<int> void Switch();
+template<> void Switch<4>();
+template<> void Switch<8>();
+
+void check_pointer_size() {
+ // CHECK: SwitchILi4
+ Switch<sizeof(void*)>();
+
+ // CHECK: SwitchILi8
+ Switch<sizeof(long long)>();
+}
OpenPOWER on IntegriCloud