mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-10 05:50:28 +08:00
c-tree.h (grokfield): New argument.
* c-tree.h (grokfield): New argument. * c-decl.c (grokfield): Handle new location argument. * c-parser.c (c_parser_struct_declaration): Pass location to grokfield. testsuite/ * gcc.dg/20011008-1.c: Test column. * gcc.dg/20080820.c: New. * gcc.dg/fltconst-1.c: Test column. * gcc.dg/cpp/cpp.exp: Add -fno-show-column. * gcc.dg/cpp/trad/trad.exp: Same. * lib/gcc.exp (gcc_target_compile): Remove -fno-show-column. * lib/gcc-dg.exp (process-message): Handle columns. From-SVN: r139403
This commit is contained in:
parent
eb5712c966
commit
3d10ed6cbc
@ -1,3 +1,10 @@
|
||||
2008-08-21 Aldy Hernandez <aldyh@redhat.com>
|
||||
|
||||
* c-tree.h (grokfield): New argument.
|
||||
* c-decl.c (grokfield): Handle new location argument.
|
||||
* c-parser.c (c_parser_struct_declaration): Pass location to
|
||||
grokfield.
|
||||
|
||||
2008-08-21 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
|
||||
@ -360,6 +367,7 @@
|
||||
(compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
|
||||
flag_profile_correction is set.
|
||||
|
||||
>>>>>>> .r139386
|
||||
2008-08-18 Richard Sandiford <rdsandiford@googlemail.com>
|
||||
|
||||
* rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
|
||||
|
@ -5363,12 +5363,15 @@ start_struct (enum tree_code code, tree name)
|
||||
WIDTH is non-NULL for bit-fields only, and is an INTEGER_CST node.
|
||||
DECL_ATTRS is as for grokdeclarator.
|
||||
|
||||
LOC is the location of the structure component.
|
||||
|
||||
This is done during the parsing of the struct declaration.
|
||||
The FIELD_DECL nodes are chained together and the lot of them
|
||||
are ultimately passed to `build_struct' to make the RECORD_TYPE node. */
|
||||
|
||||
tree
|
||||
grokfield (struct c_declarator *declarator, struct c_declspecs *declspecs,
|
||||
grokfield (location_t loc,
|
||||
struct c_declarator *declarator, struct c_declspecs *declspecs,
|
||||
tree width, tree *decl_attrs)
|
||||
{
|
||||
tree value;
|
||||
@ -5414,10 +5417,10 @@ grokfield (struct c_declarator *declarator, struct c_declspecs *declspecs,
|
||||
}
|
||||
if (!ok)
|
||||
{
|
||||
pedwarn (input_location, 0, "declaration does not declare anything");
|
||||
pedwarn (loc, 0, "declaration does not declare anything");
|
||||
return NULL_TREE;
|
||||
}
|
||||
pedwarn (input_location, OPT_pedantic, "ISO C doesn%'t support unnamed structs/unions");
|
||||
pedwarn (loc, OPT_pedantic, "ISO C doesn%'t support unnamed structs/unions");
|
||||
}
|
||||
|
||||
value = grokdeclarator (declarator, declspecs, FIELD, false,
|
||||
|
@ -1960,7 +1960,9 @@ c_parser_struct_declaration (c_parser *parser)
|
||||
structs or unions (which is [a] useful and [b] supports
|
||||
MS P-SDK). */
|
||||
tree attrs = NULL;
|
||||
ret = grokfield (build_id_declarator (NULL_TREE), specs,
|
||||
|
||||
ret = grokfield (c_parser_peek_token (parser)->location,
|
||||
build_id_declarator (NULL_TREE), specs,
|
||||
NULL_TREE, &attrs);
|
||||
if (ret)
|
||||
decl_attributes (&ret, attrs, 0);
|
||||
@ -2003,7 +2005,8 @@ c_parser_struct_declaration (c_parser *parser)
|
||||
}
|
||||
if (c_parser_next_token_is_keyword (parser, RID_ATTRIBUTE))
|
||||
postfix_attrs = c_parser_attributes (parser);
|
||||
d = grokfield (declarator, specs, width, &all_prefix_attrs);
|
||||
d = grokfield (c_parser_peek_token (parser)->location,
|
||||
declarator, specs, width, &all_prefix_attrs);
|
||||
decl_attributes (&d, chainon (postfix_attrs,
|
||||
all_prefix_attrs), 0);
|
||||
TREE_CHAIN (d) = decls;
|
||||
|
@ -475,8 +475,8 @@ extern tree finish_enum (tree, tree, tree);
|
||||
extern void finish_function (void);
|
||||
extern tree finish_struct (tree, tree, tree);
|
||||
extern struct c_arg_info *get_parm_info (bool);
|
||||
extern tree grokfield (struct c_declarator *, struct c_declspecs *,
|
||||
tree, tree *);
|
||||
extern tree grokfield (location_t, struct c_declarator *,
|
||||
struct c_declspecs *, tree, tree *);
|
||||
extern tree groktypename (struct c_type_name *);
|
||||
extern tree grokparm (const struct c_parm *);
|
||||
extern tree implicitly_declare (tree);
|
||||
|
@ -1,3 +1,13 @@
|
||||
2008-08-21 Aldy Hernandez <aldyh@redhat.com>
|
||||
|
||||
* gcc.dg/20011008-1.c: Test column.
|
||||
* gcc.dg/20080820.c: New.
|
||||
* gcc.dg/fltconst-1.c: Test column.
|
||||
* gcc.dg/cpp/cpp.exp: Add -fno-show-column.
|
||||
* gcc.dg/cpp/trad/trad.exp: Same.
|
||||
* lib/gcc.exp (gcc_target_compile): Remove -fno-show-column.
|
||||
* lib/gcc-dg.exp (process-message): Handle columns.
|
||||
|
||||
2008-08-21 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* g++.dg/opt/anchor1.C (foo): Return the return value of
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O0" } */
|
||||
/* { dg-options "-O0 -fshow-column" } */
|
||||
|
||||
struct { int; int q; } a; /* { dg-warning "does not declare anything" } */
|
||||
struct { int; int q; } a; /* { dg-warning "13:does not declare anything" } */
|
||||
struct { union {int x;}; int q; } b;
|
||||
struct { struct {int x;}; int q; } c;
|
||||
union { union {int x;}; int q; } d;
|
||||
|
4
gcc/testsuite/gcc.dg/20080820.c
Normal file
4
gcc/testsuite/gcc.dg/20080820.c
Normal file
@ -0,0 +1,4 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-fshow-column -fms-extensions -pedantic" } */
|
||||
|
||||
struct { struct a { int x; }; int bar; } hot; /* { dg-warning "29:ISO C doesn't support unnamed" } */
|
@ -37,7 +37,7 @@ dg-init
|
||||
|
||||
# Main loop.
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.{c,S} ]] \
|
||||
"" $DEFAULT_CFLAGS
|
||||
"-fno-show-column" $DEFAULT_CFLAGS
|
||||
|
||||
# All done.
|
||||
dg-finish
|
||||
|
@ -37,7 +37,7 @@ dg-init
|
||||
|
||||
# Main loop.
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] \
|
||||
"" $DEFAULT_TRADCPPFLAGS
|
||||
"-fno-show-column" $DEFAULT_TRADCPPFLAGS
|
||||
|
||||
# All done.
|
||||
dg-finish
|
||||
|
@ -1,16 +1,16 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-std=gnu99" } */
|
||||
|
||||
double a = 1.ld; /* { dg-error "invalid suffix" } */
|
||||
double b = 1.fd; /* { dg-error "invalid suffix" } */
|
||||
double c = 1.di; /* { dg-error "invalid suffix" } */
|
||||
double d = 1.dj; /* { dg-error "invalid suffix" } */
|
||||
double e = 1.id; /* { dg-error "invalid suffix" } */
|
||||
double f = 1.jd; /* { dg-error "invalid suffix" } */
|
||||
double g = 1.ddd; /* { dg-error "invalid suffix" } */
|
||||
double h = 1.ldd; /* { dg-error "invalid suffix" } */
|
||||
double i = 1.dld; /* { dg-error "invalid suffix" } */
|
||||
double j = 1.ddl; /* { dg-error "invalid suffix" } */
|
||||
double k = 1.fdd; /* { dg-error "invalid suffix" } */
|
||||
double l = 1.dfd; /* { dg-error "invalid suffix" } */
|
||||
double m = 1.ddf; /* { dg-error "invalid suffix" } */
|
||||
double a = 1.ld; /* { dg-error "12:invalid suffix" } */
|
||||
double b = 1.fd; /* { dg-error "12:invalid suffix" } */
|
||||
double c = 1.di; /* { dg-error "12:invalid suffix" } */
|
||||
double d = 1.dj; /* { dg-error "12:invalid suffix" } */
|
||||
double e = 1.id; /* { dg-error "12:invalid suffix" } */
|
||||
double f = 1.jd; /* { dg-error "12:invalid suffix" } */
|
||||
double g = 1.ddd; /* { dg-error "12:invalid suffix" } */
|
||||
double h = 1.ldd; /* { dg-error "12:invalid suffix" } */
|
||||
double i = 1.dld; /* { dg-error "12:invalid suffix" } */
|
||||
double j = 1.ddl; /* { dg-error "12:invalid suffix" } */
|
||||
double k = 1.fdd; /* { dg-error "12:invalid suffix" } */
|
||||
double l = 1.dfd; /* { dg-error "12:invalid suffix" } */
|
||||
double m = 1.ddf; /* { dg-error "12:invalid suffix" } */
|
||||
|
@ -636,7 +636,18 @@ proc process-message { msgproc msgprefix dgargs } {
|
||||
# it match a single line.
|
||||
set newentry [lindex ${dg-messages} end]
|
||||
set expmsg [lindex $newentry 2]
|
||||
set expmsg "$msgprefix\[^\n]*$expmsg"
|
||||
|
||||
# If we have a column...
|
||||
if [regexp "^(\[0-9\]+):" $expmsg "" column] {
|
||||
# Remove "COLUMN:"
|
||||
regsub "^\[0-9\]+:" $expmsg "" expmsg
|
||||
|
||||
# Include the column in the search expression.
|
||||
set expmsg "$column: $msgprefix\[^\n]*$expmsg"
|
||||
} else {
|
||||
set expmsg "$msgprefix\[^\n]*$expmsg"
|
||||
}
|
||||
|
||||
set newentry [lreplace $newentry 2 2 $expmsg]
|
||||
set dg-messages [lreplace ${dg-messages} end end $newentry]
|
||||
verbose "process-message:\n${dg-messages}" 2
|
||||
|
@ -150,7 +150,6 @@ proc gcc_target_compile { source dest type options } {
|
||||
if [target_info exists gcc,timeout] {
|
||||
lappend options "timeout=[target_info gcc,timeout]"
|
||||
}
|
||||
lappend options "additional_flags=-fno-show-column"
|
||||
lappend options "compiler=$GCC_UNDER_TEST"
|
||||
set options [dg-additional-files-options $options $source]
|
||||
return [target_compile $source $dest $type $options]
|
||||
|
Loading…
x
Reference in New Issue
Block a user