diff options
Diffstat (limited to 'gcc-4.9/gcc/builtins.c')
-rw-r--r-- | gcc-4.9/gcc/builtins.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc-4.9/gcc/builtins.c b/gcc-4.9/gcc/builtins.c index dd57b1ae4..d6642d0d9 100644 --- a/gcc-4.9/gcc/builtins.c +++ b/gcc-4.9/gcc/builtins.c @@ -59,6 +59,7 @@ along with GCC; see the file COPYING3. If not see #include "builtins.h" #include "ubsan.h" #include "cilk.h" +#include "input.h" static tree do_mpc_arg1 (tree, tree, int (*)(mpc_ptr, mpc_srcptr, mpc_rnd_t)); @@ -12064,13 +12065,16 @@ fold_builtin_next_arg (tree exp, bool va_start_p) tree fntype = TREE_TYPE (current_function_decl); int nargs = call_expr_nargs (exp); tree arg; + location_t loc = LOCATION_LOCUS (input_location); + if (has_discriminator (loc)) + loc = map_discriminator_location (loc); + /* There is good chance the current input_location points inside the definition of the va_start macro (perhaps on the token for builtin) in a system header, so warnings will not be emitted. Use the location in real source code. */ source_location current_location = - linemap_unwind_to_first_non_reserved_loc (line_table, input_location, - NULL); + linemap_unwind_to_first_non_reserved_loc (line_table, loc, NULL); if (!stdarg_p (fntype)) { |