aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-04-17Merge map.h and tree.h into util.hMichael Forney
2019-04-17Just use a single mapkey functionMichael Forney
2019-04-17htab -> mapMichael Forney
2019-04-17More README updatesMichael Forney
2019-04-17Fix bit-field offsets in unionsMichael Forney
2019-04-17Allow designators in __builtin_offsetofMichael Forney
2019-04-17Improve token descriptions in errorsMichael Forney
2019-04-17Use smaller headingsMichael Forney
2019-04-17Update READMEMichael Forney
2019-04-17Implement bit-field initializersMichael Forney
2019-04-16Error instead of segfault when working with `long double`Michael Forney
2019-04-16Add a few more alternate keywordsMichael Forney
2019-04-16Use undecayed type in __typeof__Michael Forney
2019-04-16Implement __builtin_types_compatible_pMichael Forney
This is used by util-linux.
2019-04-16Alpine's fortify-headers still needs __extension__Michael Forney
2019-04-16tests -> testMichael Forney
2019-04-16Fix offset of initializer following fixed-length stringMichael Forney
2019-04-16Define __inline alternate keywordMichael Forney
2019-04-16Use a single section for alternate keyword definesMichael Forney
https://gcc.gnu.org/onlinedocs/gcc/Alternate-Keywords.html
2019-04-16Set __GNUC__=1Michael Forney
Although we support some GNU extensions beyond this, anything larger will cause glibc headers to use inline assembly to alias functions. We currently work around this by defining __asm__ to nothing, but that doesn't seem like the right thing to do. This also causes glibc to define an __extension__ and __restrict itself.
2019-04-16Use upstream QBEMichael Forney
2019-04-15init: Remove some unused includesMichael Forney
2019-04-15Silence gcc warningMichael Forney
2019-04-15init: Improve parseinit performance for sequential initializersMichael Forney
Now, we only traverse the current initializer list to find the place to insert a designated initializer. Regular initializers always go after the previous one. Fixes #37.
2019-04-15expr: Handle compound assignment of bit-fieldsMichael Forney
2019-04-15expr: Simplify assignexpr slightlyMichael Forney
2019-04-15StyleMichael Forney
2019-04-15expr: Check operand to '&' operatorMichael Forney
2019-04-15decl: Fix uninitialized access with unnamed bit-fieldsMichael Forney
2019-04-15Handle static sub-initializersMichael Forney
2019-04-14init: Error on bit-field initializers for nowMichael Forney
2019-04-14Initial support for loading/storing bit-fieldsMichael Forney
2019-04-14Define macros indicating missing optional featuresMichael Forney
2019-04-14decl: Make signedness of enum types match gccMichael Forney
2019-04-13Revert "Fold constexpr function into intconstexpr"Michael Forney
This reverts commit a080e36dac54b82beef63580f36cb0da9ad31788.
2019-04-13decl: Allow `register` in old-style parameter declarationsMichael Forney
2019-04-10expr: Pointer arithmetic requires complete *object* typesMichael Forney
2019-04-10type: unions are object typesMichael Forney
2019-04-07deps.mk: Include $(objdir) in target nameMichael Forney
2019-04-07Add FreeBSD build manifestMichael Forney
2019-04-07config.def.h: Remove extra indentMichael Forney
2019-04-07Makefile: Don't use $< outside of inference rulesMichael Forney
In POSIX make, the meaning $< is unspecified outside of inference rules.
2019-04-07Change $(objdir) instead of $(srcdir) for stage2 and stage3 buildsMichael Forney
This is a bit simpler, and avoids issues with FreeBSD make when including deps.mk (since the source files listed there are not relative to $(srcdir)). To do this, we need to make use of make(1) pattern substitutions, which are not yet standard (though accepted for issue 8[0]). Also, since the path of the object files seems to end up the resulting executables, breaking byte-wise comparison, make sure to strip the resulting executables. [0] http://austingroupbugs.net/view.php?id=519
2019-04-07expr: Handle parenthesized paremeter name in __builtin_va_startMichael Forney
FreeBSD defines va_start(ap, last)=__builtin_va_start((ap), (last))
2019-04-07driver: Use argv[0] to determine cc-qbe path if /proc/self/exe is not availableMichael Forney
2019-04-07driver: Make sure we have room for the '\0' byteMichael Forney
2019-04-06driver: Include signal.h for kill(2)Michael Forney
2019-04-06Use common code for checking for compatibility of base type for derived typesMichael Forney
2019-04-06Simplify a couple loopsMichael Forney
2019-04-06arg: Use (void *)0 instead of NULL in error case of conditional expressionMichael Forney
Even though NULL is a null pointer constant, the comma expression with NULL at the end is not. So, we must ensure that either the type of the comma expression is `char *` or `void *`, and we don't know this for NULL.