1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-01 13:41:34 +00:00
Commit Graph

3881 Commits

Author SHA1 Message Date
bbbradsmith
86e3a640d5 Support for three line ending types: \r, \r\n, \n.
#1894
2023-05-03 05:03:11 -04:00
bbbradsmith
56c715af40 Error for struct/union with a duplicate member #2015 2023-05-03 01:14:27 -04:00
bbbradsmith
65f773f5ee Explicit z: should suppress "Suspicious address expression" warning #194 2023-05-03 01:01:21 -04:00
bbbradsmith
409235aee6 Optional warning for implicit constant conversion overflow 2023-05-02 22:27:28 -04:00
bbbradsmith
bf5b37a3b2 Error check for internal overflow of numerical constant
See bug #2026
2023-05-02 21:27:02 -04:00
bbbradsmith
e7046a02ff Disallow pass/return of 3-byte struct (#2022), document capability added in #1102. 2023-05-02 19:00:34 -04:00
bbbradsmith
1c26b1cf1b RHS primary integer promotion must happen after loading the primary, not before. See: #2060 2023-05-02 14:42:00 -04:00
Bob Andrews
805e98a7aa
Merge pull request #2027 from bbbradsmith/ca65_jmp_abs_wrap_cpu_filter
ca65 jmp (abs) wrap warning only applies to 6502, later CPUs do not have this bug
2023-05-02 12:52:03 +02:00
Bob Andrews
08223360d5
Update instr.c 2023-05-02 12:43:50 +02:00
Janne Johansson
1f9594560e
Update lynxsprite.c
Remove compiler warning about (signed) char wrapping around to -1 when set to 255.
2023-04-19 09:15:03 +02:00
Ola Söder
2a7533268c Don't use hardcoded paths on Amiga
Hardcoded paths don't make sense on AmigaOS, AROS and MorphOS.
2023-04-07 23:44:30 +02:00
bbbradsmith
8b818aac67 remove trailing space on segment "bytes" warning plural 2023-03-07 18:42:20 -05:00
bbbradsmith
016b03e356 ca65 jmp (abs) wrap warning only applies to 6502, later CPUs do not have this bug 2023-03-07 17:00:38 -05:00
Bob Andrews
b9cf6266e7
Merge pull request #2010 from bbbradsmith/ca65_brk_optional_signature
optional BRK signature on all 6502 CPUs, not just 65816
2023-03-04 13:21:28 +01:00
Bob Andrews
c0559dd931
Merge pull request #2009 from bbbradsmith/ca65_feature_disable
ca65: allow .feature to both enable and disable
2023-03-04 13:08:18 +01:00
Bob Andrews
34189b85ab
Merge pull request #2013 from Movax12/fix-endmacro-not-at-start-of-line
Fix endmacro not at start of line
2023-03-03 12:29:30 +01:00
mvax
c092f57b73 Consistent case for .endmacro in comments, remove trailing spaces 2023-03-02 17:31:55 -05:00
mvax
90d5f41b37 Consistent case for .endmacro in comments 2023-03-02 17:26:05 -05:00
Bob Andrews
6fe649ecab
Merge pull request #1994 from Compyx/make-avail-sanity-check
make avail: check for presence of binaries before creating symbolic links
2023-03-02 18:56:04 +01:00
mvax
0b71d1cfff Fix .endmacro not at the start of the line. Fix last commit 2023-03-01 21:55:14 -05:00
mvax
1c60bc5009 Fix .endmacro not at the start of the line. Fix style, add doc., add tests 2023-03-01 21:47:50 -05:00
mvax
993054c9d3 Fix .endmacro not at the start of the line. .ENDMACRO error with line number of macro definition start 2023-03-01 11:58:42 -05:00
mvax
7d894fbe04 Fix .endmacro not at the start of the line. Fix comment 2023-02-25 13:52:13 -05:00
mvax
4b29615f2b Fix .endmacro not at the start of the line. Allow empty macro 2023-02-25 13:49:19 -05:00
mvax
0a05f78d47 Fix .endmacro not at the start of the line. 2023-02-25 13:38:02 -05:00
mvax
429e90dffd Fix .endmacro in a .define in a macro body 2023-02-25 12:42:26 -05:00
mvax
e87325033d Fix .endmacro in a .define in a macro body 2023-02-25 12:39:36 -05:00
bbbradsmith
3d41a5b516 allow immedite style syntax variation for BRK signature byte 2023-02-25 08:23:47 -05:00
bbbradsmith
cd8fa39066 optional BRK signature on all 6502 CPUs, not just 65816 (also COP) 2023-02-24 22:40:29 -05:00
bbbradsmith
da150aeeac allow .feature to both enable and disable 2023-02-24 18:00:58 -05:00
Bob Andrews
a299ef4210
Merge pull request #1995 from bbbradsmith/overwrite_segment_fix
ld65 fix overwrite segments adding wrong padding or causing internal errors
2023-02-24 21:27:33 +01:00
Bob Andrews
12fc59351e
Merge branch 'master' into ca65_long_jsr_jmp_rts 2023-02-24 19:25:32 +01:00
Bob Andrews
e105f6049d
Merge pull request #2003 from bbbradsmith/large_align_false_positive_fix
supress spurious "large alignment" warnings
2023-02-24 16:32:41 +01:00
Bob Andrews
d810b12c6d
Merge pull request #1998 from bbbradsmith/ca65_local_scope_error_info
ca65 improve error for unclosed scopes
2023-02-24 16:24:05 +01:00
Bob Andrews
221e6b53ef
Merge pull request #1992 from bbbradsmith/optstackops_toscmpbool_fix
OptStackOps label migration fix
2023-02-24 13:43:07 +01:00
bbbradsmith
ba038e921f jmp (abs) page wrapping should be an error, not a warning, also only applies to 6502 CPU 2023-02-21 17:06:21 -05:00
bbbradsmith
13f1d37403 suppress spurious "large alignment" warning when the combined alignment is not larger than any of the explictly requested ones 2023-02-21 06:48:46 -05:00
bbbradsmith
ccf3994e3b ca65 jsr/jmp/rts will not promote to jsl/jml/rtl by default, but can still be enabled with new feature long_jsr_jmp_rts 2023-02-21 04:00:34 -05:00
bbbradsmith
45d0d60349 --warnings-as-errors for ca65 and ld65 2023-02-20 22:24:26 -05:00
bbbradsmith
f1134cc5f1 ca65 improve error for unclosed scopes
See: #1779
2023-02-20 20:49:04 -05:00
compyx
68ce335f59 Replace shell code with GNU Make conditionals and functions
Use `ifeq` to provide two rules for the `avail` target: one that reports
an error if any of the symlink targets are missing and one that installs
the symlinks for the targets if they're all present.
2023-02-19 19:17:45 +01:00
Bob Andrews
d0f17ba602
Merge pull request #1996 from bbbradsmith/negative_memory_size_error
ld65 error if computed memory size is negative
2023-02-19 18:45:09 +01:00
bbbradsmith
5bc8ff98de error if computed memory size is negative 2023-02-19 09:01:17 -05:00
bbbradsmith
4fc19a3d4c ld65 overwrite segment should pad with fill value if the desired seek position is beyond the end of the file so far 2023-02-19 08:37:07 -05:00
bbbradsmith
2ac055383f ld65 fix overwrite segments adding wrong padding or causing internal errors 2023-02-19 08:14:04 -05:00
compyx
5c12659cf4 make avail: check for presence of binaries before creating symbolic
links

To avoid creating broken symlinks, first check if the binaries exists in
bin/ and exit when they don't, with a message to first run `make`.
2023-02-19 14:01:14 +01:00
bbbradsmith
4d30333099 sim65 path length safety for PVOpen 2023-02-19 05:31:46 -05:00
bbbradsmith
4e411e8526 Opt_a_tosicmp likely has a bug which will incorrectly migrate a label on a replaced op in one case. 2023-02-18 00:13:34 -05:00
bbbradsmith
78263cd24b Fix OptStackOps label migration case for toscmpbool, add test case 2023-02-17 23:48:32 -05:00
Spiro Trikaliotis
727b3288d6 Remove .exe from file output
Whenever a tool like ld65 wants to output its name into a log file, it
uses the name of command-line parameter 0. However, this parameter also
includes the .exe suffix if it is on Windows.

This patch removes the .exe suffix, so that the output is clean and
consistent across platforms.

This fixes #1990.
2023-02-17 17:22:55 +01:00
Bob Andrews
544a49c060
Merge pull request #1983 from mrdudz/fix1941
fix for #1941
2023-02-05 17:28:22 +01:00
mrdudz
1764b7aca9 fix for #1941, taken from 22d435b689 2023-01-28 12:29:05 +01:00
tomas
1d73c8d259
Update typeconv.c 2023-01-27 16:53:36 +00:00
tomas
ed909dba1d
fixed spelling mistake
there was a spelling mistake in one of pointer warnings
2023-01-27 10:52:20 +00:00
Matt Seabold
3360734487 Update comment to match in source file 2023-01-17 22:17:23 -05:00
Matt Seabold
9ee0c835e5 Update documentation for line_bynumber 2023-01-17 22:15:27 -05:00
Matt Seabold
8ea0dfe453 Allow line_bynumber to return more than one result 2023-01-11 20:18:51 -05:00
Bob Andrews
e944a30b6a
Merge pull request #1955 from davepl/master
Add KIM-1 support
2023-01-04 19:10:14 +01:00
Bob Andrews
072f4188ac
Merge pull request #1939 from acqn/TypeFix
[cc65] Renamed/added/removed some C type facility and fixed a few comments
2023-01-04 19:01:23 +01:00
Bob Andrews
167e940361
Merge pull request #1958 from karrika/sprite
[sp65] Sprite generation fixed for 1BPP Lynx sprites. Fix for #1957
2023-01-04 18:16:46 +01:00
Bob Andrews
9cda019669
Merge pull request #1960 from karrika/palette
[sp65] New feature to extract the palette from the bitmap. Lynx format implemented. #1959
2023-01-04 17:25:34 +01:00
Lauri Kasanen
56a414593a Teach da65 about table units 2022-12-30 17:25:47 +02:00
Bob Andrews
cce119a9e7
Merge pull request #1871 from clbr/da816
da65 support for 65816
2022-12-30 15:34:40 +01:00
karri
878a20ab59 Fix dangling space 2022-12-30 15:27:17 +02:00
karri
b6d06288e0 Fix warnings 2022-12-30 15:20:54 +02:00
karri
f85951ab24 Add to build 2022-12-30 15:06:22 +02:00
karri
4117e94ed5 Add palette extraction functions 2022-12-30 14:44:18 +02:00
karri
c2e9e5961d Add fixed Lynx sprite generation 2022-12-30 12:57:50 +02:00
karri
f6b3bdda21 Add fixed Lynx sprite generation 2022-12-30 12:36:49 +02:00
karri
b4aa853e6f Add fixed Lynx sprite generation 2022-12-30 12:21:49 +02:00
karri
aed6591b19 Add new method GetBitmapBPP as we need it for sprite math 2022-12-30 12:16:46 +02:00
karri
ebd1381030 Use same style in comments 2022-12-29 21:55:25 +02:00
karri
9cb0667260 Use same style in comments 2022-12-29 21:53:50 +02:00
karri
5ec5050af2 Remove redundant code 2022-12-29 21:48:28 +02:00
karri
05766d4bfe Add support for 4 pixels per plane 2022-12-29 19:40:00 +02:00
karri
e953c1aa08 Add support for 4 pixels per plane 2022-12-29 19:28:16 +02:00
karri
817d129be8 Add support for 4 pixels per plane 2022-12-29 19:18:00 +02:00
Rutger van Bergen
ae23e47eb5
Merge branch 'cc65:master' into master 2022-12-26 13:57:10 +01:00
mrdudz
ddab16007a run branch fixer again after replacing BRA by JMP. should fix #1936 2022-12-11 12:08:30 +01:00
mrdudz
15eb1c5f5e support the msvc specific I64 specifier in our sprintf 2022-11-28 06:26:14 +01:00
mrdudz
05c2530243 it should have been I64x, not I64u 2022-11-28 06:25:45 +01:00
mrdudz
d6c37a757d Merge branch 'master' into underscores 2022-11-19 17:11:11 +01:00
Bob Andrews
3513342445
Merge pull request #1913 from acqn/Diagnostics
[cc65] Improved diagnostics on div-by-zero/bitwise-shift in unevaluated context and overall
2022-11-18 19:55:51 +01:00
Bob Andrews
a0a9cfdcd3
Merge pull request #1918 from acqn/PPFix
[cc65] Fixed bitwise-shift in preprocessor
2022-11-18 19:09:55 +01:00
Bob Andrews
93b015660d
Merge pull request #1899 from acqn/TypeCmpFix
[cc65] Fixed compatibility checks on "pointer to pointer" vs "pointer to array" etc.
2022-11-18 19:04:35 +01:00
mrdudz
b166dc4261 hopefully thats it 2022-11-18 18:19:31 +01:00
mrdudz
bbe8c62e9d coffee 2022-11-18 18:13:15 +01:00
mrdudz
a6feeac5ed or msvc I64u ? 2022-11-18 18:10:07 +01:00
mrdudz
ca94cfcbac that perhaps? 2022-11-18 18:03:40 +01:00
mrdudz
4c6fddd300 i want a cookie each time i do this 2022-11-18 17:58:12 +01:00
mrdudz
feb839e7f0 narrisch werd i! 2022-11-18 17:55:22 +01:00
mrdudz
8a9029d393 hnnngg 2022-11-18 17:50:32 +01:00
mrdudz
c6ecee0748 Babydino sagt: nochmal! 2022-11-18 17:45:21 +01:00
mrdudz
5fb20dec91 commit message 2022-11-18 17:41:22 +01:00
mrdudz
5638e0916a spül es noch einmal, Sam 2022-11-18 17:39:35 +01:00
acqn
dadca9e033 Fixed bitwise-shift in PP. 2022-11-13 16:32:41 +08:00
acqn
3bcfa735cb clearer comments on and usage of code generator flags with type conversions in the primary register. 2022-11-13 14:57:48 +08:00
acqn
9d693d2c80 Warnings instead of errors for division-by-zero/modulo-with-zero in evaluation. 2022-11-12 22:13:56 +08:00
acqn
73897aface Additional check for out of ranges of bit-fields in bitwise-shifts. 2022-11-12 12:36:22 +08:00
acqn
75be73cc8d Added utility functions to acquire bit width of types. 2022-11-12 12:32:27 +08:00
acqn
d0c9b2de99 Added basic shift count check for <<= and >>= operations. 2022-11-12 12:34:16 +08:00
acqn
2c3ca15d90 Fixed marking unevaluated subexpressions for conditional operator. 2022-11-12 12:32:27 +08:00
acqn
3af77e7333 Improved error recovery in declarations with curly braces. 2022-11-12 12:28:29 +08:00
acqn
eb595b1f5f Improved error recovery with K&R-style function declarations. 2022-11-12 12:28:27 +08:00
acqn
894ba49cb5 Improved error messages about missing type specifiers. 2022-11-12 12:28:24 +08:00
acqn
b0ef3572ea Improved error messages about missing identifiers. 2022-11-12 12:28:22 +08:00
Bob Andrews
6924d44564
Merge pull request #1911 from acqn/TypeFix
[cc65] Organized type-related stuff better
2022-11-11 22:05:45 +01:00
Bob Andrews
ec2688b50e
Merge pull request #1910 from acqn/DeclFix
[cc65] Renamed a few functions and struct used for declaration parser
2022-11-11 21:41:04 +01:00
Bob Andrews
9c48c0ab8a
Merge pull request #1900 from acqn/Diagnostics
[cc65] Fixed endlessly repeated error messages when a declaration lacks a required identifier
2022-11-11 21:08:53 +01:00
acqn
e10b5fd79b Renamed a few functions and struct used for declaration parser. 2022-11-08 14:42:52 +08:00
Silver Dream !
2dcccae036 Updated ATTR_UNUSED() for clang 2022-11-06 11:27:08 +00:00
mrdudz
5d1ad05cb8 oops 2022-11-05 20:48:53 +01:00
mrdudz
e5777f7ccf add ATTR_UNUSED on the flags variable 2022-11-05 20:38:07 +01:00
mrdudz
1452d8164d add ATTR_UNUSED and ATTR_NORETURN 2022-11-05 20:37:41 +01:00
Bob Andrews
680aacd4a7
Merge pull request #1907 from acqn/InputLineInfo
[cc65] Renamed some misleading functions relevent with input file info
2022-11-05 18:45:17 +01:00
acqn
8a7f566387 Fixed support for storage class specifiers after type specifiers. 2022-11-03 21:46:42 +08:00
acqn
991af3755b Added support for _Static_assert in unions. 2022-11-03 21:46:41 +08:00
Bob Andrews
fef8436eb4
Merge pull request #1881 from acqn/ExprDesc
[cc65] Organized ExprDesc functions and fixed several comments
2022-11-04 14:22:22 +01:00
Bob Andrews
7146dbc87d
Merge pull request #1879 from acqn/SymEntryFix
[cc65] SymEntry cleanups
2022-11-04 14:06:47 +01:00
Lauri Kasanen
3ea999f034 Correct mvn, mvp, pei 2022-11-03 08:17:51 +02:00
Lauri Kasanen
b90bf258e2 Implement far override 2022-11-03 08:17:51 +02:00
Lauri Kasanen
db351b4228 Output remaining long labels 2022-11-03 08:17:51 +02:00
Lauri Kasanen
65907b1f10 Output MX states 2022-11-03 08:17:51 +02:00
Lauri Kasanen
4b04f81d37 Fix jsl length 2022-11-03 08:17:51 +02:00
Lauri Kasanen
1294c1c253 Implement changing-size opcodes 2022-11-03 08:17:51 +02:00
Lauri Kasanen
e8ee8435e9 Add addrMode to RANGE 2022-11-03 08:16:45 +02:00
Lauri Kasanen
89fc5e30c4 Remove unused and conflicting value 2022-11-03 08:15:48 +02:00
Lauri Kasanen
ea924ededd Teach attrtab, labels and comments about long addresses 2022-11-03 08:15:48 +02:00
Lauri Kasanen
67384a29b7 Start on 65816 2022-11-03 08:08:38 +02:00
Bob Andrews
0eba33ee74
Merge pull request #1897 from acqn/TernaryFix
[cc65] Fixed errors in the conditional operator "? :" parser
2022-11-02 18:13:45 +01:00
Bob Andrews
37efb40c69
Merge pull request #1898 from acqn/PPFix
[cc65] Fixed '\\' + newline
2022-11-02 18:09:04 +01:00
Bob Andrews
5fd2b6fe4b
Merge pull request #1896 from acqn/EnumFix
[cc65] Fixed diagnostic messages on enumerator overflow
2022-11-02 17:34:31 +01:00
acqn
aa5d44b2b0 Fixed endlessly repeated error messages when a declaration lacks a required identifier. 2022-11-02 23:58:20 +08:00
acqn
9b39c3f949 Fixed garbage enum tag name appeared in diagnostic messages if the enum tag declaration failed. 2022-11-02 23:58:18 +08:00
acqn
d2f74db4d8 Fixed compatibility checks on "pointer to pointer" vs "pointer to array" etc. 2022-11-02 22:44:57 +08:00
acqn
deb5e97732 Fixed diagnostic messages on enumerator overflow.
An enumerator that would be incremented greater than ULONG_MAX now causes an error.
2022-11-02 14:22:21 +08:00
acqn
e9413567d7 Renamed several functions relevent with input file info. 2022-11-02 14:16:15 +08:00
acqn
8fb2576626 Fixed processing '\\' followed with a newline and line number output (-E) with it. 2022-11-02 14:09:15 +08:00
acqn
d84cc2d122 Fixed errors in the conditional operator "? :" parser. 2022-11-02 13:56:55 +08:00
Lauri Kasanen
c95c9c2749 Allow specifying range end as a size 2022-10-27 18:20:37 +03:00
acqn
b81e54c1d2 Organized ExprDesc functions and fixed several comments. 2022-10-24 14:55:39 +08:00
acqn
03ceeb4ad1 Removed warning on implicit "return 0" in C99 standard main function in default cc65 mode. 2022-10-22 12:45:51 +08:00
Lauri Kasanen
b052e64089 Speed up sim65 by 10% 2022-10-17 13:32:38 +03:00
Bob Andrews
34ff99aef0
Merge pull request #1877 from bbbradsmith/integer_constant_warning_rephrase
Rephrasing warnings for suspicious decimal integer constants
2022-10-16 22:15:59 +02:00
Bob Andrews
89031594eb
Merge pull request #1876 from bbbradsmith/constant_overflow_warning
Emit warning for signed integer constant overflow
2022-10-16 22:15:22 +02:00
Bob Andrews
b2238fdcd4
Merge pull request #1868 from acqn/PPFix
[cc65] Fixed and improved C preprocessor
2022-10-16 19:02:23 +02:00
Bob Andrews
3aadf6c66e
Merge pull request #1867 from acqn/Diagnostics
[cc65] Diagnostics improvements
2022-10-16 18:26:26 +02:00
bbbradsmith
66698d4b1a Rephrasing warnings for suspicious decimal integer constants 2022-10-14 16:47:11 -04:00
bbbradsmith
4540205b0d Emit warning for signed integer constant overflow 2022-10-13 23:49:07 -04:00
Lauri Kasanen
d52ef67d51 Fix compilation after the postproc merge 2022-10-12 10:28:14 +03:00
acqn
e57c409894 Fixed TypeHasAttrData(), GetSignedType() and GetUnsignedType(), none in use yet though. 2022-10-12 13:13:15 +08:00
acqn
45da20e770 Fixed CheckedSizeOf() for unknown-size types (no such use case yet though). 2022-10-12 13:13:37 +08:00
acqn
1dccd1333b Added more type utility functions.
Changed result of GetBasicTypeName() for unknown types from "type" to "<type>".
2022-10-12 13:10:17 +08:00
acqn
cf3a0c4a30 Corrected and entailed comments and cleaned up code with type comparison. 2022-10-13 13:45:22 +08:00
acqn
01d2b809a1 Renamed struct Segments to SegContext as well as some related functions. 2023-10-21 23:41:36 +08:00
acqn
5fd9169904 Renamed type facility functions for deciding code generation type flags. 2022-10-12 13:10:17 +08:00
acqn
a4a1230c62 Renamed some C type facility and fixed a few comments.
Added some new C type code facility.
Removed some unused type predicates.
2022-10-12 13:10:17 +08:00
acqn
feaedc5b50 Better organized stuff related to C types. 2022-10-12 13:10:17 +08:00
acqn
a2dfa7c721 More consistent names for SymEntry functions. 2022-10-12 13:10:17 +08:00
acqn
164eb198ce Moved type facility functions for deciding code generation type flags. 2022-10-12 13:10:17 +08:00
acqn
d1e84a6dae Avoided unnecessary BSS name duplication for tentative global variables. 2022-10-11 14:23:21 +08:00
acqn
2cda47cd36 More descriptive names for SymEntry usage. 2022-10-11 14:14:48 +08:00
acqn
959be2c98c SymEntry struct cleanups. 2022-10-11 14:14:38 +08:00
Bob Andrews
71d64a3c1c
Merge pull request #1857 from acqn/PPFix
[cc65] Improved preprocessor
2022-10-09 19:00:07 +02:00
acqn
9eab36b95a Fixed block-scope extern declarations visibility.
Fixed missing file-scope static function codegen output in a rare care.
2022-09-30 14:32:08 +08:00
acqn
9900e7361d #pragma message now uses the new "note" level message routine. 2022-09-30 09:09:09 +08:00
acqn
715aa919e6 C++ style comments in C89 mode will cause errors only once per input file. 2022-09-29 19:47:31 +08:00
acqn
29c9cb3e00 Improved diagnostics on conflicting type declarations. 2022-09-29 19:38:32 +08:00
acqn
96df4e8b5e Added a diagnostic level "note" for infomative messages. 2022-09-29 19:38:32 +08:00
acqn
133507b031 Fixed line info for #pragma messages and diagnostics. 2022-09-29 17:55:09 +08:00
Rutger van Bergen
2b07204952
Merge branch 'cc65:master' into kim1 2022-09-19 20:03:23 +02:00
Rutger van Bergen
cb8cb876ec Add documentation, make capitalization uniform 2022-09-19 19:56:57 +02:00
mrdudz
fd6d00a4dd revert 6096a24 - this breaks the case when the "label" is an expression containing spaces.
fixes bug #1853
2022-09-17 14:41:59 +02:00
mrdudz
253af1ed07 Force 16bit address for absolute-indirect-x-indexed in 65816 mode.
should fix issue #1846 (and hopefully not break anything :))
2022-09-03 18:36:40 +02:00
acqn
b4ddd01d78 Fixed checks on __VA_ARGS__. 2022-09-01 12:58:52 +08:00
acqn
950606d46a Improved diagnostics on wrong number of arguments in function-like macro calls. 2022-09-01 12:59:00 +08:00
acqn
92f94e4e5b A space character will be inserted in front of a leading '#' pp-token as the result of macro expansion. 2022-09-01 12:58:52 +08:00
acqn
770e529b20 Fixed newline counting inside old C style comments. 2022-09-01 12:58:52 +08:00
acqn
3d1e322519 Fixed keeping spacing in certain rare cases. 2022-09-01 12:58:52 +08:00
acqn
942ee47d05 Changed supposed usage of the original line input stack. It is now used for reusing input lines. 2022-09-01 12:58:52 +08:00
acqn
dc001cb4be Reverted E_ADDRESS_OF logic fix.
Added testcase.
2022-09-01 12:56:46 +08:00
mrdudz
5bda57de87 add extra underscore to _bzero, add a test for bzero/memset 2022-08-29 23:20:48 +02:00
mrdudz
d371046ae4 Despite not technically needed, it seems to be desirable to remove all trailing whitespace from inline assembly 2022-08-28 03:43:02 +02:00
mrdudz
6096a24f1d dont add whitespace after a label to the actual label, this fixes the root cause of #1252 2022-08-28 03:41:48 +02:00
acqn
9f8bfb859c Fixed handling adjacent macro expansions that should not concatenate.
Example: F()G /* expansion results of F() shall not be concatenated with G */
2022-08-22 14:34:50 +08:00
acqn
c7ff416ce9 Fixed wide strings for preprocessor. 2022-08-22 14:34:50 +08:00
acqn
be95cb8f58 Fixed stringized macro argument concatenation.
Example: #define s(a) L## #a.
2022-08-22 14:34:50 +08:00
acqn
6260414136 The '#' operator in macro replacement is now checked at macro definition instead of macro expansion. 2022-08-22 14:34:50 +08:00
acqn
2f6b5621cc Changed handling on nested macro replacement to match up with the behavior of other major C compilers, which is unspecified by the C standard. 2022-08-22 14:34:50 +08:00
acqn
95e5471cd6 Better preprocess macro expansion. 2022-08-22 14:34:50 +08:00
acqn
43d2fd2a96 Added support for the popular __COUNTER__ macro. 2022-07-24 23:19:05 +08:00
Bob Andrews
d2628d5949
Merge pull request #1840 from acqn/FnParamFix
[cc65] Fixed function parameters declared as function types rather than function pointers
2022-08-26 23:19:55 +02:00
Bob Andrews
68610490c9
Merge pull request #1837 from acqn/PPLineFix
[cc65] Fixed predefined __FILE__, __LINE__ and added missing preprocessing directive #line
2022-08-26 23:12:59 +02:00
acqn
26945c32ac Fixed function parameters declared as function types rather than function pointers. 2022-08-24 15:30:52 +08:00
acqn
57ad7c8766 Improved diagnostics about C++ style comments for c89. 2022-08-22 14:31:53 +08:00
acqn
fd7f32ecd3 Improved error handling and diagnostics with failed macro definitions. 2022-08-22 14:31:51 +08:00
acqn
9565f41381 Improved Diagnostic with #include. 2022-08-19 13:27:56 +08:00
acqn
5d5bd472c6 Removed extra whitespace at line ends in preprocess-only output (-E).
Increased threshold from 5 to 7 for skipped newlines with #line directives in preprocess-only output (-E).
2022-08-22 00:27:21 +08:00
acqn
79f97e7714 Reused code more for macros in preprocessing directives. 2022-08-22 00:24:28 +08:00
acqn
bb9c98f4c9 Added support for the #line directive. 2022-07-24 23:19:05 +08:00
acqn
36123c9c8f Improved naming for stuff related to preprocessing directives. 2022-07-24 23:19:05 +08:00
acqn
624e5025b0 Fixed parsing wide char constants. 2022-08-17 22:28:00 +08:00
acqn
5cca1e8b1d Fixed parsing numeric constants. 2022-08-11 10:55:16 +08:00
acqn
4bb4f033ea Fixed the bug that C keywords were not simply recognized as identifiers in preprocessing. 2022-08-07 16:14:45 +08:00
acqn
7a139a800e Added # and ## as punctuators recognized by the tokenizer.
Reorganized the token enum.
2022-08-06 18:45:49 +08:00
Bob Andrews
12b9b10355
Merge pull request #1832 from acqn/PPDefineFix
[cc65] Preprocessor directive #define fixes
2022-08-20 14:27:25 +02:00
Bob Andrews
03421694b2
Merge pull request #1817 from acqn/PPFix
[cc65] More preprocessor fixes
2022-08-19 21:37:16 +02:00
acqn
3fbefdef45 Fixed warning on forward declaration of enums.
Fixed the issue that global static variables put on zeropage were missing optimization.
2022-08-19 18:48:52 +08:00
acqn
cf7558add3 Added check for ## at either end of macro expansion. 2022-08-18 23:16:29 +08:00
acqn
47d5e74a6e Modified way to keep undefined macro handling more consistent. 2022-08-18 22:51:23 +08:00
Bob Andrews
ec310fceb8
Merge pull request #1825 from ReallyNiceGuy/master
Revert: Parse file included inside a macro at definition time
2022-08-11 00:03:12 +02:00
acqn
78e80eb942 Fixed superfluous warning on pointer types comparing a non-void pointer to a void pointer. 2022-08-09 13:13:33 +08:00
Marco Aurelio da Costa
71a9ed04a2 Revert: Parse file included inside a macro at definition time
The reverted change broke too many use cases where users
where expecting the compiler quirky behavior to be the correct
behavior.

A better solution is needed for the quirk which does not break
current usage.
2022-08-07 11:24:47 -03:00
acqn
a3a5fbe809 Disallowed 'defined' as a macro name. 2022-08-07 13:56:47 +08:00
acqn
7971eec3cc Fixed parentheses handling when a function-like macro name itself is used as an macro argument. 2022-08-07 12:45:48 +08:00
acqn
ae811baaf1 Fixed the bug that redefined macros could co-exist but not all be undefined with a single #undef. 2022-08-06 18:21:42 +08:00
acqn
0a051a4dee Unsupported #pragma within argument lists of function-like macro invocation. 2022-08-06 16:56:28 +08:00
acqn
251e984ba8 Fixed error recovery with preprocessing directives failures. 2022-08-05 14:03:51 +08:00
Bob Andrews
2c742ffc1c
Merge pull request #1800 from acqn/PPFix
[cc65] Preprocessor fixes
2022-07-28 01:48:41 +02:00
acqn
f8d08b1e1a More post-C99 predefined macros. 2022-07-26 21:40:19 +08:00
acqn
2f357ba9b2 Preprocessor directives can now appear in the argument list of function-like macro calls.
#pragma PP-tokens can now be macro replaced.
#include header names directly enclosed in <> are free of macro replacement.
Preprocess-only mode (-E) now outputs with #line as source info.
Moved testcases for #760 and #1357.
Added testcase for #1643.
2022-07-26 21:10:38 +08:00
acqn
80fc8cd11e Added preprocessor warning on missing terminating characters of character/string literals. 2022-07-26 21:10:36 +08:00
acqn
2c9c8ee196 Fixed extra "Macro argument count mismatch" message when a macro argument list is unterminated. 2022-07-26 21:10:31 +08:00
acqn
60c1290468 Fixed the bug that preprocessor could run past the end of included files.
Fixed the wrong filename and 0 line number in disgnostics when a preprocessor error occurred at the end of a file.
Fixed diagnostics for missing #endif.
2022-07-26 21:10:26 +08:00
acqn
8289c94e69 Fixed skipped lines consist of a leading # followed by any non-directive PP-token sequence. 2022-07-26 14:28:27 +08:00
acqn
0063f73f8a Fixed __FILE__ and __LINE__ macros for preprocessor. 2022-07-24 23:19:05 +08:00
acqn
7381a2c420 Added check for extra tokens at the end of directives.
Improved diagnostics on missing/illegal macro names.
2022-07-24 19:07:16 +08:00
acqn
be26b0631b Fixed #ifdef and #ifndef. 2022-07-24 19:07:02 +08:00
acqn
066a5e0fec Fixed #pragma charmap for string literals. 2022-07-24 16:38:41 +08:00
acqn
ac4cb258be Removed a mysterious "Hey!" message. 2022-07-21 11:59:38 +08:00
acqn
16a8a64746 Use a dedicated expression parser for the preprocessor. 2022-07-21 11:10:02 +08:00
acqn
f91c8ad247 Allowed comments right after "#" in preporcessor directives. 2022-07-21 11:09:59 +08:00
acqn
d3d6de2704 Allowed the pp-tokens following #error and #warning directives to be optional. 2022-07-21 11:09:56 +08:00
Bob Andrews
560317c8ba
Merge pull request #1789 from acqn/PPDiagnostics
[cc65] Fixed ICE with duplicate macro parameters
2022-07-19 17:38:29 +02:00
Bob Andrews
6b0afe0834
Merge pull request #1785 from acqn/Effectless
[cc65] Avoid generating asm from C code that has no observable effects
2022-07-19 17:38:03 +02:00
Bob Andrews
c802980d6a
Merge pull request #1784 from acqn/Diagnostics
[cc65] Slight improvements on diagnostics
2022-07-19 17:37:42 +02:00
Bob Andrews
82b268ee50
Merge pull request #1783 from acqn/MiscFixes
[cc65] Misc fixes and improvements
2022-07-19 17:37:19 +02:00
mrdudz
7165b29809 omit an error message also when an unresolved import was added by the compiler. fixes bug #1551 2022-07-14 22:54:18 +02:00
mrdudz
a6b807b1d8 more verbose comment 2022-07-14 22:39:29 +02:00
acqn
9e3b759540 Fixed ICE with duplicate macro parameters. 2022-07-05 22:22:49 +08:00
Dave Plummer
799aec23a6 Add KIM-1 Support 2022-06-04 13:00:48 -07:00
rofl0r
94e7b11870 cl65: fix regression in --print-target-path
since the "empty prefix means run from current dir" hack was removed,
cl65 --print-target-path no longer prints the path relative to the
binary, but the hardcoded library path which points to prefix, because
the code adds the hardcoded path first to the pathsearch, but then actually
only returns the first entry rather than looking whether the path exists.

closes #1754
2022-05-30 12:22:02 +00:00
Greg King
93e94c8dea Fixed a multi-line comment.
The left border is thicker in cc65 than it is in VICE.
2022-05-18 05:09:48 -04:00
compyx
2fdb1e6b0d Fix set but unused variable 2022-05-17 10:05:25 +02:00
mrdudz
f67fb3b326 define __CC65__ as ((VER_MAJOR * 0x100) + VER_MINOR), fixes issue #1667 2022-05-10 01:12:13 +02:00
mrdudz
b6ffa4af64 Fix endless loop on expanding a recursive macro, fixed issue #1678, patch by kugelfuhr 2022-05-09 21:26:45 +02:00
mrdudz
43af562ce1 At the end of the optimizer run, remove jump cascades again. fixes the
regression reported in #1652
2022-05-08 13:22:10 +02:00
mrdudz
5813fd81d3 add extra optimizer step that replaces BRA by JMP if the target is external 2022-05-08 13:20:18 +02:00
Bob Andrews
71cec58d86
Adjust comments 2022-05-05 14:24:02 +02:00
rofl0r
20dd6fd872 change GetProgPath() to return full & resolved binary path
GetProgPath() now resolves the path derived from argv[0] always
via realpath(3p) to its real location in the filesystem, and returns
the path including binary name, effectively making it work like
windows' GetModuleFileName(), so we can re-use the existing code
to strip the trailing binary name.
since symlinks are now always resolved, we no longer need the
special case code for linux to use /proc/self/exe for this purpose.
2022-05-02 08:22:21 +00:00