aboutsummaryrefslogtreecommitdiff
path: root/gcc/input.c
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2016-05-03 18:03:42 +0000
committerMarek Polacek <mpolacek@gcc.gnu.org>2016-05-03 18:03:42 +0000
commit79ce98bcefbcd42548dc596316c27b162cabb610 (patch)
tree1356923e14f6cfb6e6e6d80ac03712659ba41aa3 /gcc/input.c
parent402e89f5986220a96898381cc32f7efe76bd092c (diff)
downloadgcc-79ce98bcefbcd42548dc596316c27b162cabb610.zip
gcc-79ce98bcefbcd42548dc596316c27b162cabb610.tar.gz
gcc-79ce98bcefbcd42548dc596316c27b162cabb610.tar.bz2
re PR c/70859 (Bad column number in type-generic function errors)
PR c/70859 * input.c (expansion_point_location): New function. * input.h (expansion_point_location): Declare. * c-common.c (builtin_function_validate_nargs): Add location parameter. Use it. (check_builtin_function_arguments): Add location and arguments parameters. Use them. * c-common.h (check_builtin_function_arguments): Update declaration. * c-typeck.c (build_function_call_vec): Pass LOC and ARG_LOC down to check_builtin_function_arguments. * call.c (build_cxx_call): Pass location and vNULL down to check_builtin_function_arguments. * gcc.dg/pr70859.c: New test. * gcc.dg/pr70859-2.c: New test. From-SVN: r235832
Diffstat (limited to 'gcc/input.c')
-rw-r--r--gcc/input.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/input.c b/gcc/input.c
index 9779198..61b1e44 100644
--- a/gcc/input.c
+++ b/gcc/input.c
@@ -789,6 +789,16 @@ expansion_point_location_if_in_system_header (source_location location)
return location;
}
+/* If LOCATION is a virtual location for a token coming from the expansion
+ of a macro, unwind to the location of the expansion point of the macro. */
+
+source_location
+expansion_point_location (source_location location)
+{
+ return linemap_resolve_location (line_table, location,
+ LRK_MACRO_EXPANSION_POINT, NULL);
+}
+
#define ONE_K 1024
#define ONE_M (ONE_K * ONE_K)