expr: Fix qualifiers of base type during implicit array conversion
expr: Implement type-checking for casts and assignments
expr: fix erroneous comparison
as long as `size_t`'s conversion rank is >= `int` this check would work
but in case size_t happens to be less than int (which I believe is valid
under the C standard) then comparison will take place in `signed int`
and the operand `-1` will not get implicitly converted to SIZE_MAX.
explicitly cast it to size_t to avoid such issues.
expr: Use integer type for member access intermediate address calculation
Remove use of C11 noreturn
init: Allow empty initializers
pp: Ignore pragmas
The standard says we should ignore any pragmas that we don't
Add test for typeof on expression with array type
Allow unnamed parameters in function definitions
LICENSE: Put test data in public domain
LICENSE: Update copyright year
qbe: Only return 0 from main if it has type int
Though C11 184.108.40.206.1 says that main must have a return type of int,
we could still encounter a program which declares it as something
else. This is undefined behavior, but we should not produce invalid
QBE IL in this case.
Also, 220.127.116.11.3 specifies that the implicit return 0 should only
apply when main's return type is compatible with int.
Add -Wno-maybe-uninitialized to prevent false-positive warnings
Remove one last use of _Noreturn
qbe: Switch to new unsigned-float conversion operators
qbe: Use new unary negation operator
qbe: Switch to unary negation
This fixes bugs involving floating point negative zero.