aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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
2020-03-16decl: Simplify struct tag parsing slightlyMichael Forney
2020-03-16Allow multiple inputs to main compiler processMichael Forney
This way, we can implement -include in the driver by just passing an additional input to the compiler.
2020-02-24Enable -Wpedantic by defaultMichael Forney
2020-01-31eval: Allow casting address constants to integer types in constant expressionsMichael Forney
2020-01-31qbe: Make non-constant initializer expression a proper errorMichael Forney
2020-01-30Add test for sizeof string literalMichael Forney
This was regressed in d889bc80be and fixed in 090e2932ce.
2020-01-30driver: Allow preprocessing C headersMichael Forney
2020-01-30decl: Better check for inline definitionsMichael Forney
2020-01-30runtests: Count number of failing testsMichael Forney
2020-01-30Fix links to issue trackerMichael Forney
2020-01-30decl: Use list link to determine presence in tentative definition listMichael Forney
2020-01-30util: Remove unused listinsertlistMichael Forney
2020-01-30expr: String literals have complete typeMichael Forney
2019-12-27expr: Disallow function/incomplete types and bit-fields in sizeof/_AlignofMichael Forney
2019-12-19Fix issue links in READMEMichael Forney
2019-12-14Update issue tracker linkMichael Forney
2019-11-25Make debian-aarch64 build more robust to gcc version changesMichael Forney
2019-11-20driver: Pass -std=* through to the preprocessorMichael Forney
This will prevent the preprocessor from defining several unreserved identifiers when built with an ISO C language standard, which may conflict with identifiers used by the program being built.
2019-11-19doc: Update binutils patch listMichael Forney
Two patches removed, two patches added.
2019-11-19decl: Parse array size as an assignment-expressionMichael Forney
Even though we don't support VLAs yet, we should still be parsing the VLA syntax, then failing after if it was not a constant expression.
2019-11-18Fix email address in build manifestsMichael Forney
Go's email libraries (used by builds.sr.ht) need the address to be in this format.
2019-11-17Fix build manifests for changed environment behaviorMichael Forney
2019-11-17Update oasis software statusMichael Forney
2019-11-17driver: phase -> stageMichael Forney
2019-11-17driver: Preprocess assembly files with .S extensionMichael Forney
2019-08-17driver: Use LEN(phases) instead of NPHASESMichael Forney