aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-03-12Revert "Zero uninitialized decls/returns."Michael Forney
This reverts commit 7722c7593a1a249e1a6d98d84afdff3cb086ca81. This causes problems with large stack allocations, such as https://github.com/madler/pigz/blob/fe822cb435622c43f491013da77b127e9fe851a9/pigz.c#L3403-L3405
2019-03-03Fix emittype for qualified nested structMichael Forney
We don't have to strip qualifiers off of array types since array types can only be qualified when used in a parameter declaration before adjustment.
2019-03-01init: Check for incomplete typesMichael Forney
Fixes #28.
2019-03-01Array element cannot have incomplete or function typeMichael Forney
2019-03-01Add -M and -MM to support our own makefile.Andrew Chambers
2019-02-28Set __GNUC__=3 and __GNUC_MINOR__=3 by defaultMichael Forney
2019-02-27Implement __typeof__.Andrew Chambers
2019-02-26Use funcinst macro in a few more placesMichael Forney
2019-02-26Simplify common funcinst case.Andrew Chambers
2019-02-26Zero uninitialized decls/returns.Andrew Chambers
Resolves #12 and #15.
2019-02-26Don't add zero offsets when zeroing.Andrew Chambers
2019-02-25Use a stack of scannersMichael Forney
This is necessary to implement the #include directive.
2019-02-24Remove obsolete function declarationMichael Forney
2019-02-24Check for negative array lengths/indicesMichael Forney
2019-02-24Add __alignof__ definition by defaultMichael Forney
2019-02-24driver: Fix -E with no output specifiedMichael Forney
2019-02-24Define __GNUC__=4 and __STRICT_ANSI__ by defaultMichael Forney
We implement some GNU extensions that are used to implement certain libc features, like INF, NAN, alloca, and offsetof.
2019-02-24Make __PRETTY_FUNCTION__ a synonym for __func__Michael Forney
2019-02-24Remove unnecessary spaces in keyword listMichael Forney
This used to contain __builtin_va_list, so was longer than necessary.
2019-02-24Remove unused fieldMichael Forney
2019-02-24scan: Handle commentsMichael Forney
2019-02-24scan: Handle escaped newlinesMichael Forney
2019-02-23Check for any write errorsMichael Forney
2019-02-22Run cc-qbe directly in runtestsMichael Forney
This way, it completes much faster since we don't have to run the system preprocessor.
2019-02-22Fix use of uninitialized character in string arrayMichael Forney
String data in expressions is just an array and is not NULL-terminated.
2019-02-22Make sure to zero the rest of an array initialized with a stringMichael Forney
2019-02-22Fix size of incomplete array types initialized with stringsMichael Forney
updatearray takes an index, so was allocating an extra byte.
2019-02-22When & is applied to an array, it is no longer decayedMichael Forney
2019-02-22Don't need CFLAGS with linkingMichael Forney
2019-02-22Simplify build status URLMichael Forney
2019-02-22Implement __builtin_nanf for empty string literalsMichael Forney
2019-02-22Separate out built-in handling from postfixexprMichael Forney
2019-02-22Implement __builtin_inffMichael Forney
2019-02-22Keep track of built-in kind in declarationMichael Forney
Also, populate filescope with builtins outside of main.
2019-02-22Only need to emit tentative definitions when compilingMichael Forney
2019-02-22Simplify handling of arguments to cc-qbe a bitMichael Forney
2019-02-22Implement __builtin_allocaMichael Forney
2019-02-22Fix adding integer to pointerMichael Forney
2019-02-21driver: Create output files in current directoryMichael Forney
2019-02-21Emit complete union type definitions instead of just using the first memberMichael Forney
2019-02-21Always expect at least one struct decl.Andrew Chambers
2019-02-21driver: Fix -o -Michael Forney
We need to distinguish between no output specified, and output specified to be standard out.
2019-02-21Fix decay on qualified array typesMichael Forney
2019-02-20Use name parameter instead of tok.litMichael Forney
This was only called with tok.lit, so it didn't matter in practice.
2019-02-20Remove some unused variablesMichael Forney
2019-02-20driver: Various improvementsMichael Forney
Use an input struct to keep track of information about an input. When creating an output name from an input with no extension, make sure to add a `.`. When linking, write intermediate objects to temporary files and remove them afterwards. Allow specifying language of input using `-x` flag. Allow reading from standard input by passing `-`.
2019-02-20Fix emittype for unionsMichael Forney
Thanks to Andrew Chambers for the bug report.
2019-02-20eval: Handle nested offset address constantsMichael Forney
2019-02-20Fix definitions for nested structsMichael Forney
The QBE documentation suggested that the subtypes in an aggregate must be simple types, but they can actually be any type (this is necessary for getting the alignment and padding right between fields adjacent to the nested struct).
2019-02-19Implement __builtin_va_copyMichael Forney