SOURCES: gcc-unnecessary_anonymous_warning.patch (NEW) - turn off ...

pluto pluto at pld-linux.org
Sat May 5 16:23:12 CEST 2007


Author: pluto                        Date: Sat May  5 14:23:12 2007 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- turn off unnecessary warnings about anonymous namespaces.

---- Files affected:
SOURCES:
   gcc-unnecessary_anonymous_warning.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/gcc-unnecessary_anonymous_warning.patch
diff -u /dev/null SOURCES/gcc-unnecessary_anonymous_warning.patch:1.1
--- /dev/null	Sat May  5 16:23:12 2007
+++ SOURCES/gcc-unnecessary_anonymous_warning.patch	Sat May  5 16:23:07 2007
@@ -0,0 +1,67 @@
+--- gcc-4.2.0-20070501/gcc/c-common.h.orig	2006-08-17 03:02:55.000000000 -0400
++++ gcc-4.2.0-20070501/gcc/c-common.h	2007-05-03 10:20:24.674526804 -0400
+@@ -698,6 +698,7 @@
+ extern int self_promoting_args_p (tree);
+ extern tree strip_array_types (tree);
+ extern tree strip_pointer_operator (tree);
++extern tree strip_pointer_or_array_types (tree);
+ extern HOST_WIDE_INT c_common_to_target_charset (HOST_WIDE_INT);
+ 
+ /* This is the basic parsing function.  */
+--- gcc-4.2.0-20070501/gcc/c-common.c.orig	2007-03-12 14:50:38.000000000 -0400
++++ gcc-4.2.0-20070501/gcc/c-common.c	2007-05-03 10:20:00.282869853 -0400
+@@ -3604,6 +3604,15 @@
+   return t;
+ }
+ 
++/* Recursively remove pointer or array type from TYPE. */
++tree
++strip_pointer_or_array_types (tree t)
++{
++  while (TREE_CODE (t) == ARRAY_TYPE || POINTER_TYPE_P (t))
++    t = TREE_TYPE (t);
++  return t;
++}
++
+ /* Used to compare case labels.  K1 and K2 are actually tree nodes
+    representing case labels, or NULL_TREE for a `default' label.
+    Returns -1 if K1 is ordered before K2, -1 if K1 is ordered after
+--- gcc-4.2.0-20070501/gcc/cp/decl2.c.orig	2006-12-06 12:41:29.000000000 -0500
++++ gcc-4.2.0-20070501/gcc/cp/decl2.c	2007-05-03 10:18:55.360665142 -0400
+@@ -1855,13 +1855,17 @@
+   for (t = TYPE_FIELDS (type); t; t = TREE_CHAIN (t))
+     if (TREE_CODE (t) == FIELD_DECL && TREE_TYPE (t) != error_mark_node)
+       {
+-	tree ftype = strip_array_types (TREE_TYPE (t));
++	tree ftype = strip_pointer_or_array_types (TREE_TYPE (t));
+ 	int subvis = type_visibility (ftype);
+ 
+ 	if (subvis == VISIBILITY_ANON)
+-	  warning (0, "\
++	  {
++	    if (strcmp (main_input_filename,
++	                DECL_SOURCE_FILE (TYPE_MAIN_DECL (ftype))))
++	      warning (0, "\
+ %qT has a field %qD whose type uses the anonymous namespace",
+-		   type, t);
++		       type, t);
++	  }
+ 	else if (IS_AGGR_TYPE (ftype)
+ 		 && vis < VISIBILITY_HIDDEN
+ 		 && subvis >= VISIBILITY_HIDDEN)
+@@ -1876,9 +1880,13 @@
+       int subvis = type_visibility (TREE_TYPE (t));
+ 
+       if (subvis == VISIBILITY_ANON)
+-	warning (0, "\
++        {
++	  if (strcmp (main_input_filename,
++	              DECL_SOURCE_FILE (TYPE_MAIN_DECL (TREE_TYPE (t)))))
++	    warning (0, "\
+ %qT has a base %qT whose type uses the anonymous namespace",
+-		 type, TREE_TYPE (t));
++		     type, TREE_TYPE (t));
++	}
+       else if (vis < VISIBILITY_HIDDEN
+ 	       && subvis >= VISIBILITY_HIDDEN)
+ 	warning (OPT_Wattributes, "\
================================================================


More information about the pld-cvs-commit mailing list