OSDN Git Service

* varasm.c (make_decl_rtl_for_debug): Also clear
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 22 Mar 2010 10:30:27 +0000 (10:30 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 22 Mar 2010 10:30:27 +0000 (10:30 +0000)
flag_mudflap for the duration of make_decl_rtl call.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@157621 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/varasm.c

index 2fa71a6..4131a49 100644 (file)
@@ -1,5 +1,8 @@
 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
 
+       * varasm.c (make_decl_rtl_for_debug): Also clear
+       flag_mudflap for the duration of make_decl_rtl call.
+
        PR debug/43443
        * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
        locs from preserved VALUEs.
index 31007b8..424d704 100644 (file)
@@ -1484,7 +1484,7 @@ make_decl_rtl (tree decl)
 rtx
 make_decl_rtl_for_debug (tree decl)
 {
-  unsigned int save_aliasing_flag;
+  unsigned int save_aliasing_flag, save_mudflap_flag;
   rtx rtl;
 
   if (DECL_RTL_SET_P (decl))
@@ -1495,9 +1495,12 @@ make_decl_rtl_for_debug (tree decl)
      we do not want to create alias sets that will throw the alias
      numbers off in the comparison dumps.  So... clearing
      flag_strict_aliasing will keep new_alias_set() from creating a
-     new set.  */
+     new set.  It is undesirable to register decl with mudflap
+     in this case as well.  */
   save_aliasing_flag = flag_strict_aliasing;
   flag_strict_aliasing = 0;
+  save_mudflap_flag = flag_mudflap;
+  flag_mudflap = 0;
 
   rtl = DECL_RTL (decl);
   /* Reset DECL_RTL back, as various parts of the compiler expects
@@ -1505,6 +1508,7 @@ make_decl_rtl_for_debug (tree decl)
   SET_DECL_RTL (decl, NULL);
 
   flag_strict_aliasing = save_aliasing_flag;
+  flag_mudflap = save_mudflap_flag;
 
   return rtl;
 }