Files correlati : Commento : Aggiunto il preprocessore c++ mcpp per sostituire il compilatore nella compilazione delle maschere.
41 lines
1.3 KiB
C
41 lines
1.3 KiB
C
/* e_19_3.c: Redefinitions of macros. */
|
|
|
|
/* { dg-do preprocess } */
|
|
|
|
/* Excerpts from ISO C 3.8.3 "Examples". */
|
|
|
|
#define OBJ_LIKE (1-1)
|
|
#define FTN_LIKE(a) ( a )
|
|
|
|
/* The following redefinitions should be diagnosed. */
|
|
|
|
/* 19.3: */
|
|
/* different token sequence */
|
|
#define OBJ_LIKE (0) /* { dg-error "redefined\n\[\^ \]*( error:|) this is the location | The macro is redefined" } */
|
|
|
|
/* (1-1); */
|
|
OBJ_LIKE;
|
|
|
|
/* 19.4: */
|
|
#undef OBJ_LIKE
|
|
#define OBJ_LIKE (1-1)
|
|
/* different white space */
|
|
#define OBJ_LIKE (1 - 1) /* { dg-error "redefined\n\[\^ \]*( error:|) this is the location | The macro is redefined" } */
|
|
|
|
/* 19.5: */
|
|
/* different parameter usage */
|
|
#define FTN_LIKE(b) ( a ) /* { dg-error "redefined\n\[\^ \]*( error:|) this is the location | The macro is redefined" } */
|
|
|
|
/* ( x ); */
|
|
FTN_LIKE(x);
|
|
|
|
/* 19.6: */
|
|
#undef FTN_LIKE
|
|
#define FTN_LIKE(a) ( a )
|
|
/* different parameter spelling */
|
|
#define FTN_LIKE(b) ( b ) /* { dg-error "redefined\n\[\^ \]*( error:|) this is the location | The macro is redefined" } */
|
|
|
|
/* 19.7: Not in ISO C "Examples" */
|
|
#define FTN_LIKE OBJ_LIKE /* { dg-error "redefined\n\[\^ \]*( error:|) this is the location | The macro is redefined" } */
|
|
|