[llvm-commits] [llvm-gcc-4.2] r52263 - in /llvm-gcc-4.2/trunk/gcc: c-cppbuiltin.c cfgexpand.c common.opt function.c toplev.c

Devang Patel dpatel at apple.com
Fri Jun 13 15:24:02 PDT 2008


Author: dpatel
Date: Fri Jun 13 17:24:02 2008
New Revision: 52263

URL: http://llvm.org/viewvc/llvm-project?rev=52263&view=rev
Log:

-fstack-protector is not supported.

Modified:
    llvm-gcc-4.2/trunk/gcc/c-cppbuiltin.c
    llvm-gcc-4.2/trunk/gcc/cfgexpand.c
    llvm-gcc-4.2/trunk/gcc/common.opt
    llvm-gcc-4.2/trunk/gcc/function.c
    llvm-gcc-4.2/trunk/gcc/toplev.c

Modified: llvm-gcc-4.2/trunk/gcc/c-cppbuiltin.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/c-cppbuiltin.c?rev=52263&r1=52262&r2=52263&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/c-cppbuiltin.c (original)
+++ llvm-gcc-4.2/trunk/gcc/c-cppbuiltin.c Fri Jun 13 17:24:02 2008
@@ -629,10 +629,14 @@
   /* Make the choice of the stack protector runtime visible to source code.
      The macro names and values here were chosen for compatibility with an
      earlier implementation, i.e. ProPolice.  */
+  /* LLVM LOCAL begin stack protector */
+#if 0
   if (flag_stack_protect == 2)
     cpp_define (pfile, "__SSP_ALL__=2");
   else if (flag_stack_protect == 1)
     cpp_define (pfile, "__SSP__=1");
+#endif
+  /* LLVM LOCAL end stack protector */
 
   if (flag_openmp)
     cpp_define (pfile, "_OPENMP=200505");

