Hi!
On Thu, 19 Apr 2012 19:46:17 +0200, I wrote:
> diff -ru fnsvb/20030922-1.c.003t.original fsvb/20030922-1.c.003t.original
> --- fnsvb/20030922-1.c.003t.original 2012-04-19 16:51:18.322150866 +0200
> +++ fsvb/20030922-1.c.003t.original 2012-04-19 16:49:18.132088498 +0200
> @@ -7,7 +7,7 @@
> switch ((int) common->code)
> {
> case 0:;
> - if (common->code != 0)
> + if ((BIT_FIELD_REF <*common, 32, 0> & 255) != 0)
> {
> abort ();
> }
>
> That is, for -fno-strict-volatile-bitfields the second instance of
> »common->code« it is a component_ref, whereas for
> -fstrict-volatile-bitfields it is a bit_field_ref.
Looking at 20030922-1.c.001t.tu I see this:
@2838 bit_field_ref type: @25
Where are the operands? Is the following patch correct/OK to check in?
gcc/
* tree-dump.c (dequeue_and_dump) <BIT_FIELD_REF>: Dump the three child
nodes.
Index: tree-dump.c
===================================================================
--- tree-dump.c (revision 186430)
+++ tree-dump.c (working copy)
@@ -596,6 +596,7 @@ dequeue_and_dump (dump_info_p di)
break;
case COMPONENT_REF:
+ case BIT_FIELD_REF:
dump_child ("op 0", TREE_OPERAND (t, 0));
dump_child ("op 1", TREE_OPERAND (t, 1));
dump_child ("op 2", TREE_OPERAND (t, 2));
Now I see:
@2838 bit_field_ref type: @25 op 0: @2847 op 1: @2848
op 2: @20
Grüße,
Thomas
pgpGosNel0lpz.pgp
Description: PGP signature
