Ignore -O, -W and -g and other flags

This commit is contained in:
Rui Ueyama 2020-08-18 11:46:32 +09:00
parent 2bdc6b800c
commit b1fdddff15
2 changed files with 21 additions and 0 deletions

15
main.c
View File

@ -130,6 +130,21 @@ static void parse_args(int argc, char **argv) {
continue;
}
// These options are ignored for now.
if (!strncmp(argv[i], "-O", 2) ||
!strncmp(argv[i], "-W", 2) ||
!strncmp(argv[i], "-g", 2) ||
!strncmp(argv[i], "-std=", 5) ||
!strcmp(argv[i], "-ffreestanding") ||
!strcmp(argv[i], "-fno-builtin") ||
!strcmp(argv[i], "-fno-omit-frame-pointer") ||
!strcmp(argv[i], "-fno-stack-protector") ||
!strcmp(argv[i], "-fno-strict-aliasing") ||
!strcmp(argv[i], "-m64") ||
!strcmp(argv[i], "-mno-red-zone") ||
!strcmp(argv[i], "-w"))
continue;
if (argv[i][0] == '-' && argv[i][1] != '\0')
error("unknown argument: %s", argv[i]);

View File

@ -103,4 +103,10 @@ check -D
echo foo | $chibicc -Dfoo=bar -Ufoo -E - | grep -q foo
check -U
# ignored options
$chibicc -c -O -Wall -g -std=c11 -ffreestanding -fno-builtin \
-fno-omit-frame-pointer -fno-stack-protector -fno-strict-aliasing \
-m64 -mno-red-zone -w -o /dev/null $tmp/empty.c
check 'ignored options'
echo OK