Commit Graph

4248 Commits

Author SHA1 Message Date
Colin Leroy-Mira
28442e60b8 Emit warnings for wasted bytes when aligning 2025-10-19 15:00:13 +02:00
Bob Andrews
c2556bb5e2 Merge pull request #1358 from dmsc/issue-479
Fixes Issue 479 (ca65: can't reference .proc members before declaration)
2025-10-05 15:39:56 +02:00
Bob Andrews
93c1b659ee Merge pull request #2824 from GrosChien/master
ca65 Fixing segfault when using `--expend-macros` without `--listing`
2025-09-22 21:18:39 +02:00
Bob Andrews
ca7335023f Merge pull request #2834 from polluks/patch-12
Fixed overflow
2025-09-22 21:06:41 +02:00
Stefan
9601b11a9c inplicit length 2025-09-18 11:10:41 +02:00
Stefan
5e89953bf9 Fixed overflow 2025-09-17 15:03:55 +02:00
Kugel Fuhr
0dc484f5a7 Fix hardcoded upper limit of input files. 2025-09-08 20:51:27 +02:00
Gros chien
ee096d27df Fix segfault when using -x without -l 2025-08-26 23:45:39 +02:00
Daniel Serpell
2454ab831c When creating a new scope for a forwarded symbol, do not open it.
This fixes las example in the PR.
2025-08-17 20:24:08 -04:00
Daniel Serpell
acc26c0e7b When the scope is not found on ancestors, create on current scope.
This solves comment https://github.com/cc65/cc65/pull/1358#issuecomment-3193961949
2025-08-16 22:28:32 -04:00
Daniel Serpell
2323f46a54 Only search a symbol in parent scopes if not already scoped.
This fixes the case at: https://github.com/cc65/cc65/pull/1358#issuecomment-747194906
2025-08-16 17:29:12 -04:00
Daniel Serpell
5b70654289 Allows referencing a scope not yet created.
Use the "::" syntax at the start of the symbol to force creating
a scope if it does not exists yet.

Fixes issue #479.
2025-08-16 11:17:35 -04:00
Bob Andrews
5197c56c7c Merge pull request #2794 from mrdudz/fixgrc
Fixgrc
2025-07-27 00:23:02 +02:00
Bob Andrews
d06e0d9a16 Merge pull request #2812 from colinleroy/Opt-ldptr1
Optimize ldax?sp/sta/stx to ldptr1?sp
2025-07-27 00:22:21 +02:00
Colin Leroy-Mira
1f6cca2140 Coding style 2025-07-27 00:02:48 +02:00
Colin Leroy-Mira
a0b705fd41 Remove code after inserting new one 2025-07-27 00:02:48 +02:00
Colin Leroy-Mira
0647cb1112 Merge jsr pushax/j?? popax into nothing or RTS 2025-07-27 00:02:48 +02:00
Colin Leroy-Mira
4c2cc24e77 Optimize jsr ldax0sp/incsp2 2025-07-27 00:02:18 +02:00
mrdudz
cb39da2fba Use spaces instead of tabs in the output files 2025-07-26 23:52:14 +02:00
Kugel Fuhr
8f4a4040d6 Complete unreachable checking for switch statements. 2025-07-26 09:03:27 +02:00
Kugel Fuhr
70c1bd5e3c Improved flow analysis in general and especially for "for" loops. Added more
tests.
2025-07-26 09:03:04 +02:00
Kugel Fuhr
8ac25376a0 Fix the "double semicolon" problem where a double semicolon after a statement
that makes the following code unreachable led to an "unreachable code" warning.
2025-07-26 09:02:54 +02:00
Bob Andrews
0a4af6df92 Merge pull request #2808 from kugelfuhr/kugelfuhr/flowanalysis
Simple flow analysis to find unreachable code
2025-07-26 00:10:21 +02:00
mrdudz
2c906474eb calculate the disk blocks in the linker config 2025-07-20 19:18:24 +02:00
Colin Leroy-Mira
6d96a952fd Stricter check for incax[1-8]
Thanks to @kugelfuhr

Co-authored-by: kugelfuhr <98353208+kugelfuhr@users.noreply.github.com>
2025-07-20 18:48:58 +02:00
Colin Leroy-Mira
fa1b6ed4f7 Address issues 2025-07-20 16:39:24 +02:00
Colin Leroy-Mira
095ee0b27c Merge branch 'master' into fix-pr-2778 2025-07-20 16:28:49 +02:00
Colin Leroy-Mira
8a793796d7 Coding style 2025-07-20 16:14:35 +02:00
Colin Leroy-Mira
8ba1cef550 Merge branch 'master' into Opt-ldptr1 2025-07-20 16:08:01 +02:00
Colin Leroy-Mira
2b2c082efb Fix bug in PR #2778
Don't replace incaxy like incax[1-8].
2025-07-20 14:36:30 +02:00
Colin Leroy-Mira
17b8645360 Optimize ldax?sp/sta/stx to ldptr1?sp 2025-07-20 12:24:24 +02:00
mrdudz
e554d0ccfb mark sequential GEOS files without RECORD table as such. 2025-07-20 02:01:37 +02:00
mrdudz
3ff1a9e463 another try. still not quite right apparently 2025-07-19 23:00:28 +02:00
Kugel Fuhr
61f3e43fb6 Rewrote an outdated comment. 2025-07-17 20:52:33 +02:00
Jimmy Dansbo
3cd1672ae5 Added correct capabilities to W65C02 and 65CD02 cpus 2025-07-17 19:17:03 +02:00
Kugel Fuhr
6d45a94127 Do not output a warning about a missing "return" in a function if the function
exit is unreachable.
2025-07-17 17:07:34 +02:00
Kugel Fuhr
f13284d3f8 Move the warning about unreachable code out of the Test() function and into
the callers. This has the effect that the location for the warning is much
more precise than before.
2025-07-17 15:43:15 +02:00
Kugel Fuhr
93b94d314a Implement a simple flow analysis. Tracks control flow of all statements with
the exception of "switch". Outputs warnings for unreachable code. Tracks also
"return" but doesn't currently make use of this information.
2025-07-17 15:39:45 +02:00
Bob Andrews
3f3dc3d145 Merge pull request #2803 from kugelfuhr/kugelfuhr/fix-1162
Add a description for --memory-model to the docs
2025-07-16 00:56:36 +02:00
Bob Andrews
89704a6e37 Merge pull request #2802 from kugelfuhr/kugelfuhr/modernize-ld65-diags
Modernize ld65 diagnostics
2025-07-16 00:55:12 +02:00
Kugel Fuhr
f86f602b9e Add a description for --memory-model to the docs. 2025-07-14 16:45:42 +02:00
Kugel Fuhr
4120f35276 Added tests for warnings or errors that now have notifications. 2025-07-14 12:59:52 +02:00
Kugel Fuhr
170ddc6e33 Add a --warnings-as-errors option to cc65 for compatibility reasons. 2025-07-14 11:35:53 +02:00
Kugel Fuhr
c7096ab6d7 Fix an error that was introduced by me in a4a24280f2:
Using a pipe causes a subshell to be generated so the "exit" statements will
just leave the subshell. As a consequence, the sortedxxx.sh scripts produced
output but no error exit code. Which in turn caused an error in #2778 to slip
through undetected.
2025-07-13 17:56:31 +02:00
Kugel Fuhr
2e4c18770b Add a --warnings-as-errors to cl65. 2025-07-13 16:34:36 +02:00
Kugel Fuhr
c2f17b6f6b When initialized data is found in a segment, print the first module where this
data comes from to ease debugging.
2025-07-13 16:34:29 +02:00
Kugel Fuhr
2e3edf9b1b Some reformatting and improved diagnostics. 2025-07-13 16:34:20 +02:00
Kugel Fuhr
3e81cd6ae0 Renames CfgError -> PError, CfgWarning -> PWarning. 2025-07-13 16:33:59 +02:00
Kugel Fuhr
7d963d4490 Change the output format for .assert. Use --no-utf8 for the tests. 2025-07-13 16:33:15 +02:00
Kugel Fuhr
074a3f513e Add the --color and --no-utf8 options to cl65 which will pass it to the tools
that understand it.
2025-07-13 16:33:03 +02:00