Add ability to set target options (ix86 only) and optimization options on a function...
[platform/upstream/linaro-gcc.git] / gcc / c-decl.c
index 5285c02..80ec48f 100644 (file)
@@ -1842,6 +1842,17 @@ merge_decls (tree newdecl, tree olddecl, tree newtype, tree oldtype)
              = C_DECL_BUILTIN_PROTOTYPE (olddecl);
        }
 
+      /* Preserve function specific target and optimization options */
+      if (DECL_FUNCTION_SPECIFIC_TARGET (olddecl)
+         && !DECL_FUNCTION_SPECIFIC_TARGET (newdecl))
+       DECL_FUNCTION_SPECIFIC_TARGET (newdecl)
+         = DECL_FUNCTION_SPECIFIC_TARGET (olddecl);
+
+      if (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (olddecl)
+         && !DECL_FUNCTION_SPECIFIC_OPTIMIZATION (newdecl))
+       DECL_FUNCTION_SPECIFIC_OPTIMIZATION (newdecl)
+         = DECL_FUNCTION_SPECIFIC_OPTIMIZATION (olddecl);
+
       /* Also preserve various other info from the definition.  */
       if (!new_is_definition)
        {