diff options
author | Richard Biener <rguenther@suse.de> | 2019-05-15 12:51:58 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2019-05-15 12:51:58 +0000 |
commit | 186dabf2926eb049e9a954dae6fa765687dc353c (patch) | |
tree | ea83973516ee3b335eff72cd7babf0abc345356c /gcc/tree-pretty-print.c | |
parent | fb4b60c68edf7196770fdc65b3862662bc2d647b (diff) | |
download | gcc-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.c | 40 |
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: |