[Bug c/61096] error_init lacks a location
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=61096 --- Comment #4 from Marek Polacek mpolacek at gcc dot gnu.org --- Author: mpolacek Date: Fri May 9 17:50:25 2014 New Revision: 210280 URL: http://gcc.gnu.org/viewcvs?rev=210280root=gccview=rev Log: PR c/61096 * c-parser.c (c_parser_braced_init): Pass brace_loc to push_init_level. (c_parser_initelt): Pass location to set_init_label. Pass array index location to set_init_index. * c-tree.h (push_init_level): Update declaration. (pop_init_level): Likewise. (set_init_index): Likewise. (set_init_label): Likewise. * c-typeck.c (error_init): Add location parameter. Call error_at instead of error. (digest_init): Pass init_loc to error_init. (really_start_incremental_init): (push_init_level): Add location parameter. Pass loc to pop_init_level and error_init. (pop_init_level): Likewise. (set_designator): Add location parameter. Pass loc to pop_init_level, push_init_level, and error_init. (set_init_index): Add location parameter. Pass loc to error_init and set_designator. (set_init_label): Likewise. (output_init_element): Pass loc to error_init. (process_init_element): Pass loc to error_init, pop_init_level, pedwarn_init, and push_init_level. * gcc.dg/pr61096-1.c: New test. * gcc.dg/pr61096-2.c: New test. Added: trunk/gcc/testsuite/gcc.dg/pr61096-1.c trunk/gcc/testsuite/gcc.dg/pr61096-2.c Modified: trunk/gcc/c/ChangeLog trunk/gcc/c/c-parser.c trunk/gcc/c/c-tree.h trunk/gcc/c/c-typeck.c trunk/gcc/testsuite/ChangeLog
[Bug c/61096] error_init lacks a location
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=61096 Marek Polacek mpolacek at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #5 from Marek Polacek mpolacek at gcc dot gnu.org --- Fixed.
[Bug c/61096] error_init lacks a location
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=61096 Marek Polacek mpolacek at gcc dot gnu.org changed: What|Removed |Added Keywords||diagnostic Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2014-05-07 Assignee|unassigned at gcc dot gnu.org |mpolacek at gcc dot gnu.org Target Milestone|--- |4.10.0 Ever confirmed|0 |1 --- Comment #1 from Marek Polacek mpolacek at gcc dot gnu.org --- Another testcase: struct s { char c[1]; }; extern struct s foo (void); void bar (void) { char *t = (foo ()).c; }
[Bug c/61096] error_init lacks a location
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=61096 --- Comment #2 from Marek Polacek mpolacek at gcc dot gnu.org --- Another testcase: struct { char *v; } s[] = { .v = 0 };
[Bug c/61096] error_init lacks a location
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=61096 --- Comment #3 from Marek Polacek mpolacek at gcc dot gnu.org --- Note that there are 3 error_init calls that seem unreachable (?): 6783 6784 if (COMPLETE_TYPE_P (type) TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST) 6785 { 6786 error_init (variable-sized object may not be initialized); 6787 return error_mark_node; 6788 } 7491 else if (vec_safe_length (constructor_elements) != 1) 7492 { 7493 error_init (extra elements in scalar initializer); 7494 ret.value = (*constructor_elements)[0].value; 7495 } 8590 if (constructor_stack-replacement_value.value != 0) 8591 { 8592 error_init (excess elements in struct initializer); 8593 return; 8594 }