URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.c-torture/] [compile/] [20000825-1.c] - Rev 774
Go to most recent revision | Compare with Previous | Blame | View Log
typedef signed int s32; typedef signed long s64; typedef unsigned int u32; typedef unsigned long u64; extern __inline__ u32 foobar(int logmask) { u32 ret = ~(1 << logmask); // fails // s32 ret = ~(1 << logmask); // ok // u64 ret = ~(1 << logmask); // ok // s64 ret = ~(1 << logmask); // ok return ret; } // This procedure compiles fine... u32 good(u32 var) { var = foobar(0); return var; } // This procedure does not compile... // Same as above, but formal parameter is a pointer // Both good() and fails() compile ok if we choose // a different type for "ret" in foobar(). u32 fails(u32 *var) { *var = foobar(0); return *var; }
Go to most recent revision | Compare with Previous | Blame | View Log