>Number:         157019
>Category:       gnu
>Synopsis:       gcc: Add some warnings from OpenBSD gcc and fix a typo.
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Fri May 13 22:30:08 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Pedro Giffuni
>Release:        8.2-Release
>Organization:
>Environment:
FreeBSD mogwai.giffuni.net 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Fri Mar 18 
15:35:09 UTC 2011     
[email protected]:/usr/src/sys/amd64/compile/GENERIC  amd64

>Description:
While looking for some unrelated fixes, I found these simple
patches for gcc-4.2.1 from OpenBSD's tree.

- Implement -Wvariable-decl.
- port -Wtrampolines support from gcc3. (I took out -ftrampolines since it 
seems excessive for FreeBSD).
- Fix typo in check_for_nested_with_variably_modified present
for 4 years that hampered the inliner without anyone noticing.


>How-To-Repeat:

>Fix:
Patch attached.

Patch attached with submission follows:

--- gcc/c-decl.c        2009/10/15 18:11:28     1.1
+++ gcc/c-decl.c        2010/04/29 19:37:37     1.2
@@ -4256,6 +4256,8 @@ grokdeclarator (const struct c_declarator *declarator,
                          pedwarn ("ISO C90 forbids variable-size array %qs",
                                   name);
                      }
+                   if (warn_variable_decl)
+                     warning (0, "variable-sized array %qs", name);
                  }
 
                if (integer_zerop (size))
--- gcc/c.opt   2010/05/09 14:09:18     1.2
+++ gcc/c.opt   2010/05/12 14:35:56     1.3
@@ -407,6 +407,10 @@ Wtraditional
 C ObjC Var(warn_traditional)
 Warn about features not present in traditional C
 
+Wtrampolines
+Common Var(warn_trampolines)
+Warn when trampolines are emitted
+
 Wtrigraphs
 C ObjC C++ ObjC++
 Warn if trigraphs are encountered that might affect the meaning of the program
--- gcc/common.opt      2010/04/28 07:27:02     1.4
+++ gcc/common.opt      2010/04/29 19:37:37     1.5
@@ -193,6 +193,10 @@ Wunused-variable
 Common Var(warn_unused_variable)
 Warn when a variable is unused
 
+Wvariable-decl
+Common Var(warn_variable_decl)
+Warn about variable-sized declarations.
+
 Wvolatile-register-var
 Common Var(warn_register_var)
 Warn when a register variable is declared volatile
--- gcc/tree-nested.c   2009/10/15 18:11:28     1.1.1.1
+++ gcc/tree-nested.c   2010/05/12 14:35:56     1.3
@@ -750,7 +750,7 @@ check_for_nested_with_variably_modified (tree fndecl, 
   for (cgn = cgn->nested; cgn ; cgn = cgn->next_nested)
     {
       for (arg = DECL_ARGUMENTS (cgn->decl); arg; arg = TREE_CHAIN (arg))
-       if (variably_modified_type_p (TREE_TYPE (arg), 0), orig_fndecl)
+       if (variably_modified_type_p (TREE_TYPE (arg), orig_fndecl))
          return true;
 
       if (check_for_nested_with_variably_modified (cgn->decl, orig_fndecl))
@@ -1622,6 +1622,15 @@ convert_tramp_reference (tree *tp, int *walk_subtrees,
       if (DECL_NO_STATIC_CHAIN (decl))
        break;
 
+      if (warn_trampolines) 
+        {
+       warning(0, "local function address taken needing trampoline 
generation");
+        }
       /* Lookup the immediate parent of the callee, as that's where
         we need to insert the trampoline.  */
       for (i = info; i->context != target_context; i = i->outer)


>Release-Note:
>Audit-Trail:
>Unformatted:
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "[email protected]"

Reply via email to