File: n_30.c

package info (click to toggle)
mcpp 2.7.1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 8,024 kB
  • ctags: 29,151
  • sloc: ansic: 35,191; sh: 9,231; makefile: 176; cpp: 84; exp: 18
file content (29 lines) | stat: -rw-r--r-- 1,159 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/* n_30.c:  Macro call. */
/*  Note:   Comma separate the arguments of function-like macro call,
        but comma between matching inner parenthesis doesn't.  This feature
        is tested on so many places in this suite especially on *.c samples
        which use assert() macro, that no separete item to test this feature
        is provided.    */

/* 30.1:    A macro call may cross the lines.   */
#define FUNC( a, b, c)      a + b + c
/*  a + b + c;  */
    FUNC
    (
        a,
        b,
        c
    )
    ;

/* { dg-do preprocess }
   { dg-final { if ![file exist n_30.i] { return }                      } }
   { dg-final { if \{ [grep n_30.i "a *\\+ *b *\\+ *c"] != ""   \} \{   } }
   { dg-final { return \}                                               } }
   { dg-final { if \{ [grep n_30.i "a *\\+ *"] != ""            \} \{   } }
   { dg-final { if \{ [grep n_30.i "b *\\+ *"] != ""            \} \{   } }
   { dg-final { if \{ [grep n_30.i "c"] != ""                   \} \{   } }
   { dg-final { return \} \} \}                                         } }
   { dg-final { fail "n_30.c: macro call on multi-line"                 } }
 */