[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