diff options
author | Devang Patel <dpatel@gcc.gnu.org> | 2003-04-22 12:52:51 -0700 |
---|---|---|
committer | Devang Patel <dpatel@gcc.gnu.org> | 2003-04-22 12:52:51 -0700 |
commit | f945b4e0f5e0b90aa39b74c1bc4f9f5f2f8170ae (patch) | |
tree | 29ae547a1ad3c6927d1542311de1a9b3f12eb215 /gcc | |
parent | 1067694a52b1cb7b5508c1240cc1d58bc71113d4 (diff) | |
download | gcc-f945b4e0f5e0b90aa39b74c1bc4f9f5f2f8170ae.zip gcc-f945b4e0f5e0b90aa39b74c1bc4f9f5f2f8170ae.tar.gz gcc-f945b4e0f5e0b90aa39b74c1bc4f9f5f2f8170ae.tar.bz2 |
cpptrad.c (_cpp_replacement_text_len): Add check for macro parameter count.
* cpptrad.c (_cpp_replacement_text_len): Add check for macro parameter count.
(_cpp_copy_replacement_text): Same.
* gcc.dg/cpp/trad/funlike-5.c: New test.
From-SVN: r65952
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/cpptrad.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cpp/trad/funlike-5.c | 10 |
4 files changed, 24 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f2dc8c7..a9df835 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ + +2003-04-22 Devang Patel <dpatel@apple.com> + + * cpptrad.c (_cpp_replacement_text_len): Add check for macro parameter count. + (_cpp_copy_replacement_text): Same. + 2003-04-22 Neil Booth <neil@daikokuya.co.uk> * c-lex.c (c_lex): Handle CPP_OTHER differently. @@ -57,6 +63,7 @@ (note_eh_region_may_contain_throw): New function. * except.h (note_eh_region_may_contain_throw): New function. +>>>>>>> 1.17566 2003-04-21 Mark Mitchell <mark@codesourcery.com> * config/i386/winnt.c (i386_pe_mark_dllimport): Revert previous diff --git a/gcc/cpptrad.c b/gcc/cpptrad.c index f2f94f6..f8923ae 100644 --- a/gcc/cpptrad.c +++ b/gcc/cpptrad.c @@ -761,7 +761,7 @@ _cpp_replacement_text_len (macro) { size_t len; - if (macro->fun_like) + if (macro->fun_like && (macro->paramc != 0)) { const uchar *exp; @@ -791,7 +791,7 @@ _cpp_copy_replacement_text (macro, dest) const cpp_macro *macro; uchar *dest; { - if (macro->fun_like) + if (macro->fun_like && (macro->paramc != 0)) { const uchar *exp; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5f21ec1..3face0f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ + +2003-04-22 Devang Patel <dpatel@apple.com> + + * gcc.dg/cpp/trad/funlike-5.c: New test. + 2003-04-21 Andreas Tobler <a.tobler@schweiz.ch> * g++.dg/other/packed1.C: Fix dg options. diff --git a/gcc/testsuite/gcc.dg/cpp/trad/funlike-5.c b/gcc/testsuite/gcc.dg/cpp/trad/funlike-5.c new file mode 100644 index 0000000..f60a6ea --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp/trad/funlike-5.c @@ -0,0 +1,10 @@ +/* Test function like macro. */ +/* Contributed by Devang Patel <dpatel@apple.com> */ + +/* {do-do preprocess } */ +/* { dg-options "-traditional-cpp -E -dD" } */ +int __srget (char *); +#define __sgetc(p) (--(p)->_r < 0 ? __srget(p) : (int)(*(p)->_p++)) +#define getc(fp) __sgetc(fp) +#define getchar() getc(stdin) + |