Files correlati : Commento : Aggiunto il preprocessore c++ mcpp per sostituire il compilatore nella compilazione delle maschere.
45 lines
1.3 KiB
C
45 lines
1.3 KiB
C
/* 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" } }
|
|
*/
|