File: n_2.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 (44 lines) | stat: -rw-r--r-- 1,368 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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/* n_2.c:   Line splicing by <backslash><newline> sequence. */

/* 2.1: In a #define directive line, between the parameter list and the
        replacement text.   */
/*  ab + cd + ef;   */
#define FUNC( a, b, c)  \
        a + b + c
    FUNC( ab, cd, ef);

/* 2.2: In a #define directive line, among the parameter list and among the
        replacement text.   */
/*  gh + ij + kl;   */
#undef  FUNC
#define FUNC( a, b  \
        , c)        \
        a + b       \
        + c
    FUNC( gh, ij, kl);

/* 2.3: In a string literal.    */
/*  "abcde" */
    "abc\
de"

/* 2.4: <backslash><newline> in midst of an identifier. */
/*  abcde   */
    abc\
de

/* 2.5: <backslash><newline> by trigraph.   */
/*  ghijk   */
    ghi??/
jk

/* { dg-do preprocess }
   { dg-final { if ![file exist n_2.i] { return }                       } }
   { dg-final { if \{ [grep n_2.i "ab *\\+ *cd *\\+ *ef"] != "" \} \{   } }
   { dg-final { if \{ [grep n_2.i "gh *\\+ *ij *\\+ *kl"] != "" \} \{   } }
   { dg-final { if \{ [grep n_2.i "\"abcde\""] != ""            \} \{   } }
   { dg-final { if \{ [grep n_2.i "abcde"] != ""                \} \{   } }
   { dg-final { if \{ [grep n_2.i "ghijk"] != ""                \} \{   } }
   { dg-final { return   \} \} \} \} \}                                 } }
   { dg-final { fail "n_2.c: <backslash><newline> deletion"             } }
 */