re PR libstdc++/88170 (pretty printer FAILs)
authorJakub Jelinek <jakub@redhat.com>
Thu, 31 Jan 2019 07:37:34 +0000 (08:37 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Thu, 31 Jan 2019 07:37:34 +0000 (08:37 +0100)
PR libstdc++/88170
* c-pretty-print.c (pp_c_enumeration_constant): Print always as
a C cast in pp_c_flag_gnu_v3 mode.

* cxx-pretty-print.c (pp_cxx_enumeration_constant): Print always as
a C cast in pp_c_flag_gnu_v3 mode.

From-SVN: r268413

gcc/c-family/ChangeLog
gcc/c-family/c-pretty-print.c
gcc/cp/ChangeLog
gcc/cp/cxx-pretty-print.c

index 3c55209ef3409ab001df513351e44ef35c7346b5..25c5323f6dbe023abfc56497e69097678307e313 100644 (file)
@@ -1,3 +1,9 @@
+2019-01-31  Jakub Jelinek  <jakub@redhat.com>
+
+       PR libstdc++/88170
+       * c-pretty-print.c (pp_c_enumeration_constant): Print always as
+       a C cast in pp_c_flag_gnu_v3 mode.
+
 2019-01-29  Jakub Jelinek  <jakub@redhat.com>
 
        PR c/86125
index 46db469e29a8fbeba78d3ca7cba61a1c8dcd8068..3e25624d3a3aa29b648207448b2e7ed88b4e056a 100644 (file)
@@ -976,14 +976,14 @@ static void
 pp_c_enumeration_constant (c_pretty_printer *pp, tree e)
 {
   tree type = TREE_TYPE (e);
-  tree value;
+  tree value = NULL_TREE;
 
   /* Find the name of this constant.  */
-  for (value = TYPE_VALUES (type);
-       value != NULL_TREE
-       && !tree_int_cst_equal (DECL_INITIAL (TREE_VALUE (value)), e);
-       value = TREE_CHAIN (value))
-    ;
+  if ((pp->flags & pp_c_flag_gnu_v3) == 0)
+    for (value = TYPE_VALUES (type); value != NULL_TREE;
+        value = TREE_CHAIN (value))
+      if (tree_int_cst_equal (DECL_INITIAL (TREE_VALUE (value)), e))
+       break;
 
   if (value != NULL_TREE)
     pp->id_expression (TREE_PURPOSE (value));
index 29d8742236925de9c902339d08f3735c7b7f2725..884f09c3b440d14ec81d597955acdeea0c7a6d46 100644 (file)
@@ -1,3 +1,9 @@
+2019-01-31  Jakub Jelinek  <jakub@redhat.com>
+
+       PR libstdc++/88170
+       * cxx-pretty-print.c (pp_cxx_enumeration_constant): Print always as
+       a C cast in pp_c_flag_gnu_v3 mode.
+
 2019-01-30  Jakub Jelinek  <jakub@redhat.com>
 
        PR c++/88988
index a114d6654e9129971b6d6784c63ab7927747508b..a0088a257a20a45f78f345900bd865b64e68ae87 100644 (file)
@@ -309,14 +309,14 @@ static void
 pp_cxx_enumeration_constant (cxx_pretty_printer *pp, tree e)
 {
   tree type = TREE_TYPE (e);
-  tree value;
+  tree value = NULL_TREE;
 
   /* Find the name of this constant.  */
-  for (value = TYPE_VALUES (type);
-       value != NULL_TREE
-       && !tree_int_cst_equal (DECL_INITIAL (TREE_VALUE (value)), e);
-       value = TREE_CHAIN (value))
-    ;
+  if ((pp->flags & pp_c_flag_gnu_v3) == 0)
+    for (value = TYPE_VALUES (type); value != NULL_TREE;
+        value = TREE_CHAIN (value))
+      if (tree_int_cst_equal (DECL_INITIAL (TREE_VALUE (value)), e))
+       break;
 
   if (value != NULL_TREE)
     {