Age | Commit message (Collapse) | Author |
|
Thanks to Andrew Chambers for the bug report.
|
|
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).
|
|
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).
|
|
|
|
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.
|
|
Thanks to Andrew Chambers for reporting the issue.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|