From 38a4afeecdf392267ff73a27a69f458b5d8b424c Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Sun, 23 Apr 2006 18:04:33 +0000 Subject: re PR c++/26534 ([4.1] bitfield wrong optimize) 2006-04-23 Mark Mitchell PR c++/26534 * c-common.h (c_build_bitfield_integer_type): Declare. * c-decl.c (c_build_bitfield_integer_type): Move to ... * c-common.c (c_build_bitfield_integer_type): ... here. 2006-04-23 Mark Mitchell PR c++/26534 * cp-tree.h (is_bitfield_expr_with_lowered_type): New function. * typeck.c (is_bitfield_expr_with_lowered_type): New function. (decay_conversion): Convert bitfield expressions to the correct type. (build_modify_expr): Remove spurious conversions. * class.c (layout_class_type): Modify the type of bitfields to indicate a limited range. * call.c (standard_conversion): Adjust the type of bitfield expressions used in an rvalue context. (build_conditional_expr): Likewise. 2006-04-23 Mark Mitchell PR c++/26534 * g++.dg/opt/bitfield1.C: New test. * g++.dg/compat/abi/bitfield1_main.C: Add -w. * g++.dg/compat/abi/bitfield1_x.C: Likewise. * g++.dg/compat/abi/bitfield1_y.C: Likewise. * g++.dg/compat/abi/bitfield2_main.C: Likewise. * g++.dg/compat/abi/bitfield2_x.C: Likewise. * g++.dg/compat/abi/bitfield2_y.C: Likewise. * g++.dg/abi/bitfield1.C: Add dg-warning markers. * g++.dg/abi/bitfield2.C: Likewise. * g++.dg/init/bitfield1.C: Likewise. From-SVN: r113199 --- gcc/print-tree.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'gcc/print-tree.c') diff --git a/gcc/print-tree.c b/gcc/print-tree.c index 02e5c7b..eed02f2 100644 --- a/gcc/print-tree.c +++ b/gcc/print-tree.c @@ -458,6 +458,9 @@ print_node (FILE *file, const char *prefix, tree node, int indent) print_node (file, "offset", DECL_FIELD_OFFSET (node), indent + 4); print_node (file, "bit offset", DECL_FIELD_BIT_OFFSET (node), indent + 4); + if (DECL_BIT_FIELD_TYPE (node)) + print_node (file, "bit_field_type", DECL_BIT_FIELD_TYPE (node), + indent + 4); } print_node_brief (file, "context", DECL_CONTEXT (node), indent + 4); -- cgit v1.1