aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-04-11decl: Allow _Static_assert in struct declarationMichael Forney
2021-04-11decl: Allow _Alignas(0)Michael Forney
C11 6.7.5p6 says "An alignment specification of zero has no effect".
2021-04-08qbe: Remove unnecessary value copy for struct/union typesMichael 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-08Remove unused mkswitch declarationMichael Forney
2021-04-08CI: Fix debian-aarch64 dependency packagesMichael 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-08qbe: Remove unnecessary extension for relational operandsMichael 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-07qbe: Remove __PRETTY_FUNCTION__ declarationMichael Forney
We no longer define __GNUC__ so we don't have to work around glibc's assert definition anymore.
2021-04-06qbe: Shorten a few overly long linesMichael Forney
2021-03-31qbe: Slight simplificationMichael Forney
2021-03-31qbe: Use second argument of call/arg to store type nameMichael Forney
2021-03-31qbe: Use separate type for block/labelMichael Forney
Labels are no longer used as instruction arguments.
2021-03-31qbe: Switch to fixed-size instruction structMichael 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-30Add struct passing call testMichael 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-27qbe: Change value kind naming schemeMichael Forney
2020-12-07CI: Drop obsolete OpenBSD patchMichael Forney
2020-12-07Support -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-21Update qbe submoduleMichael Forney
2020-09-12Update qbe submoduleMichael Forney
2020-09-05Add a patch to fix OpenBSD bootstrap on 6.7Michael Forney
This issue is already fixed in -current.
2020-09-05Add -nopie to linker flags on OpenBSDMichael Forney
The OpenBSD linker defaults to PIE, but QBE does not yet support generating position-independent code.
2020-06-29.builds/alpine: remove annotationsDrew DeVault
This feature is being removed from git.sr.ht
2020-06-05Help gcc see that variables are not used uninitializedMichael Forney
2020-06-03Revert "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-03Disable bootstrap in OpenBSD continuous buildMichael Forney
2020-06-03decl: Allow out-of-range enum constants when they don't change typeMichael 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-02decl: Improve error message for out-of-range enum constantsMichael Forney
2020-05-24qbe: Omit unnecessary add to help QBE's memopt passMichael Forney
2020-04-21driver: Print unknown option before usage messageMichael Forney
2020-04-19Add install target to MakefileMichael Forney
2020-04-19Update qbe submoduleMichael Forney
2020-04-14doc/software: Remove unnotable sectionsMichael Forney
2020-04-14Refer to github issue for oasis porting effortMichael Forney
2020-04-05expr: Just ignore decayed operand in unary `&` operatorMichael Forney
Reusing the decayed expression is more complicated, and only saved one malloc.
2020-04-04type: Remove unnecessary check for TYPEVOIDMichael Forney
There is only one type with this kind, so the equality check above suffices.
2020-04-04expr: Add type checking for equality and relational expressionsMichael 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-23driver: Handle -isystemMichael Forney
2020-03-22pp: Don't add leading space for first stringized tokenMichael Forney
2020-03-22pp: Implement variadic macrosMichael Forney
2020-03-22pp: StyleMichael Forney
2020-03-18expr: Slight simplification in function call parsingMichael Forney
2020-03-18pp: Remove some unnecessary conditionalsMichael Forney
It is fine to just pass NULL, or the result of malloc(0) to free().
2020-03-18pp: Fix possible use-after-freeMichael 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-18pp: Add test for function-like macro with no argument tokensMichael Forney
2020-03-18pp: Don't expand argument tokens if we don't need themMichael Forney
2020-03-18pp: Handle #define without trailing newlineMichael Forney
2020-03-18token: Handle TEOF in tokendescMichael Forney
2020-03-18pp: Minor style changesMichael Forney
2020-03-18pp: Finish '#' operatorMichael Forney
2020-03-17token: Add TOTHER for other non-whitespace tokensMichael 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.