| // { dg-do assemble } |
| |
| // Copyright (C) 1999, 2000 Free Software Foundation, Inc. |
| // Contributed by Nathan Sidwell 4 Jun 1999 <nathan@acm.org> |
| // Derived from a bug report from Stephan Riess <riess@bfw-online.de> |
| // http://gcc.gnu.org/ml/gcc-bugs/1999-06n/msg00107.html |
| |
| // Builtin ops don't always need reference bindings, and we weren't removing |
| // them always after doing overload resolution. This caused us to try and take |
| // the address of a bitfield. |
| |
| enum E {one}; |
| struct A { |
| E m1: 8; |
| E m2: 8; |
| unsigned m3 : 8; |
| unsigned m4 : 8; |
| }; |
| |
| int fn (int f) |
| { |
| A a; |
| E m1, m2; |
| E e; |
| int i; |
| |
| e = f ? m1 : m2; |
| e = f ? a.m1 : a.m2; |
| i = f ? a.m3 : a.m4; |
| (f ? m1 : m2) = e; |
| (f ? a.m1 : a.m2) = e; |
| (f ? a.m3 : a.m4) = i; |
| return 0; |
| } |