aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2014-07-27 17:09:38 +0000
committerMarek Polacek <mpolacek@gcc.gnu.org>2014-07-27 17:09:38 +0000
commit61eb99f6cc4a1deed034cca72870a21d340d5aa2 (patch)
tree820f36cafea197aafe4a4a9b0925081fe2507eac /gcc
parent17522262ead9bae03bf6d21cc2b1e7a02ef60c60 (diff)
downloadgcc-61eb99f6cc4a1deed034cca72870a21d340d5aa2.zip
gcc-61eb99f6cc4a1deed034cca72870a21d340d5aa2.tar.gz
gcc-61eb99f6cc4a1deed034cca72870a21d340d5aa2.tar.bz2
re PR c/61861 (Incorrect column number for -Wdiscarded-qualifiers)
PR c/61861 * macro.c (builtin_macro): Add location parameter. Set location of builtin macro to the expansion point. (enter_macro_context): Pass location to builtin_macro. * gcc.dg/pr61861.c: New test. From-SVN: r213102
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pr61861.c37
2 files changed, 42 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 9f2311b..48717fc 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2014-07-27 Marek Polacek <polacek@redhat.com>
+
+ PR c/61861
+ * gcc.dg/pr61861.c: New test.
+
2014-07-27 Petr Murzin <petr.murzin@intel.com>
* gcc.target/i386/avx512f-vbroadcastf64x4-2.c: Fix the uninitialized
diff --git a/gcc/testsuite/gcc.dg/pr61861.c b/gcc/testsuite/gcc.dg/pr61861.c
new file mode 100644
index 0000000..d902868
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr61861.c
@@ -0,0 +1,37 @@
+/* { dg-do compile } */
+/* { dg-prune-output "expected" } */
+
+extern void foo (int);
+extern void bar (int, char *);
+
+#define F __FILE__ /* { dg-error "11:passing argument" } */
+#define T __TIME__ /* { dg-error "11:passing argument" } */
+#define D __DATE__ /* { dg-error "11:passing argument" } */
+#define L __LINE__ /* { dg-error "11:passing argument" } */
+
+#define F2 "foo" /* { dg-error "12:passing argument" } */
+#define T2 "foo" /* { dg-error "12:passing argument" } */
+#define D2 "foo" /* { dg-error "12:passing argument" } */
+#define L2 42 /* { dg-error "12:passing argument" } */
+
+void
+f (void)
+{
+ foo (__FILE__); /* { dg-error "8:passing argument" } */
+ foo (__BASE_FILE__); /* { dg-error "8:passing argument" } */
+ foo (__TIME__); /* { dg-error "8:passing argument" } */
+ foo (__DATE__); /* { dg-error "8:passing argument" } */
+ foo (__TIMESTAMP__); /* { dg-error "8:passing argument" } */
+ bar (1, __LINE__); /* { dg-error "11:passing argument" } */
+ bar (__COUNTER__, __COUNTER__); /* { dg-error "21:passing argument" } */
+
+ foo (F); /* { dg-message "8:in expansion of" } */
+ foo (T); /* { dg-message "8:in expansion of" } */
+ foo (D); /* { dg-message "8:in expansion of" } */
+ bar (1, L); /* { dg-message "11:in expansion of" } */
+
+ foo (F2); /* { dg-message "8:in expansion of" } */
+ foo (T2); /* { dg-message "8:in expansion of" } */
+ foo (D2); /* { dg-message "8:in expansion of" } */
+ bar (1, L2); /* { dg-message "11:in expansion of" } */
+}