internal compiler errors in several places.
An old cc65 extension (variables of type void) was broken and did no longer
work. Fixed that.
git-svn-id: svn://svn.cc65.org/cc65/trunk@1184 b7a2c559-68d2-44c3-8de9-860c34a00d81
Remove the -Wno-unused-parameter in favour of __atribute__((unused)).
git-svn-id: svn://svn.cc65.org/cc65/trunk@986 b7a2c559-68d2-44c3-8de9-860c34a00d81
unused stores into these registers.
Because of this, the old code using regsave does no longer work. Started
to rewrite it.
git-svn-id: svn://svn.cc65.org/cc65/trunk@966 b7a2c559-68d2-44c3-8de9-860c34a00d81
preprocessor mode to work around limitations in the existing ones (constant
expressions are not detected).
git-svn-id: svn://svn.cc65.org/cc65/trunk@864 b7a2c559-68d2-44c3-8de9-860c34a00d81
supplied data structures. Re-added the -T option which is much more exact
now because of the better line info stuff.
Cleanups in the scanner (remove old #defines).
git-svn-id: svn://svn.cc65.org/cc65/trunk@740 b7a2c559-68d2-44c3-8de9-860c34a00d81
* __fixargs__ is now an actual function symbol and no longer handled in the
scanner.
* Additional symbol __argsize__ that is a constant in normal functions and
a const local variable for variadic functions. Using this symbol, the
va_arg macro gets a lot simpler and smaller.
* Added special code to handle the fixed parameters of a variadic function.
The code has some overhead, but the va_fix macro is no longer needed (and
the compiler generated code is better than va_fix anyway).
git-svn-id: svn://svn.cc65.org/cc65/trunk@652 b7a2c559-68d2-44c3-8de9-860c34a00d81
more identical parameter names. The input is of course wrong, but the
compiler shouldn't crash.
git-svn-id: svn://svn.cc65.org/cc65/trunk@644 b7a2c559-68d2-44c3-8de9-860c34a00d81
pointer-to-function type) was not possible. It is redundant but allowed.
A cast with a function on the right side resulted in an internal compiler
error, since the implicit cast from function to pointer-to-function was
missing in this case.
An assignment of a function to a void pointer was not possible because the
same implicit conversion was missing.
git-svn-id: svn://svn.cc65.org/cc65/trunk@482 b7a2c559-68d2-44c3-8de9-860c34a00d81
were harder to manage, made the code harder to read, and lead no less
verbose messages, since it was effort to add a new message. The new approach
has the drawback that it's more difficult to translate, but this won't
happen anyway.
git-svn-id: svn://svn.cc65.org/cc65/trunk@428 b7a2c559-68d2-44c3-8de9-860c34a00d81
Check for and honour const in several places: Assignment to const is flagged
with an error. Const data is placed in the rodata segment.
git-svn-id: svn://svn.cc65.org/cc65/trunk@252 b7a2c559-68d2-44c3-8de9-860c34a00d81
Rewrote the include file management, keeping a list of all include files
and cleaning up the code while going.
git-svn-id: svn://svn.cc65.org/cc65/trunk@82 b7a2c559-68d2-44c3-8de9-860c34a00d81
Several renames for better readibility.
Removed separate struct and enum symbol tables in favour of one tag table.
Check for some more error conditions or dubious constructs.
git-svn-id: svn://svn.cc65.org/cc65/trunk@62 b7a2c559-68d2-44c3-8de9-860c34a00d81