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 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 26const unsigned char *Baz (const char *string) 27{ 28 return Foo (string); 29} 30 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