[Bug c/35330] [4.8/4.9/5 regression] ICE with invalid pragma weak

2015-02-27 Thread ktietz at gcc dot gnu.org
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

2015-02-27 Thread ktietz at gcc dot gnu.org
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

2015-02-26 Thread ktietz at gcc dot gnu.org
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

2015-02-26 Thread ktietz at gcc dot gnu.org
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

2014-12-19 Thread jakub at gcc dot gnu.org
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.