Rangi
804db4e073
Handle missing newline at EOF for linkerscript INCLUDEd files ( #1691 )
2025-05-22 10:55:58 +02:00
Rangi
126b1e5726
Reuse startsIdentifier and continuesIdentifier functions ( #1695 )
2025-05-19 15:31:26 -04:00
Rangi
d413870e6d
.sym file sorting accounts for local labels' parents' addresses and names ( #1684 )
2025-05-05 13:57:25 -04:00
Rangi
122d91509f
Clear some more TODO comments ( #1677 )
2025-05-02 21:06:34 -04:00
Rangi
56f7222230
Don't output anonymous labels in map files ( #1674 )
2025-05-01 19:19:25 +02:00
Rangi42
00d0ae840d
Avoid use of goto in nextLine
2025-02-27 14:28:17 -05:00
Rangi
0150eb4bf3
Exclude more lines from test coverage ( #1663 )
...
These fall into a few categories:
- `_unreachable()`
- Verbose print messages
- Errors that should never practically occur (alloc/read/write failure,
more than UINT32_MAX anonymous labels, etc)
2025-02-17 04:56:10 -05:00
Rangi
632342b254
Use LCOV_EXCL comments to exclude some lines from test coverage ( #1662 )
2025-02-16 13:56:55 -05:00
Rangi
2aef09c8d9
Allow the bit/res/set bit index to be determined at link time ( #1654 )
...
This increments the object file revision number from 11 to 12
since it adds a new `RPN_BIT_INDEX` command.
2025-02-12 17:14:10 +01:00
Rangi
b35e9d86fb
Remove redundant @-style doc comment tags ( #1641 )
2025-01-29 19:56:28 -05:00
Rangi
e20347e38c
Add more RGBLINK tests ( #1639 )
2025-01-29 12:53:44 -05:00
Rangi
f61019dd68
Add more RGBLINK test coverage ( #1637 )
2025-01-29 11:41:08 -05:00
Rangi42
79401cce8b
Add braces inside #define macro bodies
2025-01-27 20:12:12 -05:00
Rangi42
cae31005f8
Always use braces with InsertBraces: true in .clang-format
2025-01-27 20:12:12 -05:00
Rangi42
25c9f8f383
Add more rules to .clang-format
2025-01-27 20:12:12 -05:00
Rangi42
192fc808c8
Run clang-format on some Bison .y file contents
2025-01-27 20:12:12 -05:00
Rangi42
b8b60207f5
Use // line comments not /* block comments
2025-01-27 20:12:12 -05:00
Rangi42
a354af3d08
Reformat source files with clang-format 19.1.7
2025-01-27 20:12:12 -05:00
Rangi42
890528812e
Prefer C++ constructs to C-style sizeof-based macros
2025-01-24 18:56:41 -05:00
Rangi
d9654b752f
Support -h/--help for all programs ( #1620 )
2025-01-21 21:24:17 -05:00
Rangi42
edc9e07a2d
Move all common error checks together inside mergeSections
2025-01-17 02:18:40 -05:00
Rangi
382ad17969
Don't output sections in reverse order ( #1613 )
2025-01-17 01:28:17 -05:00
Rangi42
fac5e35d24
Prefer empty braces to semicolons for empty loop bodies
2025-01-17 00:20:33 -05:00
Rangi42
f23a14afc7
Remove unnecessary semicolons after closing braces
2025-01-17 00:01:06 -05:00
Rangi42
d9773424e4
RGBDS_OBJECT_VERSION_STRING is a literal
2025-01-04 03:53:59 -05:00
Rangi42
4e2464a69d
Replace some #define with constexpr
2025-01-04 03:53:59 -05:00
Rangi42
151f83db6d
Using C++20 [[unlikely]] here would be excessive micro-optimization
2024-12-23 14:14:10 -05:00
Sylvie
c1c5b10082
Deprecate LDH with $00-$FF ( #1575 )
2024-12-10 21:27:37 -05:00
Sylvie
b877c81c32
Use C++-style casts ( #1576 )
2024-12-09 21:56:54 -05:00
Rangi42
0d3980d039
Refactor how map file sections are printed
...
This makes size-0 sections print as "($0000 bytes)" instead of
"(0 bytes)", which is more consistent.
2024-10-23 17:10:39 +02:00
Rangi42
ab6244d81c
Escape characters in section names in map files
2024-10-23 17:10:39 +02:00
Sylvie
bc5a71ff88
Update some RGBLINK error messages ( #1544 )
2024-10-16 01:42:49 +02:00
Sylvie
4cd0dd5314
Use setmode instead of fdopen ( #1520 )
2024-09-29 14:06:59 -04:00
Sylvie
22767e36e2
Refer to "end of line", not "newline" ( #1517 )
2024-09-23 02:15:02 +02:00
Rangi42
6bc2446966
Rephrase error messages for consistency
2024-09-10 21:38:50 +02:00
Sylvie
1dcc000572
Report locations for RGBLINK errors with conflicting objects ( #1494 )
...
This requires updating the object file format to record the
fstack context for sections themselves, not just for patches.
2024-09-10 19:23:48 +02:00
Rangi42
11f0e88b30
Factor out common sanity checks for section union and fragment
2024-09-06 21:55:28 -04:00
Rangi42
d917df406d
Use camelCase instead of lowercase for static functions
2024-09-06 21:48:57 -04:00
Sylvie
323028d9f2
RGBLINK lists local symbols when encountering an unknown symbol reference ( #1496 )
2024-09-06 21:31:13 -04:00
Rangi42
26fcff831d
Run clang-format
2024-08-27 01:49:05 -04:00
Rangi42
b77ba1d87d
Forward declare struct Section to avoid a nested header include
2024-08-26 22:58:38 -04:00
ISSOtm
8286d9c462
Check that there is enough room to write a patch when linking
...
Prevents segfaulting if a patch's offset is too large
2024-08-26 22:58:38 -04:00
ISSOtm
77129b9e80
Fix a false positive reported by scan-build
...
Arguably this also makes the logic a little clearer, so might as well
2024-08-23 01:34:36 +02:00
Sylvie
57c3d74b9e
Use a custom generic tagged union Either instead of std::variant for efficiency ( #1476 )
...
* Implement custom generic tagged union `Either`
This should be more efficient than `std::variant`, while still
keeping runtime safety as it `assert`s when `get`ting values.
* Use `Either` for RPN expressions
* Use `Either` for file stack node data
* Use `Either` for `File` buffer
* Use `Either` for `STRFMT` args
* Use `Either` for RGBLINK symbol values
* Support an equivalent of `std::monostate` for `Either`
* Use `Either` for lexer tokens
* Use `Either` for symbol values
* Use `Either` for lexer mmap/buffer state
2024-08-20 21:19:11 +02:00
ISSOtm
86140b5b2f
Correctly apply section fragment offsets to contained symbols
2024-08-18 19:44:04 +02:00
ISSOtm
369296693c
Avoid softlock if linker script contains a comment but no newline
2024-08-18 19:44:04 +02:00
ISSOtm
47b2e0e912
Trap bad __at() values too
...
Those set the section type earlier than the linker script,
so a check needs to be performed there too
2024-08-18 19:44:04 +02:00
ISSOtm
28733fe312
Implement floating bank in linker script
...
Turns out that we can solve being unable to choose a bank to change
the PC of, by simply refusing to choose!
2024-08-18 19:44:04 +02:00
ISSOtm
e45a422da3
Clarify error message when a section lacks a type
...
The previous commit has made this precision possible
2024-08-18 19:44:04 +02:00
ISSOtm
9fd4ba90cc
Trap invalid section types in RGBDS objs
2024-08-18 19:44:04 +02:00