re PR target/31989 (Gcc miscompiles C/C++ on Linux/x86-64)
[gcc.git] / gcc / config / i386 / i386.c
index 3c9445affdbea46f2586b076ae07c484c215029e..1bea8d7cb9e0f379b6035e1d4f68c8ea2137263a 100644 (file)
@@ -3051,7 +3051,10 @@ init_cumulative_args (CUMULATIVE_ARGS *cum,  /* Argument info to initialize */
     cum->mmx_nregs = MMX_REGPARM_MAX;
   cum->warn_sse = true;
   cum->warn_mmx = true;
-  cum->maybe_vaarg = (fntype ? type_has_variadic_args_p (fntype) : !libname);
+  cum->maybe_vaarg = (fntype
+                     ? (!TYPE_ARG_TYPES (fntype)
+                        || type_has_variadic_args_p (fntype))
+                     : !libname);
 
   if (!TARGET_64BIT)
     {