aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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.
2020-03-17pp: Use tokencheck in a few more placesMichael 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-03-16scan: Keep track of whether tokens had preceeding whitespaceMichael Forney
2020-03-16token: Add tokencheck utility functionMichael Forney
This function is like expect(), but operates on a specific token and does not read the following token.
2020-03-16token: Rename some functionsMichael Forney
2020-03-16runtests: Add support for preprocessor testsMichael Forney