1 // { dg-do run } 2 // { dg-options "-O2" } 3 // 4 // Copyright (C) 2001 Free Software Foundation, Inc. 5 // Contributed by Nathan Sidwell 29 May 2001 <nathan@codesourcery.com> 6 7 // Bug 2936. We ICE'd on tree inlining a function with an anonymous 8 // union decl. 9 Foo(const char * string)10inline const unsigned char *Foo (const char *string) 11 { 12 union 13 { 14 const char *p1; 15 const unsigned char *p2; 16 }; 17 p1 = 0; 18 p2 = 0; 19 20 21 p1 = string; 22 return p2; 23 24 } 25 Baz(const char * string)26const unsigned char *Baz (const char *string) 27 { 28 return Foo (string); 29 } 30 main()31int main () 32 { 33 const char *string = "s"; 34 const unsigned char *result; 35 36 result = Baz (string); 37 return (static_cast <const void *> (result) 38 != static_cast <const void *> (string)); 39 } 40