aboutsummaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
2020-05-24qbe: Omit unnecessary add to help QBE's memopt passMichael Forney
2020-04-04expr: Fix type of '&' operator applied to arrayMichael Forney
It should be a pointer to the array, not to the first element (as it would after implicit conversion without the '&' operator).
2020-03-22pp: Don't add leading space for first stringized tokenMichael Forney
2020-03-22pp: Implement variadic macrosMichael Forney
2020-03-18pp: Add test for function-like macro with no argument tokensMichael Forney
2020-03-18pp: Finish '#' operatorMichael Forney
2020-03-17pp: Fix some whitespace after preprocessingMichael Forney
2020-03-17pp: Add support for macro definition and expansionMichael Forney
The token pasting operator `##` still needs to be implemented.
2020-01-31eval: Allow casting address constants to integer types in constant expressionsMichael Forney
2020-01-30Add test for sizeof string literalMichael Forney
This was regressed in d889bc80be and fixed in 090e2932ce.
2020-01-30decl: Better check for inline definitionsMichael Forney
2019-08-13Remove test corresponding to cast-same-type.qbeMichael Forney
This should have been removed when "expr: Fix cast of same type" was reverted in 0d1969024c.
2019-08-12Revert "expr: Fix cast of same type"Michael Forney
This reverts commit 1a38a5fc4844a0de8729be694a62ba0afce3ff52. This breaks comparisons bitfields in some cases, for instance extern struct {unsigned x:31;} s; int main(void) { return (unsigned)s.x - 1 < 0; } If we discard the cast, then it is a signed comparison because of integer promotion for bit-fields, otherwise it is an unsigned comparison. Additionally, the test case this was meant to fix is not actually ISO C, since casts must be to scalar types or `void`.
2019-08-11decl: Allow enumerator values up to UINT_MAXMichael Forney
2019-07-11expr: Fix cast of same typeMichael Forney
2019-07-10decl: Display message when _Static_assert failsMichael Forney
2019-07-07type: Ignore parameter qualifiers when determining type compatibilityMichael Forney
The end of C11 6.7.6.3p15 says that qualifiers should be ignored when checking compatibility of function types.
2019-07-05qbe: Handle K&R function definition argument promotionMichael Forney
Parameters for K&R function definitions that are affected by default argument promotion are passed as their promoted type, so need to be converted back before storing into memory allocated for the parameter.
2019-07-05stmt: Fix conversion of controlling expression to boolMichael Forney
In d875bf74, I accidentally converted the increment expression to bool rather than the controlling expression. Whoops, I should check the updated test case IL more carefully next time.
2019-07-03Implement no-op __builtin_expectMichael Forney
2019-07-03Convert controlling expression of loops to boolMichael Forney
2019-06-27qbe: Fix switch statements with 64-bit controlling expressionMichael Forney
2019-06-04Fix non-adjacent bit-fieldsMichael Forney
2019-05-29Temporarily avoid %a when printing floating constantsMichael Forney
This is C99, but is not supported by fscanf in OpenBSD, so floating constants can't be read back in by QBE.
2019-05-16Fix test after amend to 52bf506Michael Forney
2019-05-16stmt: continue in do-loop should evaluate controlling expressionMichael Forney
2019-05-16decl: Qualifiers of array type are for element typeMichael Forney
2019-05-16decl: extern storage class with initializer is still a definitionMichael Forney
2019-05-16Remove incorrect type equality check in usual arithmetic conversionsMichael Forney
Integer types still undergo integer promotions even if they are the same type.
2019-05-15Implement asm labelsMichael Forney
2019-05-12eval: Keep track of kind of constant expression we are evaluatingMichael Forney
When we are evaluating an arithmetic constant expression, we don't want to indroduce static data definitions for string or compound literals. Fixes #59.
2019-05-10qbe: Fix QBE types for structs containing bit-fieldsMichael Forney
2019-05-08Update expected test output for fe4297ba1dMichael Forney
2019-04-27Unnamed bit-fields don't contribute to size or alignment of unions, or size ↵Michael Forney
of structs
2019-04-27Sign-extend result of bit-field assignmentsMichael Forney
Fixes #51. Thanks to Andrew Chambers for the bug report and test case.
2019-04-27Fix some function declarator corner casesMichael Forney
2019-04-27init: Allow string literal initializers to be in bracesMichael Forney
2019-04-24Implement _Generic selectionMichael Forney
2019-04-24qbe: Make sure generated code doesn't depend on argument evaluation orderMichael Forney
It would be correct in any order, but this is a bit simpler and guarantees the same output.
2019-04-23Fix integer promotion on bit-fieldsMichael Forney
Fixes #47.
2019-04-22Simplify test/typeofMichael Forney
2019-04-20eval: Handle casts in constant expressionsMichael Forney
Fixes #23.
2019-04-18Fix potential overflow of bit-field initializers into following memberMichael Forney
Fixes #46. Thanks to Andrew Chambers for the bug report.
2019-04-17Fix bit-field offsets in unionsMichael Forney
2019-04-17Allow designators in __builtin_offsetofMichael Forney
2019-04-16Use undecayed type in __typeof__Michael Forney
2019-04-16Implement __builtin_types_compatible_pMichael Forney
This is used by util-linux.
2019-04-16tests -> testMichael Forney