mirror of
https://github.com/github/codeql.git
synced 2025-12-22 19:56:32 +01:00
89 lines
1.3 KiB
C
89 lines
1.3 KiB
C
|
|
int x;
|
|
|
|
#define STMT x = 1;
|
|
|
|
#define BLOCK { \
|
|
x = 1; \
|
|
}
|
|
|
|
#define STUFF_AND_BLOCK x = 1; \
|
|
{ \
|
|
x = 1; \
|
|
} \
|
|
x = 1;
|
|
|
|
#define STUFF_AND_START_BLOCK x = 1; \
|
|
{ \
|
|
x = 1;
|
|
|
|
#define STUFF_AND_END_BLOCK x = 1; \
|
|
} \
|
|
x = 1;
|
|
|
|
#define STMT1 STMT
|
|
#define STMT2 STMT
|
|
#define STMT3 STMT
|
|
|
|
#define MEGA_MACRO1 STMT1 \
|
|
STUFF_AND_START_BLOCK \
|
|
STMT2 \
|
|
STUFF_AND_END_BLOCK \
|
|
STMT3
|
|
|
|
#define STMT4 STMT
|
|
#define STMT5 STMT
|
|
#define STMT6 STMT
|
|
|
|
#define MEGA_MACRO2 STMT4 \
|
|
STUFF_AND_START_BLOCK \
|
|
STMT5 \
|
|
} \
|
|
STMT6
|
|
|
|
|
|
void f1(void) {
|
|
{
|
|
STMT
|
|
}
|
|
|
|
{
|
|
x = 1;
|
|
STMT
|
|
x = 1;
|
|
}
|
|
|
|
BLOCK
|
|
|
|
STUFF_AND_BLOCK
|
|
|
|
{
|
|
x = 1;
|
|
STUFF_AND_END_BLOCK
|
|
|
|
STUFF_AND_START_BLOCK
|
|
x = 1;
|
|
}
|
|
|
|
MEGA_MACRO1
|
|
|
|
MEGA_MACRO2
|
|
}
|
|
|
|
#define P2 } P1
|
|
#define P1 { P0 }
|
|
#define P0 ;
|
|
|
|
void f2(void) {
|
|
{ P2
|
|
}
|
|
|
|
#define P5(x) } x
|
|
#define P4 { P3 }
|
|
#define P3 ;
|
|
|
|
void f3(void) {
|
|
{ P5(P4)
|
|
}
|
|
|