aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-pretty-print.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2019-05-15 12:51:58 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2019-05-15 12:51:58 +0000
commit186dabf2926eb049e9a954dae6fa765687dc353c (patch)
treeea83973516ee3b335eff72cd7babf0abc345356c /gcc/tree-pretty-print.c
parentfb4b60c68edf7196770fdc65b3862662bc2d647b (diff)
downloadgcc-186dabf2926eb049e9a954dae6fa765687dc353c.zip
gcc-186dabf2926eb049e9a954dae6fa765687dc353c.tar.gz
gcc-186dabf2926eb049e9a954dae6fa765687dc353c.tar.bz2
gimple-parser.c (c_parser_gimple_postfix_expression): Handle __BIT_FIELD_REF.
2019-05-15 Richard Biener <rguenther@suse.de> c/ * gimple-parser.c (c_parser_gimple_postfix_expression): Handle __BIT_FIELD_REF. * tree-pretty-print.c (dump_generic_node): Dump BIT_FIELD_REF as __BIT_FIELD_REF with type with -gimple. * gcc.dg/gimplefe-40.c: Amend. From-SVN: r271208
Diffstat (limited to 'gcc/tree-pretty-print.c')
-rw-r--r--gcc/tree-pretty-print.c40
1 files changed, 33 insertions, 7 deletions
diff --git a/gcc/tree-pretty-print.c b/gcc/tree-pretty-print.c
index 0af9c5d..6645a64 100644
--- a/gcc/tree-pretty-print.c
+++ b/gcc/tree-pretty-print.c
@@ -2111,13 +2111,39 @@ dump_generic_node (pretty_printer *pp, tree node, int spc, dump_flags_t flags,
break;
case BIT_FIELD_REF:
- pp_string (pp, "BIT_FIELD_REF <");
- dump_generic_node (pp, TREE_OPERAND (node, 0), spc, flags, false);
- pp_string (pp, ", ");
- dump_generic_node (pp, TREE_OPERAND (node, 1), spc, flags, false);
- pp_string (pp, ", ");
- dump_generic_node (pp, TREE_OPERAND (node, 2), spc, flags, false);
- pp_greater (pp);
+ if (flags & TDF_GIMPLE)
+ {
+ pp_string (pp, "__BIT_FIELD_REF <");
+ dump_generic_node (pp, TREE_TYPE (node),
+ spc, flags | TDF_SLIM, false);
+ if (TYPE_ALIGN (TREE_TYPE (node))
+ != TYPE_ALIGN (TYPE_MAIN_VARIANT (TREE_TYPE (node))))
+ {
+ pp_string (pp, ", ");
+ pp_decimal_int (pp, TYPE_ALIGN (TREE_TYPE (node)));
+ }
+ pp_greater (pp);
+ pp_string (pp, " (");
+ dump_generic_node (pp, TREE_OPERAND (node, 0), spc,
+ flags | TDF_SLIM, false);
+ pp_string (pp, ", ");
+ dump_generic_node (pp, TREE_OPERAND (node, 1), spc,
+ flags | TDF_SLIM, false);
+ pp_string (pp, ", ");
+ dump_generic_node (pp, TREE_OPERAND (node, 2), spc,
+ flags | TDF_SLIM, false);
+ pp_right_paren (pp);
+ }
+ else
+ {
+ pp_string (pp, "BIT_FIELD_REF <");
+ dump_generic_node (pp, TREE_OPERAND (node, 0), spc, flags, false);
+ pp_string (pp, ", ");
+ dump_generic_node (pp, TREE_OPERAND (node, 1), spc, flags, false);
+ pp_string (pp, ", ");
+ dump_generic_node (pp, TREE_OPERAND (node, 2), spc, flags, false);
+ pp_greater (pp);
+ }
break;
case BIT_INSERT_EXPR: