Christoffer Lerno
f4751737e4
- Detect large temporaries when creating slices on the stack #2665
2026-02-27 01:14:22 +01:00
Christoffer Lerno
0085fe73ad
Fix test
2026-02-24 15:18:57 +01:00
Christoffer Lerno
d2f046780d
- Compiler crash using ?? with a void? macro #2973
2026-02-23 23:28:32 +01:00
Christoffer Lerno
ec65c5761e
Fixed test
2026-02-23 19:21:56 +01:00
Christoffer Lerno
0ed917cdc2
Improve error when trying to use an extern const as a compile time constant. #2969
2026-02-23 19:15:30 +01:00
srkkov
8f7610345d
More x86 instructions ( #2964 )
...
* Added most x86 cryptographic instructions
* Fixed popcnt test
* Fixed asm_ops_x64_2.c3t test
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2026-02-23 15:27:36 +01:00
Christoffer Lerno
dc52478c09
- Warn on use of visibility modifiers on methods. #2962
2026-02-21 21:10:08 +01:00
mmoustafa8108
5055e86518
test: added comprehensive tests for in-string & complex nested comments ( #2956 )
...
* test: added comprehensive tests for in-string & complex nested comments
* Properly handle error
---------
Co-authored-by: Christoffer Lerno <christoffer.lerno@gmail.com >
2026-02-20 13:24:08 +01:00
Manu Linares
4b13ad692a
fixes for RISC-V ABI Implementation #1567 ( #2937 )
...
* fixes for RISC-V ABI Implementation #1567
Fixed RISC-V floating-point ABI by correcting the target triple to
`riscv64-unknown-linux-gnu`, adding the `target-abi` module flag, and
ensuring ABI-required CPU features are enabled.
I tested this with:
```bash
build/c3c compile-only --target linux-riscv64 rv_hello.c3
readelf -h obj/linux-riscv64/rv_hello.o | grep Flags
# Output: Flags: 0x5, RVC, double-float ABI
```
```bash
# and qemu because I don't have a riscv machine :/
qemu-riscv64-static -L /usr/riscv64-linux-gnu ./rv_hello
```
---
@lerno I purposedly left these two failing tests to clearly see the
difference.
`test/test_suite/abi/riscv64-lp64-lp64f-abi-1.c3t`
`test/test_suite/abi/riscv64-lp64-abi.c3t`
* improve Linux cross-compilation, specifically for RISC-V
- Implement automatic sysroot and CRT object discovery for RISC-V.
- Fix dynamic linker paths and emulation flags for LLD.
- Link against libgcc to resolve required arithmetic symbols.
* Update tests.
* fix linker CRT detection by centralizing host arch check
use target_host_arch() in linker.c
move target_host_arch() from hostinfo.c to target.c
* missing debug info
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2026-02-20 01:53:29 +01:00
Christoffer Lerno
7c81bb35ca
Refactored contracts ( #2960 )
...
* - Properly support `@deprecated` as contract.
- Support deprecating enum values.
- Refactor contracts
* Always copy enum constants.
* Bugfix.
2026-02-20 01:51:28 +01:00
Christoffer Lerno
5a82f672b5
Update to constdef
2026-02-20 01:13:20 +01:00
Christoffer Lerno
0387d7666d
- Trying to slice an indexable type leads to misleading error message #2958
2026-02-20 00:13:45 +01:00
Christoffer Lerno
585c66100d
- Member access on a struct returned by the assignment expression, cause crash #2947
2026-02-19 20:43:45 +01:00
Damien Wilson
9efb9b90d1
Minor attribute combination checking ( #2918 )
...
* Minor attribute combination checking
* Added tests to the test suite.
2026-02-19 17:58:39 +01:00
Fernando López Guevara
9fbf6bc213
enforce buff channel size > 0 ( #2952 )
...
* fix(stdlib): enforce BufferedChannel size > 0 and add regression test
* chore(repo): ignore cmake/test artifacts
* Formatting
---------
Co-authored-by: Christoffer Lerno <christoffer.lerno@gmail.com >
2026-02-18 14:34:41 +01:00
Christoffer Lerno
3ac701be0e
Improve error message when providing alias with a typeid expression where a type was expected. #2944
2026-02-17 13:02:34 +01:00
Christoffer Lerno
990e9685d2
- Adding the incorrect sized vector to a pointer vector would cause a crash.
2026-02-16 00:39:14 +01:00
Christoffer Lerno
eb80776988
More fixes for typedef @constinit change
2026-02-14 01:37:53 +01:00
Samuel
fac9054f1b
Fix array initializer analysis ( #2925 )
...
* Fix array initializer analysis: improved semantic checking for arrays with inferred or fixed length,
* Update phrasing
---------
Co-authored-by: Christoffer Lerno <christoffer@aegik.com >
2026-02-13 23:38:07 +01:00
Christoffer Lerno
e299a4b630
- Change typedef and const enums to not convert from literals by default. ( #2934 )
...
- Add `@constinit` to allow old typedef behaviour.
2026-02-13 20:39:47 +01:00
Christoffer Lerno
acc4a900f5
- New const enum declaration syntax.
...
- New enum associated value syntax.
2026-02-12 14:43:56 +01:00
Christoffer Lerno
e2f17a770b
Using [] or .foo on $$ functions would not raise error but instead crash #2919 .
2026-02-11 02:53:17 +01:00
Christoffer Lerno
0542c05b88
Update tests.
2026-02-09 10:23:03 +01:00
Christoffer Lerno
80ad0e02ad
Fix tests and error in returning error on function name.
2026-02-08 22:54:24 +01:00
Christoffer Lerno
124efb2684
Improve error message on const int*
2026-02-06 02:00:26 +01:00
Christoffer Lerno
42b79d19c1
Update all stub methods.
2026-02-06 00:55:57 +01:00
Christoffer Lerno
d71aa10f62
- Const inline enums would not always implicitly get converted to the underlying type.
...
- Update to dstring.append_string to take any type converting to String.
2026-02-05 13:04:57 +01:00
Christoffer Lerno
dcf695c726
Fix list[0].i = 5 when list[0] returns a pointer. #2888
2026-02-05 00:34:17 +01:00
Christoffer Lerno
5f32c97094
- Compiler crash when using arrays of vectors in lists. #2889
2026-02-04 12:40:16 +01:00
Christoffer Lerno
1c8cb7fa11
Method resolution and $define now works together well unless definitions are out of order for real.
2026-02-04 12:23:37 +01:00
Christoffer Lerno
6bc606a9b1
Removed analyse top pass. Remove sub module tracking. Fix errors where ? should be ~
2026-02-02 12:20:34 +01:00
Christoffer Lerno
4e129d4ae2
Fix test.
2026-01-30 13:18:56 +01:00
Christoffer Lerno
cb19c7d9e7
Test update
2026-01-29 20:08:58 +01:00
Christoffer Lerno
534dd42472
Update test.
2026-01-29 17:51:50 +01:00
Christoffer Lerno
084d5cbc94
Set target in test.
2026-01-29 02:30:06 +01:00
Christoffer Lerno
32b1df0f86
Set target in test.
2026-01-29 00:43:53 +01:00
Christoffer Lerno
50718cb905
- Crash in slice expression when it contains a rethrow #2872
...
- Multiple issues when rethrowing inside of expressions #2873
2026-01-29 00:42:20 +01:00
Christoffer Lerno
414c0c9438
- Initializer did not correctly handle second rethrow #2870
...
- Crash encountering panic in if-else style switch #2871
2026-01-28 22:56:59 +01:00
Christoffer Lerno
362d5680e4
- Optional in initializer cause a crash #2864
...
- Negating a global address with offset was a counted as a global runtime constant #2865
- Converting static "make_slice" to array failed to be handled #2866
- Narrowing a not expression was incorrectly handled #2867
- Vector shift by optional scalar failed #2868
2026-01-28 21:59:40 +01:00
Christoffer Lerno
d276d3767f
Incorrect handling when reporting fn with optional compile time type #2862
2026-01-28 18:51:21 +01:00
Christoffer Lerno
c1e3cfaacc
- Crash when trying to create a const zero untyped list #2847
2026-01-27 23:36:00 +01:00
Christoffer Lerno
0b5064683f
Regression: Generic type could not be found in lambda inside macro #2853
2026-01-27 14:23:41 +01:00
Christoffer Lerno
f3ede27f60
Regression: "'out' parameters may not be read" when writing to array #2852
2026-01-27 13:48:50 +01:00
Christoffer Lerno
4fbb42833e
- Crash when creating $Type* where $Type is an optional type #2848
...
- Crashes when using `io::EOF~!` in various unhandled places. #2848
2026-01-27 13:32:08 +01:00
Christoffer Lerno
3e76b7ff1c
Fixes to optional rethrow in expressions.
2026-01-26 04:10:38 +01:00
Christoffer Lerno
e901a3de55
- Fix alignment for uint128 to 16 with WASM targets.
...
- Incorrect assert in struct alignment checking #2841
- Packed structs sometimes not lowered as such.
2026-01-25 23:06:16 +01:00
Christoffer Lerno
4899ee14e2
Resolving &X.b when X is a const incorrectly checked for runtime constness #2842
...
Creating a generic instance fails if it is created after interface checking #2840
2026-01-25 21:24:27 +01:00
Christoffer Lerno
3c04a326f4
Resolving &X.b when X is a const incorrectly checked for runtime constness #2842
2026-01-25 20:28:58 +01:00
Christoffer Lerno
a1ff3b05ed
- Lowering of optional in && was incorrect #2843
2026-01-25 19:50:28 +01:00
Christoffer Lerno
5b90743120
Fix test compatibility
2026-01-25 13:15:26 +01:00