]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
c-pretty-print.h (struct c_pretty_print_info): Add new member "constant".
authorGabriel Dos Reis <gdr@integrable-solutions.net>
Fri, 30 Dec 2005 17:27:28 +0000 (17:27 +0000)
committerGabriel Dos Reis <gdr@gcc.gnu.org>
Fri, 30 Dec 2005 17:27:28 +0000 (17:27 +0000)
2005-12-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>

        * c-pretty-print.h (struct c_pretty_print_info): Add new
          member
        "constant".
        (pp_constant): New macro.
        * c-pretty-print.c (pp_c_pretty_printer_init): Set
          pp->constant.

cp/
2005-12-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>

        * cxx-pretty-print.c (pp_cxx_constant): New.  Print
        string-literal in parens if input program says so.
        (pp_cxx_primary_expression): Hand off constant printing to
        pp_cxx_constant.
        (pp_cxx_pretty_printer_init): Set pp->c_base.constant.
        (pp_cxx_expression): Use pp_cxx_constant for literals.
        * error.c (dump_expr): Use pp_constant for literals.

From-SVN: r109176

gcc/ChangeLog
gcc/c-pretty-print.c
gcc/c-pretty-print.h
gcc/cp/ChangeLog
gcc/cp/cxx-pretty-print.c
gcc/cp/error.c

index a62178dd99710880b9d231f780afa2bf27b23fdc..22e6673eadcf84a023bf57851ef1d02ae866e3b8 100644 (file)
@@ -1,3 +1,10 @@
+2005-12-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       * c-pretty-print.h (struct c_pretty_print_info): Add new member
+       "constant". 
+       (pp_constant): New macro.
+       * c-pretty-print.c (pp_c_pretty_printer_init): Set pp->constant.
+
 2005-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
 
        PR fortran/25586
index 058d3b9644c2a03fd3f88ccb39d7c8bf2d7f0386..516022340ca978669dbe544045b7b2982721a308 100644 (file)
@@ -2001,6 +2001,7 @@ pp_c_pretty_printer_init (c_pretty_printer *pp)
 
   pp->statement                 = pp_c_statement;
 
+  pp->constant                  = pp_c_constant;
   pp->id_expression             = pp_c_id_expression;
   pp->primary_expression        = pp_c_primary_expression;
   pp->postfix_expression        = pp_c_postfix_expression;
index 0f9d46a86e7596a4ebe74167035c5dfba8c90ad8..14cb670c7edbdf1c55046c2e49e2938843e71e24 100644 (file)
@@ -80,6 +80,7 @@ struct c_pretty_print_info
 
   c_pretty_print_fn statement;
 
+  c_pretty_print_fn constant;
   c_pretty_print_fn id_expression;
   c_pretty_print_fn primary_expression;
   c_pretty_print_fn postfix_expression;
@@ -129,6 +130,8 @@ struct c_pretty_print_info
 #define pp_statement(PPI, S)                      \
   pp_c_base (PPI)->statement (pp_c_base (PPI), S)
 
+#define pp_constant(PP, E) \
+  pp_c_base (PP)->constant (pp_c_base (PP), E)
 #define pp_id_expression(PP, E)  \
   pp_c_base (PP)->id_expression (pp_c_base (PP), E)
 #define pp_primary_expression(PPI, E)             \
index 7391d15018fdffaf887976028ac1739e708543ae..c895ce58f862cd30d5fc700be953cfa6d676f22b 100644 (file)
@@ -1,3 +1,13 @@
+2005-12-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       * cxx-pretty-print.c (pp_cxx_constant): New.  Print
+       string-literal in parens if input program says so.
+       (pp_cxx_primary_expression): Hand off constant printing to
+       pp_cxx_constant. 
+       (pp_cxx_pretty_printer_init): Set pp->c_base.constant.
+       (pp_cxx_expression): Use pp_cxx_constant for literals. 
+       * error.c (dump_expr): Use pp_constant for literals.
+
 2005-12-29  Nathan Sidwell  <nathan@codesourcery.com>
 
        * method.c (make_thunk): Don't set comdat_linkage here.
index cdaf470ce26e2336ffbb3a111f917e8813c566ac..43fbe2b3bfa02b9bb1cdafa789e21b54c166a01e 100644 (file)
@@ -292,6 +292,29 @@ pp_cxx_qualified_id (cxx_pretty_printer *pp, tree t)
     }
 }
 
+
+static void
+pp_cxx_constant (cxx_pretty_printer *pp, tree t)
+{
+  switch (TREE_CODE (t))
+    {
+    case STRING_CST:
+      {
+        const bool in_parens = PAREN_STRING_LITERAL_P (t);
+        if (in_parens)
+          pp_cxx_left_paren (pp);
+        pp_c_constant (pp_c_base (pp), t);
+        if (in_parens)
+          pp_cxx_right_paren (pp);
+      }
+      break;
+
+    default:
+      pp_c_constant (pp_c_base (pp), t);
+      break;
+    }
+}
+
 /* id-expression:
       unqualified-id
       qualified-id   */
@@ -321,10 +344,10 @@ pp_cxx_primary_expression (cxx_pretty_printer *pp, tree t)
 {
   switch (TREE_CODE (t))
     {
-    case STRING_CST:
     case INTEGER_CST:
     case REAL_CST:
-      pp_c_constant (pp_c_base (pp), t);
+    case STRING_CST:
+      pp_cxx_constant (pp, t);
       break;
 
     case BASELINK:
@@ -848,7 +871,7 @@ pp_cxx_expression (cxx_pretty_printer *pp, tree t)
     case STRING_CST:
     case INTEGER_CST:
     case REAL_CST:
-      pp_c_constant (pp_c_base (pp), t);
+      pp_cxx_constant (pp, t);
       break;
 
     case RESULT_DECL:
@@ -1961,6 +1984,7 @@ pp_cxx_pretty_printer_init (cxx_pretty_printer *pp)
 
   /* pp->c_base.statement = (pp_fun) pp_cxx_statement;  */
 
+  pp->c_base.constant = (pp_fun) pp_cxx_constant;
   pp->c_base.id_expression = (pp_fun) pp_cxx_id_expression;
   pp->c_base.primary_expression = (pp_fun) pp_cxx_primary_expression;
   pp->c_base.postfix_expression = (pp_fun) pp_cxx_postfix_expression;
index be0ee5968eedc673fa8bc8c8b0ee0f866d7fe102..d2ee9c509d7cdd3e2d59d78f2a881972c47fa92c 100644 (file)
@@ -1318,17 +1318,10 @@ dump_expr (tree t, int flags)
       dump_decl (t, (flags & ~TFF_DECL_SPECIFIERS) | TFF_NO_FUNCTION_ARGUMENTS);
       break;
 
-    case STRING_CST:
-      if (PAREN_STRING_LITERAL_P (t))
-       pp_cxx_left_paren (cxx_pp);
-      pp_c_constant (pp_c_base (cxx_pp), t);
-      if (PAREN_STRING_LITERAL_P (t))
-       pp_cxx_right_paren (cxx_pp);
-      break;
-
     case INTEGER_CST:
     case REAL_CST:
-       pp_c_constant (pp_c_base (cxx_pp), t);
+    case STRING_CST:
+      pp_constant (cxx_pp, t);
       break;
 
     case THROW_EXPR: