mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-26 14:58:59 -04:00

CodeGen/2003-08-21-WideString.c CodeGen/2003-10-02-UnionLValueError.c CodeGen/2004-02-20-Builtins.c CodeGen/2008-01-04-WideBitfield.c CodeGen/2002-07-14-MiscTests3.c CodeGen/2005-04-09-ComplexOps.c CodeGen/2008-12-23-AsmIntPointerTie.c CodeGen/2005-07-20-SqrtNoErrno.c CodeGen/2005-01-02-VAArgError-ICE.c CodeGen/2004-06-17-UnorderedCompares.c CodeGen/2002-06-25-FWriteInterfaceFailure.c CodeGen/2002-02-18-64bitConstant.c CodeGen/2002-05-24-Alloca.c CodeGen/2006-01-13-Includes.c CodeGen/2007-09-27-ComplexIntCompare.c CodeGen/2004-02-13-IllegalVararg.c CodeGen/2007-09-12-PragmaPack.c CodeGen/2002-08-02-UnionTest.c from test/FrontendC with changes to remove header file includes. llvm-svn: 136153
20 lines
416 B
C
20 lines
416 B
C
// RUN: %clang_cc1 -emit-llvm %s -o /dev/null
|
|
|
|
/* In this testcase, the return value of foo() is being promoted to a register
|
|
* which breaks stuff
|
|
*/
|
|
int printf(const char * restrict format, ...);
|
|
|
|
union X { char X; void *B; int a, b, c, d;};
|
|
|
|
union X foo() {
|
|
union X Global;
|
|
Global.B = (void*)123; /* Interesting part */
|
|
return Global;
|
|
}
|
|
|
|
int main() {
|
|
union X test = foo();
|
|
printf("0x%p", test.B);
|
|
}
|