Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-04-18 | Fix potential overflow of bit-field initializers into following member | Michael Forney | |
Fixes #46. Thanks to Andrew Chambers for the bug report. | |||
2019-04-17 | Merge map.h and tree.h into util.h | Michael Forney | |
2019-04-17 | Just use a single mapkey function | Michael Forney | |
2019-04-17 | htab -> map | Michael Forney | |
2019-04-17 | Implement bit-field initializers | Michael Forney | |
2019-04-16 | Error instead of segfault when working with `long double` | Michael Forney | |
2019-04-16 | Fix offset of initializer following fixed-length string | Michael Forney | |
2019-04-15 | Handle static sub-initializers | Michael Forney | |
2019-04-14 | Initial support for loading/storing bit-fields | Michael Forney | |
2019-04-06 | Track type qualifiers separately | Michael Forney | |
Using a special qualified type kind has a number of problems: - Important fields such as size, align, and incomplete may not be set, since the qualified type was created before a struct was completed. - When we don't care about type qualifiers (which is the usual case), we have to explicitly unqualify the type which is annoying and error-prone. Instead, in derived types, keep track of the qualifiers of the base type alongside the base type (similar to what is done for members, parameters, declarations, and expressions in the past few commits). | |||
2019-04-06 | Separate unqualified type and qualifiers in struct decl | Michael Forney | |
2019-04-06 | Separate unqualified type and qualifiers in struct member | Michael Forney | |
2019-04-06 | Separate unqualified type and qualifiers in struct param | Michael Forney | |
2019-04-06 | Separate unqualified type and qualifiers in struct expr | Michael Forney | |
2019-04-04 | Merge headers into cc.h | Michael Forney | |
2019-04-03 | Revert "Make member access its own expression type" | Michael Forney | |
This reverts commit b3865e402e426387d4cdccdcd249a02d5ba1bc05. This breaks member address expressions in static initializers. We can support bit-fields by instead adding a "bit-field" expression that affects loads and stores to the underlying object. | |||
2019-04-03 | Make member access its own expression type | Michael Forney | |
2019-03-15 | Start to handle overlapping initializers | Michael Forney | |
2019-03-14 | Abbreviate tag names | Michael Forney | |
2019-03-13 | Use instruction op for varargs call instead of "ellipsis" value | Michael Forney | |
2019-03-13 | Update __PRETTY_FUNCTION__ comment | Michael Forney | |
2019-03-13 | Make `struct function` opaque | Michael Forney | |
2019-03-12 | Revert "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-03 | Fix emittype for qualified nested struct | Michael 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-02-26 | Use funcinst macro in a few more places | Michael Forney | |
2019-02-26 | Simplify common funcinst case. | Andrew Chambers | |
2019-02-26 | Zero uninitialized decls/returns. | Andrew Chambers | |
Resolves #12 and #15. | |||
2019-02-26 | Don't add zero offsets when zeroing. | Andrew Chambers | |
2019-02-24 | Make __PRETTY_FUNCTION__ a synonym for __func__ | Michael Forney | |
2019-02-22 | Fix use of uninitialized character in string array | Michael Forney | |
String data in expressions is just an array and is not NULL-terminated. | |||
2019-02-22 | Make sure to zero the rest of an array initialized with a string | Michael Forney | |
2019-02-22 | Implement __builtin_alloca | Michael Forney | |
2019-02-21 | Emit complete union type definitions instead of just using the first member | Michael Forney | |
2019-02-20 | Fix emittype for unions | Michael Forney | |
Thanks to Andrew Chambers for the bug report. | |||
2019-02-20 | Fix definitions for nested structs | Michael 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-17 | Allow computing address of non-lvalue structs/unions | Michael Forney | |
We currently compile '.' member access as taking the address of the struct, adding the offset, and then dereferencing as the member type. However, the '.' operator is allowed on non-lvalues, even though the '&' operator is not. So, we need to handle arbitrary struct/union expressions in objectaddr by just compiling them normally, then converting them to regular pointers (since struct/union values are just pointers with additional type information). | |||
2019-02-17 | Fix returning struct/union types | Michael Forney | |
2019-02-17 | Improve old-style function declaration support | Michael Forney | |
Implement typecompatible for types created with non-prototype function declarations. Require a function definition with parameter declaration list after a declaration with a non-empty identifier list. Detect function definitions with parameter declaration lists containing types incompatible with the promoted types, and report an error for now. | |||
2019-02-16 | Extend char/short types before comparing | Michael Forney | |
Thanks to Andrew Chambers for reporting the issue. | |||
2019-02-16 | Fix casts from integer types less than 32 bits wide | Michael Forney | |
2019-02-15 | Make sure that aggregates and pointers to aggregates are passed/return correctly | Michael Forney | |
2019-02-15 | Handle main with no return | Michael Forney | |
2019-02-15 | Don't embed anonymous struct members into parent | Michael Forney | |
While this works nicely for structs, when unions are involved it makes it impossible to find the next member to initialize without keeping track of extra data per member. | |||
2019-02-15 | Use bool typedef in .c files | Michael Forney | |
2019-02-15 | Rename emit.h -> backend.h | Michael Forney | |
2019-02-15 | Remove a dead conditional in ftou | Michael Forney | |
2019-02-15 | Fix bad assertion. | Andrew Chambers | |
2019-02-13 | When storing initial value of parameters, use unqualified type | Michael Forney | |
2019-02-13 | Make basic store independent of ABI | Michael Forney | |
2019-02-13 | Implement __builtin_va_arg | Michael Forney | |