* [patch] Fix cp-name-parser.y warnings using gcc-4.5 HEAD
@ 2009-07-29 0:57 Jan Kratochvil
2009-07-29 18:50 ` Daniel Jacobowitz
0 siblings, 1 reply; 3+ messages in thread
From: Jan Kratochvil @ 2009-07-29 0:57 UTC (permalink / raw)
To: gdb-patches
Hi,
here is the cp-name-parser.y part of the gcc-4.5 compatibility patch.
No regressions on {x86_64,x86_64-m32,i686}-fedora11-linux-gnu.
(The yylex() part could probably use HANDLE_SPECIAL which is regression-less;
but did not check it more.)
Thanks,
Jan
gdb/
2009-07-28 Jan Kratochvil <jan.kratochvil@redhat.com>
Fix gcc-4.5 HEAD warnings.
* cp-name-parser.y (%union <typed_val_int>, %token GLOBAL)
(GLOBAL_CONSTRUCTORS, GLOBAL_DESTRUCTORS, demangler_special <GLOBAL>):
Remove.
(yylex <"global constructors keyed to ">)
(yylex <"global destructors keyed to ">): Base it on DEMANGLER_SPECIAL.
(cp_comp_to_string): Remove variables str, prefix and buf. Remove the
GLOBAL_DESTRUCTORS and GLOBAL_CONSTRUCTORS handling.
(cp_print): Remove the GLOBAL_DESTRUCTORS and GLOBAL_CONSTRUCTORS
handling.
--- a/gdb/cp-name-parser.y
+++ b/gdb/cp-name-parser.y
@@ -255,10 +255,6 @@ make_name (const char *name, int len)
int fold_flag;
} abstract;
int lval;
- struct {
- int val;
- struct demangle_component *type;
- } typed_val_int;
const char *opname;
}
@@ -313,14 +309,6 @@ make_name (const char *name, int len)
/* Non-C++ things we get from the demangler. */
%token <lval> DEMANGLER_SPECIAL
%token CONSTRUCTION_VTABLE CONSTRUCTION_IN
-%token <typed_val_int> GLOBAL
-
-%{
-enum {
- GLOBAL_CONSTRUCTORS = DEMANGLE_COMPONENT_LITERAL + 20,
- GLOBAL_DESTRUCTORS = DEMANGLE_COMPONENT_LITERAL + 21
-};
-%}
/* Precedence declarations. */
@@ -430,10 +418,6 @@ demangler_special
d_right ($$) = NULL; }
| CONSTRUCTION_VTABLE start CONSTRUCTION_IN start
{ $$ = fill_comp (DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE, $2, $4); }
- | GLOBAL
- { $$ = make_empty ($1.val);
- d_left ($$) = $1.type;
- d_right ($$) = NULL; }
;
operator : OPERATOR NEW
@@ -1861,23 +1845,23 @@ yylex (void)
{
const char *p;
lexptr = tokstart + 29;
- yylval.typed_val_int.val = GLOBAL_CONSTRUCTORS;
+ yylval.lval = DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS;
/* Find the end of the symbol. */
p = symbol_end (lexptr);
- yylval.typed_val_int.type = make_name (lexptr, p - lexptr);
+ yylval.comp = make_name (lexptr, p - lexptr);
lexptr = p;
- return GLOBAL;
+ return DEMANGLER_SPECIAL;
}
if (strncmp (tokstart, "global destructors keyed to ", 28) == 0)
{
const char *p;
lexptr = tokstart + 28;
- yylval.typed_val_int.val = GLOBAL_DESTRUCTORS;
+ yylval.lval = DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS;
/* Find the end of the symbol. */
p = symbol_end (lexptr);
- yylval.typed_val_int.type = make_name (lexptr, p - lexptr);
+ yylval.comp = make_name (lexptr, p - lexptr);
lexptr = p;
- return GLOBAL;
+ return DEMANGLER_SPECIAL;
}
HANDLE_SPECIAL ("vtable for ", DEMANGLE_COMPONENT_VTABLE);
@@ -1976,32 +1960,10 @@ allocate_info (void)
char *
cp_comp_to_string (struct demangle_component *result, int estimated_len)
{
- char *str, *prefix = NULL, *buf;
- size_t err = 0;
+ size_t err;
- if (result->type == GLOBAL_DESTRUCTORS)
- {
- result = d_left (result);
- prefix = "global destructors keyed to ";
- }
- else if (result->type == GLOBAL_CONSTRUCTORS)
- {
- result = d_left (result);
- prefix = "global constructors keyed to ";
- }
-
- str = cplus_demangle_print (DMGL_PARAMS | DMGL_ANSI, result, estimated_len, &err);
- if (str == NULL)
- return NULL;
-
- if (prefix == NULL)
- return str;
-
- buf = malloc (strlen (str) + strlen (prefix) + 1);
- strcpy (buf, prefix);
- strcat (buf, str);
- free (str);
- return (buf);
+ return cplus_demangle_print (DMGL_PARAMS | DMGL_ANSI, result, estimated_len,
+ &err);
}
/* Convert a demangled name to a demangle_component tree. On success,
@@ -2048,17 +2010,6 @@ cp_print (struct demangle_component *result)
char *str;
size_t err = 0;
- if (result->type == GLOBAL_DESTRUCTORS)
- {
- result = d_left (result);
- fputs ("global destructors keyed to ", stdout);
- }
- else if (result->type == GLOBAL_CONSTRUCTORS)
- {
- result = d_left (result);
- fputs ("global constructors keyed to ", stdout);
- }
-
str = cplus_demangle_print (DMGL_PARAMS | DMGL_ANSI, result, 64, &err);
if (str == NULL)
return;
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [patch] Fix cp-name-parser.y warnings using gcc-4.5 HEAD
2009-07-29 0:57 [patch] Fix cp-name-parser.y warnings using gcc-4.5 HEAD Jan Kratochvil
@ 2009-07-29 18:50 ` Daniel Jacobowitz
2009-07-29 20:20 ` Jan Kratochvil
0 siblings, 1 reply; 3+ messages in thread
From: Daniel Jacobowitz @ 2009-07-29 18:50 UTC (permalink / raw)
To: Jan Kratochvil; +Cc: gdb-patches
On Tue, Jul 28, 2009 at 11:48:28PM +0200, Jan Kratochvil wrote:
> Hi,
>
> here is the cp-name-parser.y part of the gcc-4.5 compatibility patch.
>
> No regressions on {x86_64,x86_64-m32,i686}-fedora11-linux-gnu.
>
> (The yylex() part could probably use HANDLE_SPECIAL which is regression-less;
> but did not check it more.)
This looks fine, thanks.
--
Daniel Jacobowitz
CodeSourcery
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [patch] Fix cp-name-parser.y warnings using gcc-4.5 HEAD
2009-07-29 18:50 ` Daniel Jacobowitz
@ 2009-07-29 20:20 ` Jan Kratochvil
0 siblings, 0 replies; 3+ messages in thread
From: Jan Kratochvil @ 2009-07-29 20:20 UTC (permalink / raw)
To: gdb-patches
On Wed, 29 Jul 2009 20:35:47 +0200, Daniel Jacobowitz wrote:
> On Tue, Jul 28, 2009 at 11:48:28PM +0200, Jan Kratochvil wrote:
> > here is the cp-name-parser.y part of the gcc-4.5 compatibility patch.
[...]
> This looks fine, thanks.
Checked-in:
http://sourceware.org/ml/gdb-cvs/2009-07/msg00184.html
(for making GDB compilable by gcc-4.5 -Werror remains:
Re: [patch] Fix warnings using gcc-4.5 HEAD
http://sourceware.org/ml/gdb-patches/2009-07/msg00334.html
)
Thanks,
Jan
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-07-29 18:46 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-07-29 0:57 [patch] Fix cp-name-parser.y warnings using gcc-4.5 HEAD Jan Kratochvil
2009-07-29 18:50 ` Daniel Jacobowitz
2009-07-29 20:20 ` Jan Kratochvil
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox