diff options
author | Ivan Krasin <krasin@chromium.org> | 2011-08-24 20:22:22 +0000 |
---|---|---|
committer | Ivan Krasin <krasin@chromium.org> | 2011-08-24 20:22:22 +0000 |
commit | dd7403e612c8e5650fa78001e578f822c9e695c9 (patch) | |
tree | 388f3f9da8b997d2328133f92732e876252a386d /clang/test/Driver/le32-unknown-nacl.cpp | |
parent | 365af6f17bf5b68490feef24c11d4e882bebfc8a (diff) | |
download | bcm5719-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.cpp | 86 |
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)>(); +} |