diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/conversion/bitfield10.C')
-rw-r--r-- | gcc/testsuite/g++.dg/conversion/bitfield10.C | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/conversion/bitfield10.C b/gcc/testsuite/g++.dg/conversion/bitfield10.C new file mode 100644 index 000000000..f75504e0d --- /dev/null +++ b/gcc/testsuite/g++.dg/conversion/bitfield10.C @@ -0,0 +1,24 @@ +// PR c++/38007 +// We need to use the conversion function to the declared type of a bitfield, +// not the lowered bitfield type. +// { dg-do link } + +struct A +{ + operator unsigned int() { return 42; } + operator unsigned char(); +}; + +struct B +{ + unsigned int b : 8; +}; + +int +main () +{ + A u; + unsigned int v = u; + B w; + w.b = u; +} |