Age | Commit message (Collapse) | Author | |
---|---|---|---|
2020-05-24 | qbe: Omit unnecessary add to help QBE's memopt pass | Michael Forney | |
2020-04-04 | expr: Fix type of '&' operator applied to array | Michael 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-22 | pp: Don't add leading space for first stringized token | Michael Forney | |
2020-03-22 | pp: Implement variadic macros | Michael Forney | |
2020-03-18 | pp: Add test for function-like macro with no argument tokens | Michael Forney | |
2020-03-18 | pp: Finish '#' operator | Michael Forney | |
2020-03-17 | pp: Fix some whitespace after preprocessing | Michael Forney | |
2020-03-17 | pp: Add support for macro definition and expansion | Michael Forney | |
The token pasting operator `##` still needs to be implemented. | |||
2020-01-31 | eval: Allow casting address constants to integer types in constant expressions | Michael Forney | |
2020-01-30 | Add test for sizeof string literal | Michael Forney | |
This was regressed in d889bc80be and fixed in 090e2932ce. | |||
2020-01-30 | decl: Better check for inline definitions | Michael Forney | |
2019-08-13 | Remove test corresponding to cast-same-type.qbe | Michael Forney | |
This should have been removed when "expr: Fix cast of same type" was reverted in 0d1969024c. | |||
2019-08-12 | Revert "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-11 | decl: Allow enumerator values up to UINT_MAX | Michael Forney | |
2019-07-11 | expr: Fix cast of same type | Michael Forney | |
2019-07-10 | decl: Display message when _Static_assert fails | Michael Forney | |
2019-07-07 | type: Ignore parameter qualifiers when determining type compatibility | Michael Forney | |
The end of C11 6.7.6.3p15 says that qualifiers should be ignored when checking compatibility of function types. | |||
2019-07-05 | qbe: Handle K&R function definition argument promotion | Michael 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-05 | stmt: Fix conversion of controlling expression to bool | Michael 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-03 | Implement no-op __builtin_expect | Michael Forney | |
2019-07-03 | Convert controlling expression of loops to bool | Michael Forney | |
2019-06-27 | qbe: Fix switch statements with 64-bit controlling expression | Michael Forney | |
2019-06-04 | Fix non-adjacent bit-fields | Michael Forney | |
2019-05-29 | Temporarily avoid %a when printing floating constants | Michael 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-16 | Fix test after amend to 52bf506 | Michael Forney | |
2019-05-16 | stmt: continue in do-loop should evaluate controlling expression | Michael Forney | |
2019-05-16 | decl: Qualifiers of array type are for element type | Michael Forney | |
2019-05-16 | decl: extern storage class with initializer is still a definition | Michael Forney | |
2019-05-16 | Remove incorrect type equality check in usual arithmetic conversions | Michael Forney | |
Integer types still undergo integer promotions even if they are the same type. | |||
2019-05-15 | Implement asm labels | Michael Forney | |
2019-05-12 | eval: Keep track of kind of constant expression we are evaluating | Michael 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-10 | qbe: Fix QBE types for structs containing bit-fields | Michael Forney | |
2019-05-08 | Update expected test output for fe4297ba1d | Michael Forney | |
2019-04-27 | Unnamed bit-fields don't contribute to size or alignment of unions, or size ↵ | Michael Forney | |
of structs | |||
2019-04-27 | Sign-extend result of bit-field assignments | Michael Forney | |
Fixes #51. Thanks to Andrew Chambers for the bug report and test case. | |||
2019-04-27 | Fix some function declarator corner cases | Michael Forney | |
2019-04-27 | init: Allow string literal initializers to be in braces | Michael Forney | |
2019-04-24 | Implement _Generic selection | Michael Forney | |
2019-04-24 | qbe: Make sure generated code doesn't depend on argument evaluation order | Michael Forney | |
It would be correct in any order, but this is a bit simpler and guarantees the same output. | |||
2019-04-23 | Fix integer promotion on bit-fields | Michael Forney | |
Fixes #47. | |||
2019-04-22 | Simplify test/typeof | Michael Forney | |
2019-04-20 | eval: Handle casts in constant expressions | Michael Forney | |
Fixes #23. | |||
2019-04-18 | Fix potential overflow of bit-field initializers into following member | Michael Forney | |
Fixes #46. Thanks to Andrew Chambers for the bug report. | |||
2019-04-17 | Fix bit-field offsets in unions | Michael Forney | |
2019-04-17 | Allow designators in __builtin_offsetof | Michael Forney | |
2019-04-16 | Use undecayed type in __typeof__ | Michael Forney | |
2019-04-16 | Implement __builtin_types_compatible_p | Michael Forney | |
This is used by util-linux. | |||
2019-04-16 | tests -> test | Michael Forney | |