On Mon, May 7, 2012 at 7:10 PM, Sterling Augustine
<saugust...@google.com> wrote:
> This is the second in the series of patches to make c decl pretty printing
> more closely match the demangler. A full explanation is here:
>
> http://gcc.gnu.org/ml/gcc-patches/2012-05/msg00512.html
>
> OK for mainline?

Now I realize something that is wrong with the previous patch.
Writing 'const T*' in C++ is very much wide spread style is also the
style used in the C++ standard, TC++PL (the de facto popular reference TC++PL),
our own C++ standard library implementation, and many popular modern
C++ textbooks.
It is a strongly well established style.
Changing the pretty printer to satisfy the demangler as opposed to users
look wrong headed.

-- Gaby


>
> Sterling
>
> 2012-05-07   Sterling Augustine  <saugust...@google.com>
>
>        * c-family/c-pretty-print.c (pp_c_specifier_qualifier_list): Move
>        call to pp_c_type_qualifier_list from start to end of function.
>        * cp/error.c (dump_decl): Change "{anonymous}" to "(anonymous
>        namespace)"
>        (lang_decl_name): Handle "(anonymous namespace)" correctly.
>
> Index: c-family/c-pretty-print.c
> ===================================================================
> --- c-family/c-pretty-print.c   (revision 187271)
> +++ c-family/c-pretty-print.c   (working copy)
> @@ -446,8 +446,6 @@ pp_c_specifier_qualifier_list (c_pretty_printer *p
>  {
>   const enum tree_code code = TREE_CODE (t);
>
> -  if (TREE_CODE (t) != POINTER_TYPE)
> -    pp_c_type_qualifier_list (pp, t);
>   switch (code)
>     {
>     case REFERENCE_TYPE:
> @@ -494,6 +492,8 @@ pp_c_specifier_qualifier_list (c_pretty_printer *p
>       pp_simple_type_specifier (pp, t);
>       break;
>     }
> +  if (TREE_CODE (t) != POINTER_TYPE)
> +    pp_c_type_qualifier_list (pp, t);
>  }
>
>  /* parameter-type-list:
> Index: cp/error.c
> ===================================================================
> --- cp/error.c  (revision 187271)
> +++ cp/error.c  (working copy)
> @@ -1028,7 +1028,7 @@ dump_decl (tree t, int flags)
>            dump_scope (CP_DECL_CONTEXT (t), flags);
>          flags &= ~TFF_UNQUALIFIED_NAME;
>          if (DECL_NAME (t) == NULL_TREE)
> -           pp_cxx_ws_string (cxx_pp, M_("{anonymous}"));
> +           pp_cxx_ws_string (cxx_pp, M_("(anonymous namespace)"));
>          else
>            pp_cxx_tree_identifier (cxx_pp, DECL_NAME (t));
>        }
> @@ -2596,6 +2596,8 @@ lang_decl_name (tree decl, int v, bool translate)
>
>   if (TREE_CODE (decl) == FUNCTION_DECL)
>     dump_function_name (decl, TFF_PLAIN_IDENTIFIER);
> +  else if (DECL_NAME (decl) == NULL && TREE_CODE (decl) == NAMESPACE_DECL)
> +    pp_string (cxx_pp, M_("(anonymous namespace)"));
>   else
>     dump_decl (DECL_NAME (decl), TFF_PLAIN_IDENTIFIER);
>
>
> --
> This patch is available for review at http://codereview.appspot.com/6195056

Reply via email to