180 lines
3.7 KiB
C
180 lines
3.7 KiB
C
#include "third_party/chibicc/test/test.h"
|
|
|
|
float g40 = 1.5;
|
|
double g41 = 0.0 ? 55 : (0, 1 + 1 * 5.0 / 2 * (double)2 * (int)2.0);
|
|
|
|
int main() {
|
|
ASSERT(10, ({
|
|
enum { ten = 1 + 2 + 3 + 4 };
|
|
ten;
|
|
}));
|
|
ASSERT(1, ({
|
|
int i = 0;
|
|
switch (3) {
|
|
case 5 - 2 + 0 * 3:
|
|
i++;
|
|
}
|
|
i;
|
|
}));
|
|
ASSERT(8, ({
|
|
int x[1 + 1];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(6, ({
|
|
char x[8 - 2];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(6, ({
|
|
char x[2 * 3];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(3, ({
|
|
char x[12 / 4];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(2, ({
|
|
char x[12 % 10];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(0b100, ({
|
|
char x[0b110 & 0b101];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(0b111, ({
|
|
char x[0b110 | 0b101];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(0b110, ({
|
|
char x[0b111 ^ 0b001];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(4, ({
|
|
char x[1 << 2];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(2, ({
|
|
char x[4 >> 1];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(2, ({
|
|
char x[(1 == 1) + 1];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(1, ({
|
|
char x[(1 != 1) + 1];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(1, ({
|
|
char x[(1 < 1) + 1];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(2, ({
|
|
char x[(1 <= 1) + 1];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(2, ({
|
|
char x[1 ? 2 : 3];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(3, ({
|
|
char x[0 ? 2 : 3];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(3, ({
|
|
char x[(1, 3)];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(2, ({
|
|
char x[!0 + 1];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(1, ({
|
|
char x[!1 + 1];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(2, ({
|
|
char x[~-3];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(2, ({
|
|
char x[(5 || 6) + 1];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(1, ({
|
|
char x[(0 || 0) + 1];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(2, ({
|
|
char x[(1 && 1) + 1];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(1, ({
|
|
char x[(1 && 0) + 1];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(3, ({
|
|
char x[(int)3];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(15, ({
|
|
char x[(char)0xffffff0f];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(0x10f, ({
|
|
char x[(short)0xffff010f];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(4, ({
|
|
char x[(int)0xfffffffffff + 5];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(8, ({
|
|
char x[(int*)0 + 2];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(12, ({
|
|
char x[(int*)16 - 1];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(3, ({
|
|
char x[(int*)16 - (int*)4];
|
|
sizeof(x);
|
|
}));
|
|
|
|
ASSERT(4, ({
|
|
char x[(-1 >> 31) + 5];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(255, ({
|
|
char x[(unsigned char)0xffffffff];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(0x800f, ({
|
|
char x[(unsigned short)0xffff800f];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(1, ({
|
|
char x[(unsigned int)0xfffffffffff >> 31];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(1, ({
|
|
char x[(long)-1 / ((long)1 << 62) + 1];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(4, ({
|
|
char x[(unsigned long)-1 / ((long)1 << 62) + 1];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(1, ({
|
|
char x[(unsigned)1 < -1];
|
|
sizeof(x);
|
|
}));
|
|
ASSERT(1, ({
|
|
char x[(unsigned)1 <= -1];
|
|
sizeof(x);
|
|
}));
|
|
|
|
ASSERT(1, g40 == 1.5);
|
|
ASSERT(1, g41 == 11);
|
|
}
|