[Bug c/35330] [4.8/4.9/5 regression] ICE with invalid pragma weak
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35330 Kai Tietz changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #14 from Kai Tietz --- I don't intend to backport this change. therefore I close as fixed.
[Bug c/35330] [4.8/4.9/5 regression] ICE with invalid pragma weak
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35330 --- Comment #13 from Kai Tietz --- Author: ktietz Date: Fri Feb 27 10:44:43 2015 New Revision: 221053 URL: https://gcc.gnu.org/viewcvs?rev=221053&root=gcc&view=rev Log: 2015-02-27 Kai Tietz PR c/35330 * c-pragma.c (handle_pragma_weak): Do not try to create weak/alias of declarations not being function, or variable declarations. 2015-02-27 Kai Tietz PR c/35330 * gcc.dg/weak/weak-17.c: New file. Added: trunk/gcc/testsuite/gcc.dg/weak/weak-17.c Modified: trunk/gcc/c-family/ChangeLog trunk/gcc/c-family/c-pragma.c trunk/gcc/testsuite/ChangeLog
[Bug c/35330] [4.8/4.9/5 regression] ICE with invalid pragma weak
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35330 --- Comment #12 from Kai Tietz --- issue seems to be that in declare_weak we don't check that DECL is actually either a function, or a variable declaration. Fix would be to add an error-message in declare_weak (). Index: varasm.c === @@ -5398,6 +5399,12 @@ void declare_weak (tree decl) { gcc_assert (TREE_CODE (decl) != FUNCTION_DECL || !TREE_ASM_WRITTEN (decl)); + if (TREE_CODE (decl) != FUNCTION_DECL && TREE_CODE (decl) != VAR_DECL) +{ + error ("weak declaration of %q+D has to be either a function," +" or a variable declaration", decl); + return; +} if (! TREE_PUBLIC (decl)) error ("weak declaration of %q+D must be public", decl); else if (!TARGET_SUPPORTS_WEAK)
[Bug c/35330] [4.8/4.9/5 regression] ICE with invalid pragma weak
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35330 Kai Tietz changed: What|Removed |Added CC||ktietz at gcc dot gnu.org Assignee|unassigned at gcc dot gnu.org |ktietz at gcc dot gnu.org --- Comment #11 from Kai Tietz --- Mine.
[Bug c/35330] [4.8/4.9/5 regression] ICE with invalid pragma weak
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35330 Jakub Jelinek changed: What|Removed |Added Target Milestone|4.8.4 |4.8.5 --- Comment #10 from Jakub Jelinek --- GCC 4.8.4 has been released.