Modified: llvm-gcc-4.2/trunk/gcc/cfgexpand.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/cfgexpand.c?rev=52263&r1=52262&r2=52263&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/cfgexpand.c (original)
+++ llvm-gcc-4.2/trunk/gcc/cfgexpand.c Fri Jun 13 17:24:02 2008
@@ -697,8 +697,12 @@
 {
   /* If stack protection is enabled, *all* stack variables must be deferred,
      so that we can re-order the strings to the top of the frame.  */
+  /* LLVM LOCAL begin stack protector */
+#if 0
   if (flag_stack_protect)
     return true;
+#endif
+  /* LLVM LOCAL end stack protector */
 
   /* Variables in the outermost scope automatically conflict with
      every other variable.  The only reason to want to defer them
@@ -817,6 +821,8 @@
 #define SPCT_HAS_ARRAY			4
 #define SPCT_HAS_AGGREGATE		8
 
+/* LLVM LOCAL begin stack protector */
+#if 0
 static unsigned int
 stack_protect_classify_type (tree type)
 {
@@ -946,6 +952,8 @@
   expand_one_stack_var (guard);
   cfun->stack_protect_guard = guard;
 }
+#endif
+/* LLVM LOCAL end stack protector */
 
 /* Expand all variables used in the function.  */
 
@@ -1020,10 +1028,14 @@
 	 reflect this.  */
       add_alias_set_conflicts ();
 
+/* LLVM LOCAL begin stack protector */
+#if 0
       /* If stack protection is enabled, we don't share space between
 	 vulnerable data and non-vulnerable data.  */
       if (flag_stack_protect)
 	add_stack_protection_conflicts ();
+#endif
+/* LLVM LOCAL end stack protector */
 
       /* Now that we have collected all stack variables, and have computed a
 	 minimal interference graph, attempt to save some stack space.  */
@@ -1036,11 +1048,15 @@
      stack guard: protect-all, alloca used, protected decls present.  */
   /* APPLE LOCAL begin CW asm */
   /* Don't create a guard for iasm functions.  */
+  /* LLVM LOCAL begin stack protector */
+#if 0
   if ((flag_stack_protect == 2
       || (flag_stack_protect
 	   && (current_function_calls_alloca || has_protected_decls)))
       && !cfun->iasm_asm_function)
     create_stack_guard ();
+#endif
+  /* LLVM LOCAL end stack protector */
   /* APPLE LOCAL end CW asm */
 
   /* Assign rtl to each variable based on these partitions.  */
@@ -1051,6 +1067,8 @@
       /* ??? We could probably integrate this into the qsort we did
 	 earlier, such that we naturally see these variables first,
 	 and thus naturally allocate things in the right order.  */
+  /* LLVM LOCAL begin stack protector */
+#if 0
       if (has_protected_decls)
 	{
 	  /* Phase 1 contains only character arrays.  */
@@ -1060,7 +1078,8 @@
 	  if (flag_stack_protect == 2)
 	    expand_stack_vars (stack_protect_decl_phase_2);
 	}
-
+#endif
+  /* LLVM LOCAL end stack protector */
       expand_stack_vars (NULL);
 
       /* Free up stack variable graph data.  */
@@ -1615,6 +1634,8 @@
   expand_used_vars ();
 
   /* Honor stack protection warnings.  */
+  /* LLVM LOCAL begin stack protector */
+#if 0
   if (warn_stack_protect)
     {
       if (current_function_calls_alloca)
@@ -1623,6 +1644,8 @@
 	warning (0, "not protecting function: no buffer at least %d bytes long",
 		 (int) PARAM_VALUE (PARAM_SSP_BUFFER_SIZE));
     }
+#endif
+  /* LLVM LOCAL end stack protector */
 
   /* Set up parameters and prepare for return, for the function.  */
   expand_function_start (current_function_decl);

Modified: llvm-gcc-4.2/trunk/gcc/common.opt
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/common.opt?rev=52263&r1=52262&r2=52263&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/common.opt (original)
+++ llvm-gcc-4.2/trunk/gcc/common.opt Fri Jun 13 17:24:02 2008
@@ -121,9 +121,11 @@
 Common Var(warn_shadow)
 Warn when one local variable shadows another
 
-Wstack-protector
-Common Var(warn_stack_protect)
-Warn when not issuing stack smashing protection for some reason
+; LLVM LOCAL begin stack protector
+; Wstack-protector
+; Common Var(warn_stack_protect)
+; Warn when not issuing stack smashing protection for some reason
+; LLVM LOCAL end stack protector
 
 Wstrict-aliasing
 Common
@@ -998,13 +1000,15 @@
 Common RejectNegative Joined
 -fstack-limit-symbol=<name>	Trap if the stack goes past symbol <name>
 
-fstack-protector
-Common Report Var(flag_stack_protect, 1)
-Use propolice as a stack protection method
-
-fstack-protector-all
-Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
-Use a stack protection method for every function
+; LLVM LOCAL begin stack protector
+; fstack-protector
+; Common Report Var(flag_stack_protect, 1)
+; Use propolice as a stack protection method
+; 
+; fstack-protector-all
+; Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
+; Use a stack protection method for every function
+; LLVM LOCAL end stack protector
 
 fstrength-reduce
 Common

Modified: llvm-gcc-4.2/trunk/gcc/function.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/function.c?rev=52263&r1=52262&r2=52263&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/function.c (original)
+++ llvm-gcc-4.2/trunk/gcc/function.c Fri Jun 13 17:24:02 2008
@@ -2462,9 +2462,10 @@
 
   /* If stack protection is in effect for this function, don't leave any
      pointers in their passed stack slots.  */
+  /* LLVM LOCAL. 
+     Remove flag_stack_protector == 2 check */
   else if (cfun->stack_protect_guard
-	   && (flag_stack_protect == 2
-	       || data->passed_pointer
+	   && (data->passed_pointer
 	       || POINTER_TYPE_P (data->nominal_type)))
     stack_parm = NULL;
 

Modified: llvm-gcc-4.2/trunk/gcc/toplev.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/toplev.c?rev=52263&r1=52262&r2=52263&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/toplev.c (original)
+++ llvm-gcc-4.2/trunk/gcc/toplev.c Fri Jun 13 17:24:02 2008
@@ -2015,6 +2015,8 @@
   cl_pf_opts_cooked = cl_pf_opts;
   /* APPLE LOCAL end optimization pragmas 3124235/3420242 */
 
+/* LLVM LOCAL begin stack protector */
+#if 0
   /* Targets must be able to place spill slots at lower addresses.  If the
      target already uses a soft frame pointer, the transition is trivial.  */
   if (!FRAME_GROWS_DOWNWARD && flag_stack_protect)
@@ -2024,6 +2026,8 @@
     }
   if (!flag_stack_protect)
     warn_stack_protect = 0;
+#endif
+/* LLVM LOCAL end stack protector */
 
   /* ??? Unwind info is not correct around the CFG unless either a frame
      pointer is present or A_O_A is set.  Fixing this requires rewriting





More information about the llvm-commits mailing list