Home | History | Annotate | Download | only in CodeGen
      1 // RUN: %clang_cc1 -emit-llvm %s  -o /dev/null
      2 
      3 /* In this testcase, the return value of foo() is being promoted to a register
      4  * which breaks stuff
      5  */
      6 int printf(const char * restrict format, ...);
      7 
      8 union X { char X; void *B; int a, b, c, d;};
      9 
     10 union X foo() {
     11   union X Global;
     12   Global.B = (void*)123;   /* Interesting part */
     13   return Global;
     14 }
     15 
     16 int main() {
     17   union X test = foo();
     18   printf("0x%p", test.B);
     19 }
     20