OSDN Git Service

* cpptrad.c (_cpp_replacement_text_len): Add check for macro parameter count.
authordpatel <dpatel@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 22 Apr 2003 19:52:51 +0000 (19:52 +0000)
committerdpatel <dpatel@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 22 Apr 2003 19:52:51 +0000 (19:52 +0000)
        (_cpp_copy_replacement_text): Same.

        * gcc.dg/cpp/trad/funlike-5.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@65952 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/cpptrad.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/cpp/trad/funlike-5.c [new file with mode: 0644]

index f2dc8c7..a9df835 100644 (file)
@@ -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
index f2f94f6..f8923ae 100644 (file)
@@ -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;
 
index 5f21ec1..3face0f 100644 (file)
@@ -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 (file)
index 0000000..f60a6ea
--- /dev/null
@@ -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)
+