aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-03-12Implement __builtin_constant_pMichael Forney
2019-03-12Sort built-insMichael Forney
2019-03-12scan: Add support for prefixed string literals and character constantsMichael Forney
2019-03-12scan: Accept leading `.` in pp-numberMichael Forney
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 `-`.