The "open a whisky and cut your finger open" patch

Make integer constant parsing C99 compliant
This commit is contained in:
Thomas Preud'homme
2015-02-18 04:22:25 +00:00
parent ff783b94c7
commit a6c3ce6ec0
3 changed files with 62 additions and 37 deletions

View File

@ -0,0 +1,17 @@
#include <stdio.h>
int main()
{
long long int res = 0;
if (res < -2147483648LL) {
printf("Error: 0 < -2147483648\n");
return 1;
}
else
if (2147483647LL < res) {
printf("Error: 2147483647 < 0\n");
return 2;
}
return 0;
}

View File

@ -91,6 +91,7 @@ TESTS = \
69_macro_param_list_err_2.test \
70_floating_point_literals.test \
71_macro_empty_arg.test \
72_long_long_constant.test \
# 34_array_assignment.test -- array assignment is not in C standard
@ -113,14 +114,14 @@ ARGS =
all test: $(filter-out $(SKIP),$(TESTS))
%.test: %.c %.expect
%.test: %.c
@echo Test: $*...
@$(TCC) -run $< $(ARGS) 2>&1 | grep -v 'warning: soft float ABI currently not supported: default to softfp' >$*.output || true
@diff -bu $*.expect $*.output && rm -f $*.output
@diff -Nbu $*.expect $*.output && rm -f $*.output
@($(TCC) $< -o $*.exe && ./$*.exe $(ARGS)) 2>&1 | grep -v 'warning: soft float ABI currently not supported: default to softfp' >$*.output2 || true
@diff -bu $*.expect $*.output2 && rm -f $*.output2 $*.exe
@diff -Nbu $*.expect $*.output2 && rm -f $*.output2 $*.exe
clean:
rm -vf fred.txt *.output* *.exe