aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorZack Weinberg <zack@rabi.columbia.edu>1999-04-09 20:02:39 +0000
committerZack Weinberg <zack@gcc.gnu.org>1999-04-09 20:02:39 +0000
commit5e4df1ae8bbcf947c92b03f92cf0bcde335a0844 (patch)
tree84f40e429501d1446d716f57cc15b439b99aee85 /gcc
parent2622b9478575059f41687a2f6a820cdc40e40868 (diff)
downloadgcc-5e4df1ae8bbcf947c92b03f92cf0bcde335a0844.zip
gcc-5e4df1ae8bbcf947c92b03f92cf0bcde335a0844.tar.gz
gcc-5e4df1ae8bbcf947c92b03f92cf0bcde335a0844.tar.bz2
cpphash.c (special_symbol): When expanding __LINE__, use the top file buffer, not the top buffer.
1999-04-09 22:58 -0400 Zack Weinberg <zack@rabi.columbia.edu> * cpphash.c (special_symbol): When expanding __LINE__, use the top file buffer, not the top buffer. From-SVN: r26319
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/cpphash.c2
-rw-r--r--gcc/testsuite/gcc.dg/990409-1.c18
3 files changed, 24 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 31196d8..12b0d4d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+1999-04-09 22:58 -0400 Zack Weinberg <zack@rabi.columbia.edu>
+
+ * cpphash.c (special_symbol): When expanding __LINE__, use the
+ top file buffer, not the top buffer.
+
Fri Apr 9 13:41:04 1999 Jim Wilson <wilson@cygnus.com>
* Makefile.in (check-g++, check-gcc, check-g77, check-objc): Add
diff --git a/gcc/cpphash.c b/gcc/cpphash.c
index 87946f2..5c2d5f3 100644
--- a/gcc/cpphash.c
+++ b/gcc/cpphash.c
@@ -991,7 +991,7 @@ special_symbol (hp, pfile)
case T_SPECLINE:
{
long line;
- cpp_buf_line_and_col (CPP_BUFFER (pfile), &line, NULL);
+ cpp_buf_line_and_col (cpp_file_buffer (pfile), &line, NULL);
CPP_RESERVE (pfile, 10);
sprintf (CPP_PWRITTEN (pfile), "%ld", line);
diff --git a/gcc/testsuite/gcc.dg/990409-1.c b/gcc/testsuite/gcc.dg/990409-1.c
new file mode 100644
index 0000000..faa37e0
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/990409-1.c
@@ -0,0 +1,18 @@
+/* Test that __LINE__ works when embedded in a macro. */
+/* { dg-do run } */
+
+#define foo() bar(__LINE__)
+
+void
+bar(int x)
+{
+ if (x != 16)
+ abort();
+}
+
+int
+main(void)
+{
+ foo(); /* This is line 16 */
+ return 0;
+}