diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index 8fe9b51..d74eeb6 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -541,9 +541,6 @@ static const struct attribute_spec ia64_attribute_table[] =
 #define TARGET_ASM_OUTPUT_DWARF_DTPREL ia64_output_dwarf_dtprel
 #endif
 
-#undef TARGET_PROMOTE_FUNCTION_MODE
-#define TARGET_PROMOTE_FUNCTION_MODE default_promote_function_mode
-
 /* ??? Investigate.  */
 #if 0
 #undef TARGET_PROMOTE_PROTOTYPES
diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h
index a3ccd6f..aaa2f26 100644
--- a/gcc/config/ia64/ia64.h
+++ b/gcc/config/ia64/ia64.h
@@ -157,6 +157,8 @@ do								\
   }									\
 while (0)
 
+#define TARGET_PROMOTE_FUNCTION_MODE default_promote_function_mode
+
 #define PARM_BOUNDARY 64
 
 /* Define this macro if you wish to preserve a certain alignment for the stack
diff --git a/gcc/config/ia64/vms.h b/gcc/config/ia64/vms.h
index fada50c..f34ee78 100644
--- a/gcc/config/ia64/vms.h
+++ b/gcc/config/ia64/vms.h
@@ -154,3 +154,6 @@ STATIC func_ptr __CTOR_LIST__[1]                                             \
 	(UNSIGNEDP) = 0;					\
       (MODE) = DImode;						\
     }
+
+#undef TARGET_PROMOTE_FUNCTION_MODE
+#define TARGET_PROMOTE_FUNCTION_MODE default_promote_function_mode_always_promote
