Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-04-11 | decl: Allow _Static_assert in struct declaration | Michael Forney | |
2021-04-11 | decl: Allow _Alignas(0) | Michael Forney | |
C11 6.7.5p6 says "An alignment specification of zero has no effect". | |||
2021-04-08 | qbe: Remove unnecessary value copy for struct/union types | Michael Forney | |
Previously, this was needed so that an aggregate type value was updated to be an 'l' type value. However, since 5ff1d2fa the aggregate type name is stored in a separate parameter in IARG/ICALL instructions, so we can just re-use the same pointer value. | |||
2021-04-08 | Remove unused mkswitch declaration | Michael Forney | |
2021-04-08 | CI: Fix debian-aarch64 dependency packages | Michael Forney | |
It appears that these packages recommended by gcc-aarch64-linux-gnu and qemu-user are no longer installed automatically, so list them explicitly. | |||
2021-04-08 | qbe: Remove unnecessary extension for relational operands | Michael Forney | |
The operands are already promoted, so never need to be extended. These extend()s were added in 7d746860 in an attempt to fix a bug related to the comparison of values with type smaller than int. However, the real bug was that the operands should have been promoted to int by usual arithmetic conversions, which was fixed later in a8131372. | |||
2021-04-07 | qbe: Remove __PRETTY_FUNCTION__ declaration | Michael Forney | |
We no longer define __GNUC__ so we don't have to work around glibc's assert definition anymore. | |||
2021-04-06 | qbe: Shorten a few overly long lines | Michael Forney | |
2021-03-31 | qbe: Slight simplification | Michael Forney | |
2021-03-31 | qbe: Use second argument of call/arg to store type name | Michael Forney | |
2021-03-31 | qbe: Use separate type for block/label | Michael Forney | |
Labels are no longer used as instruction arguments. | |||
2021-03-31 | qbe: Switch to fixed-size instruction struct | Michael Forney | |
Move jump and phi instructions to struct block, and function arguments to their own instruction. This will facilitate allocating instructions as an array. | |||
2021-03-30 | Add struct passing call test | Michael Forney | |
The struct-passing test checks for function definitions with struct arguments, but we were missing a test for function calls with struct arguments. | |||
2021-03-27 | qbe: Change value kind naming scheme | Michael Forney | |
2020-12-07 | CI: Drop obsolete OpenBSD patch | Michael Forney | |
2020-12-07 | Support -pthread compiler flag. | Érico Rolim | |
POSIX requires -lpthread, but most Linux manual pages recommend using -pthread, and a lot of projects use it. | |||
2020-10-21 | Update qbe submodule | Michael Forney | |
2020-09-12 | Update qbe submodule | Michael Forney | |
2020-09-05 | Add a patch to fix OpenBSD bootstrap on 6.7 | Michael Forney | |
This issue is already fixed in -current. | |||
2020-09-05 | Add -nopie to linker flags on OpenBSD | Michael Forney | |
The OpenBSD linker defaults to PIE, but QBE does not yet support generating position-independent code. | |||
2020-06-29 | .builds/alpine: remove annotations | Drew DeVault | |
This feature is being removed from git.sr.ht | |||
2020-06-05 | Help gcc see that variables are not used uninitialized | Michael Forney | |
2020-06-03 | Revert "decl: Allow out-of-range enum constants when they don't change type" | Michael Forney | |
This reverts commit 6229709b8ae21d7722fef48ad8a9f2f10b900030. I still don't understand how out-of-range enum constants are supposed to work. | |||
2020-06-03 | Disable bootstrap in OpenBSD continuous build | Michael Forney | |
2020-06-03 | decl: Allow out-of-range enum constants when they don't change type | Michael Forney | |
gcc and clang allow enum constants out of range of int, but this means that the type of enumerator may differ inside and outside the enum specifier. Instead, only allow out-of-range enum constants when their types are compatible with the final enum type. | |||
2020-06-02 | decl: Improve error message for out-of-range enum constants | Michael Forney | |
2020-05-24 | qbe: Omit unnecessary add to help QBE's memopt pass | Michael Forney | |
2020-04-21 | driver: Print unknown option before usage message | Michael Forney | |
2020-04-19 | Add install target to Makefile | Michael Forney | |
2020-04-19 | Update qbe submodule | Michael Forney | |
2020-04-14 | doc/software: Remove unnotable sections | Michael Forney | |
2020-04-14 | Refer to github issue for oasis porting effort | Michael Forney | |
2020-04-05 | expr: Just ignore decayed operand in unary `&` operator | Michael Forney | |
Reusing the decayed expression is more complicated, and only saved one malloc. | |||
2020-04-04 | type: Remove unnecessary check for TYPEVOID | Michael Forney | |
There is only one type with this kind, so the equality check above suffices. | |||
2020-04-04 | expr: Add type checking for equality and relational expressions | 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-23 | driver: Handle -isystem | Michael Forney | |
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-22 | pp: Style | Michael Forney | |
2020-03-18 | expr: Slight simplification in function call parsing | Michael Forney | |
2020-03-18 | pp: Remove some unnecessary conditionals | Michael Forney | |
It is fine to just pass NULL, or the result of malloc(0) to free(). | |||
2020-03-18 | pp: Fix possible use-after-free | Michael Forney | |
Restructure the loop slightly to avoid accessing the macro identifier token after we have checked for the open parenthesis; it might belong to a previous macro argument that has since been freed. | |||
2020-03-18 | pp: Add test for function-like macro with no argument tokens | Michael Forney | |
2020-03-18 | pp: Don't expand argument tokens if we don't need them | Michael Forney | |
2020-03-18 | pp: Handle #define without trailing newline | Michael Forney | |
2020-03-18 | token: Handle TEOF in tokendesc | Michael Forney | |
2020-03-18 | pp: Minor style changes | Michael Forney | |
2020-03-18 | pp: Finish '#' operator | Michael Forney | |
2020-03-17 | token: Add TOTHER for other non-whitespace tokens | Michael Forney | |
This is for any non-whitespace character that doesn't match any other token categories, and could be valid if stringified, or the preprocessor is used by itself. |