[llvm-commits] [llvm-gcc-4.2] r62635 - in /llvm-gcc-4.2/trunk/gcc: c-common.c c-common.h c-opts.c c.opt config/i386/darwin.h config/rs6000/darwin.h

Bill Wendling isanbard at gmail.com
Tue Jan 20 15:25:26 PST 2009


Author: void
Date: Tue Jan 20 17:25:25 2009
New Revision: 62635

URL: http://llvm.org/viewvc/llvm-project?rev=62635&view=rev
Log:
Reapply Wformat* merge patch with a hack not to print out the warning unless the
warn_format_security flag is actually set. I tested this on Linux and it
compiled with no problems. This patch was good for the Fortran FE. It should
also fix a problem where -Wformat-security used to be enabled for ARM, but not
anymore.

Modified:
    llvm-gcc-4.2/trunk/gcc/c-common.c
    llvm-gcc-4.2/trunk/gcc/c-common.h
    llvm-gcc-4.2/trunk/gcc/c-opts.c
    llvm-gcc-4.2/trunk/gcc/c.opt
    llvm-gcc-4.2/trunk/gcc/config/i386/darwin.h
    llvm-gcc-4.2/trunk/gcc/config/rs6000/darwin.h

Modified: llvm-gcc-4.2/trunk/gcc/c-common.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/c-common.c?rev=62635&r1=62634&r2=62635&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/c-common.c (original)
+++ llvm-gcc-4.2/trunk/gcc/c-common.c Tue Jan 20 17:25:25 2009
@@ -294,7 +294,21 @@
 
 int warn_unknown_pragmas; /* Tri state variable.  */
 
-/* LLVM LOCAL no definition of warn_format or warn_format_security.  */
+/* Warn about format/argument anomalies in calls to formatted I/O functions
+   (*printf, *scanf, strftime, strfmon, etc.).  */
+
+/* APPLE LOCAL begin default to Wformat-security 5764921 */
+/* LLVM LOCAL begin initialize via config/darwin.h */
+#ifndef WARN_FORMAT_INIT
+#define WARN_FORMAT_INIT 0
+#endif
+#ifndef WARN_FORMAT_SECURITY_INIT
+#define WARN_FORMAT_SECURITY_INIT 0
+#endif
+int warn_format = WARN_FORMAT_INIT;
+int warn_format_security = WARN_FORMAT_SECURITY_INIT;
+/* LLVM LOCAL end initialize via config/darwin.h */
+/* APPLE LOCAL end default to Wformat-security 5764921 */
 
 /* Warn about using __null (as NULL in C++) as sentinel.  For code compiled
    with GCC this doesn't matter as __null is guaranteed to have the right

Modified: llvm-gcc-4.2/trunk/gcc/c-common.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/c-common.h?rev=62635&r1=62634&r2=62635&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/c-common.h (original)
+++ llvm-gcc-4.2/trunk/gcc/c-common.h Tue Jan 20 17:25:25 2009
@@ -461,7 +461,16 @@
 
 extern int warn_unknown_pragmas; /* Tri state variable.  */
 
