Hi,

SUBTARGET_OVERRIDE_OPTIONS and SUBSUBTARGET_OVERRIDE_OPTIONS may depend
on TARGET_64BIT.  This patch moves their handling after TARGET_64BIT
is updated.  Tested on Linux/x86-64. OK for trunk?

Thanks.


H.J.
---
2012-04-10  H.J. Lu  <hongjiu...@intel.com>

        * config/i386/i386.c (ix86_option_override_internal): Check
        SUBTARGET_OVERRIDE_OPTIONS and SUBSUBTARGET_OVERRIDE_OPTIONS
        after TARGET_64BIT is updated.

diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 8974ddc..af4af7c 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -3113,14 +3113,6 @@ ix86_option_override_internal (bool main_args_p)
       sw = "attribute";
     }
 
-#ifdef SUBTARGET_OVERRIDE_OPTIONS
-  SUBTARGET_OVERRIDE_OPTIONS;
-#endif
-
-#ifdef SUBSUBTARGET_OVERRIDE_OPTIONS
-  SUBSUBTARGET_OVERRIDE_OPTIONS;
-#endif
-
   /* Turn off both OPTION_MASK_ABI_64 and OPTION_MASK_ABI_X32 if
      TARGET_64BIT_DEFAULT is true and TARGET_64BIT is false.  */
   if (TARGET_64BIT_DEFAULT && !TARGET_64BIT)
@@ -3161,6 +3153,14 @@ ix86_option_override_internal (bool main_args_p)
       ix86_isa_flags &= ~OPTION_MASK_ABI_X32;
     }
 
+#ifdef SUBTARGET_OVERRIDE_OPTIONS
+  SUBTARGET_OVERRIDE_OPTIONS;
+#endif
+
+#ifdef SUBSUBTARGET_OVERRIDE_OPTIONS
+  SUBSUBTARGET_OVERRIDE_OPTIONS;
+#endif
+
   /* -fPIC is the default for x86_64.  */
   if (TARGET_MACHO && TARGET_64BIT)
     flag_pic = 2;

Reply via email to