compiler warnings with GCC 4.5

Started by Peter Eisentrautalmost 16 years ago2 messages
#1Peter Eisentraut
peter_e@gmx.net

Only these few:

read.c: In function ‘nodeRead’:
read.c:370:3: warning: case value ‘1000001’ not in enumerated type
‘NodeTag’
read.c:300:3: warning: case value ‘1000002’ not in enumerated type
‘NodeTag’
read.c:294:3: warning: case value ‘1000003’ not in enumerated type
‘NodeTag’
read.c:374:3: warning: case value ‘1000004’ not in enumerated type
‘NodeTag’

This can be fixed by changing

switch (type)

to

switch ((int) type)

preproc.y: In function ‘base_yyparse’:
preproc.y:8043:19: warning: operation on ‘yyval.str’ may be undefined

The code in question looks like

| SETOF SimpleTypename opt_array_bounds
{ $$ = $$ = cat_str(3, make_str("setof"), $2, $3.str); }
^^^^^^^

It is converted from the main grammar, so it looks like a bug in the
conversion routine.

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Eisentraut (#1)
Re: compiler warnings with GCC 4.5

Peter Eisentraut <peter_e@gmx.net> writes:

read.c: In function ‘nodeRead’:
read.c:370:3: warning: case value ‘1000001’ not in enumerated type
‘NodeTag’

This can be fixed by changing
switch (type)
to
switch ((int) type)

No objection from here. We don't attempt to cover all possible NodeTags
in that switch anyway, so I don't see that we're losing any error
detection capability by adding the cast.

preproc.y: In function ‘base_yyparse’:
preproc.y:8043:19: warning: operation on ‘yyval.str’ may be undefined

The code in question looks like

| SETOF SimpleTypename opt_array_bounds
{ $$ = $$ = cat_str(3, make_str("setof"), $2, $3.str); }
^^^^^^^

It is converted from the main grammar, so it looks like a bug in the
conversion routine.

The double assignment looks inefficient, but I bet what it's really unhappy
about is that one of the cat_str arguments has a .str suffix and the
other doesn't --- why is that?

regards, tom lane