| // { dg-do run } |
| // { dg-options "-O2" } |
| // |
| // Copyright (C) 2001 Free Software Foundation, Inc. |
| // Contributed by Nathan Sidwell 29 May 2001 <nathan@codesourcery.com> |
| |
| // Bug 2936. We ICE'd on tree inlining a function with an anonymous |
| // union decl. |
| |
| inline const unsigned char *Foo (const char *string) |
| { |
| union |
| { |
| const char *p1; |
| const unsigned char *p2; |
| }; |
| p1 = 0; |
| p2 = 0; |
| |
| |
| p1 = string; |
| return p2; |
| |
| } |
| |
| const unsigned char *Baz (const char *string) |
| { |
| return Foo (string); |
| } |
| |
| int main () |
| { |
| const char *string = "s"; |
| const unsigned char *result; |
| |
| result = Baz (string); |
| return (static_cast <const void *> (result) |
| != static_cast <const void *> (string)); |
| } |