diff options
author | Chris Lattner <sabre@nondot.org> | 2005-10-27 16:59:06 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-10-27 16:59:06 +0000 |
commit | c9409e10d07737c335b7a73a22d3552f5413738b (patch) | |
tree | 7596b75631552866e7085170f179d75666bd76e0 | |
parent | 902f546f4b71019112475444acc4c14caa77a6d8 (diff) |
new testcase, from... PR491.
git-svn-id: https://llvm.org/svn/llvm-project/test-suite/trunk@24045 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | SingleSource/Regression/C/PR491.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/SingleSource/Regression/C/PR491.c b/SingleSource/Regression/C/PR491.c new file mode 100644 index 00000000..b082fa1f --- /dev/null +++ b/SingleSource/Regression/C/PR491.c @@ -0,0 +1,31 @@ +#include <stdio.h> + +static int assert_fail(const char* s, unsigned l) +{ + fprintf(stderr, "assertion failed in line %u: '%s'\n", l, s); + return 0; +} +#define ASSERT(expr) ((expr) ? 1 : assert_fail(#expr,__LINE__)) + +int test(int r) { +#if !defined(__i386__) + #if !defined(BYTE_ORDER) || !defined(LITTLE_ENDIAN) + return r; + #else + if (BYTE_ORDER != LITTLE_ENDIAN) return r; + #endif +#endif + + /* little endian */ + union { long l; unsigned char c[sizeof(long)]; } u; + u.l = 0; u.c[0] = 0x80; + r &= ASSERT(u.l == 128); + u.l = 0; u.c[sizeof(long)-1] = 0x80; + r &= ASSERT(u.l < 0); + return r; +} + +int main() { + return test(1) == 1; +} + |