compiler warnings with GCC 4.5
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.
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