-/* LLVM LOCAL no decl of warn_format or warn_format_security.  */
+/* Warn about format/argument anomalies in calls to formatted I/O functions
+   (*printf, *scanf, strftime, strfmon, etc.).  */
+
+extern int warn_format;
+
+/* LLVM LOCAL begin */
+/* Warn about possible security problems with format functions  */
+
+extern int warn_format_security;
+/* LLVM LOCAL end */
 
 /* APPLE LOCAL begin disable_typechecking_for_spec_flag */
 /* This makes type conflicts a warning, instead of an error,

Modified: llvm-gcc-4.2/trunk/gcc/c-opts.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/c-opts.c?rev=62635&r1=62634&r2=62635&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/c-opts.c (original)
+++ llvm-gcc-4.2/trunk/gcc/c-opts.c Tue Jan 20 17:25:25 2009
@@ -1187,8 +1187,11 @@
 	       "-Wformat-zero-length ignored without -Wformat");
       warning (OPT_Wformat_nonliteral,
 	       "-Wformat-nonliteral ignored without -Wformat");
-      warning (OPT_Wformat_security,
-	       "-Wformat-security ignored without -Wformat");
+      /* LLVM LOCAL begin */
+      if (warn_format_security)
+        warning (OPT_Wformat_security,
+                 "-Wformat-security ignored without -Wformat");
+      /* LLVM LOCAL end */
     }
 
   /* C99 requires special handling of complex multiplication and division;

Modified: llvm-gcc-4.2/trunk/gcc/c.opt
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/c.opt?rev=62635&r1=62634&r2=62635&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/c.opt (original)
+++ llvm-gcc-4.2/trunk/gcc/c.opt Tue Jan 20 17:25:25 2009
@@ -224,11 +224,9 @@
 C ObjC C++ ObjC++ Var(warn_float_equal)
 Warn if testing floating point numbers for equality
 
-; LLVM LOCAL begin keep "Var(warn_format) Warning"
 Wformat
-C ObjC C++ ObjC++ Var(warn_format) Warning
+C ObjC C++ ObjC++
 Warn about printf/scanf/strftime/strfmon format string anomalies
-; LLVM LOCAL end keep "Var(warn_format) Warning"
 
 Wformat-extra-args
 C ObjC C++ ObjC++ Var(warn_format_extra_args)
@@ -239,11 +237,11 @@
 Warn about format strings that are not literals
 
 ; APPLE LOCAL begin default to Wformat-security 5764921
-; LLVM LOCAL begin keep "Var(warn_format_security)"
+; LLVM LOCAL begin don't initialize this
 Wformat-security
-C ObjC C++ ObjC++ Var(warn_format_security)
+C ObjC C++ ObjC++
 Warn about possible security problems with format functions
-; LLVM LOCAL endkeep "Var(warn_format_security)"
+; LLVM LOCAL end don't initialize this
 ; APPLE LOCAL end default to Wformat-security 5764921
 
 Wformat-y2k

Modified: llvm-gcc-4.2/trunk/gcc/config/i386/darwin.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/darwin.h?rev=62635&r1=62634&r2=62635&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/i386/darwin.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/i386/darwin.h Tue Jan 20 17:25:25 2009
@@ -100,9 +100,6 @@
   "/* APPLE LOCAL ARM 5683689 */"\
   %{!mmacosx-version-min=*: %{!miphoneos-version-min=*: %(darwin_cc1_minversion)}} \
   "/* APPLE LOCAL ignore -mcpu=G4 -mcpu=G5 */"\
-  "/* LLVM LOCAL enable format security warnings */"    \
-  %{!Wno-format:-Wformat}                               \
-  %{!Wno-format-security:-Wformat-security}                             \
   %<faltivec %<mno-fused-madd %<mlong-branch %<mlongcall %<mcpu=G4 %<mcpu=G5 \
   %{g: %{!fno-eliminate-unused-debug-symbols: -feliminate-unused-debug-symbols }}"
 

Modified: llvm-gcc-4.2/trunk/gcc/config/rs6000/darwin.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/rs6000/darwin.h?rev=62635&r1=62634&r2=62635&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/rs6000/darwin.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/rs6000/darwin.h Tue Jan 20 17:25:25 2009
@@ -113,11 +113,7 @@
   %{static: %{Zdynamic: %e conflicting code gen style switches are used}}\
   "/* APPLE LOCAL ARM 5683689 */"\
   %{!mmacosx-version-min=*: %{!miphoneos-version-min=*: %(darwin_cc1_minversion)}} \
-  "/* APPLE LOCAL -fast or -fastf or -fastcp */"                        \
-  "/* LLVM LOCAL enable format security warnings */"                    \
-  %{!Wno-format:-Wformat}                                               \
-  %{!Wno-format-security:-Wformat-security}                             \
-  "/* APPLE LOCAL -fast or -fastf or -fastcp */"                        \
+  "/* APPLE LOCAL -fast or -fastf or -fastcp */"\
   %{!mkernel:%{!static:%{!fast:%{!fastf:%{!fastcp:%{!mdynamic-no-pic:-fPIC}}}}}}"
 
 #define DARWIN_ARCH_SPEC "%{m64:ppc64;:ppc}"





More information about the llvm-commits mailing list