bbbradsmith
e3887d7ead
Test to demonstrate availability of floating point constants, document the possibility.
2023-05-03 16:48:02 -04:00
Bob Andrews
ae7a1416fe
Revert "Revert "Forbid 3-byte struct pass/return by value, document struct value pass/return""
2023-05-03 20:02:12 +02:00
Brad Smith
2c47ea45af
bug895.c compliant token pasting syntax to remove warnings
...
Gets rid of some unnecessary warning spam in the test log of lines like this:
```
bug895.c:95: Warning: Pasting formed "unsigned_long_14(", an invalid preprocessing token
```
2023-05-02 18:18:10 -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
bbbradsmith
78263cd24b
Fix OptStackOps label migration case for toscmpbool, add test case
2023-02-17 23:48:32 -05:00
mrdudz
1764b7aca9
fix for #1941 , taken from 22d435b689
2023-01-28 12:29:05 +01:00
mrdudz
d9ebfa7192
all good things are three
2022-12-11 12:29:11 +01:00
mrdudz
2b941e255a
move test. oops
2022-12-11 12:22:41 +01:00
mrdudz
bad961b36f
add missing newline
2022-11-28 06:34:05 +01:00
mrdudz
61ee5fe1d5
test for bug #1933
2022-11-28 06:26:47 +01:00
mrdudz
d6c37a757d
Merge branch 'master' into underscores
2022-11-19 17:11:11 +01:00
acqn
dadca9e033
Fixed bitwise-shift in PP.
2022-11-13 16:32:41 +08:00
Bob Andrews
53b62184e8
Merge pull request #1905 from acqn/DeclFix
...
[cc65] Fixed some missing declaration features
2022-11-05 16:03:09 +01:00
acqn
e608f8a94f
Renamed several tests.
2022-11-05 18:30:02 +08: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
acqn
8fb2576626
Fixed processing '\\' followed with a newline and line number output (-E) with it.
2022-11-02 14:09:15 +08:00
Bob Andrews
a169e67e43
Merge pull request #1863 from acqn/LinkageFix
...
[cc65] Fixed symbol visibility and usage problems with extern/static declarations
2022-10-09 18:59:12 +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
f6003b8e8c
Renamed some testcases.
2022-09-30 09:41:54 +08:00
acqn
1cbd6bc3f9
Fixed comments in test/val/bug1462-biefield-assign-4.c.
2022-09-29 18:23:41 +08:00
acqn
376afd0edb
Fixed trailing spaces in some testcases.
2022-09-29 18:23:32 +08:00
mrdudz
846d51db72
change line endings to unix style, should fix #1858
2022-09-22 20:29:57 +02:00
acqn
5e7d9b5fe3
Renamed a few testcases.
2022-09-18 22:29:41 +08:00
acqn
080ec131d8
Added testcase for constant operands with side-effects.
2022-09-18 22:29:30 +08:00
acqn
16ba232d08
Fixed some testcases.
2022-09-18 22:29:01 +08:00
mrdudz
6fc2cd9f61
add test related to bug #1853
2022-09-17 14:42:18 +02: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
ce6ee1b891
test some more possible cases and move test into test/val
2022-08-28 03:43:54 +02: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
1dbc5cb325
Simple testcase for __LINE__, __FILE__ as well as #line.
2022-08-24 16:39:44 +08:00
acqn
26945c32ac
Fixed function parameters declared as function types rather than function pointers.
2022-08-24 15:30:52 +08:00
Bob Andrews
22ea30c75f
"cat" result to console on failure (only on *nix right now)
2022-08-23 11:56:05 +02:00
acqn
47ee543fe0
Added testcase for some part of PR #1833 .
2022-08-21 00:11:19 +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
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
mrdudz
fb8de287be
test related to pr #1800
2022-07-28 01:50:54 +02:00
acqn
9f767770ac
Added test case for #pragma charmap.
2022-07-26 15:19:48 +08:00
mrdudz
e6b9a4b292
test related to issue #1652 , shows regression broken by #1231 and the
...
case that #1231 improved.
2022-05-08 13:19:32 +02:00
mrdudz
e0ae8ddc68
add sourcelines to the generated asm for easier inspection,
...
redirect output of sim65, including cycle count, into a seperate .out file per program
2022-05-08 13:18:27 +02:00
acqn
67594cca70
Testcases for long bit-fields.
2022-03-03 16:14:26 +08:00
mrdudz
0129622383
remove dangling spaces
2022-04-17 16:07:52 +02:00
mrdudz
8cacfa70d5
add missing newline to a bunch of files
2022-04-16 19:51:48 +02:00
mrdudz
2eb20b3e8a
remove a bunch of TABs
2022-04-16 18:16:14 +02:00
acqn
c8956ce19b
Fixed signed long comparisons with smaller unsigned types.
2022-03-03 20:24:14 +08:00
Bob Andrews
0587d9f5d4
Merge pull request #1675 from acqn/ShiftFix
...
[cc65] Fixed bitwise shift with numeric constant operand(s)
2022-03-01 19:50:21 +01:00
Greg King
bca8fcb947
Added a more general test to test/val/bug1690.c
2022-03-01 12:56:34 -05:00
acqn
5ef420af5a
Fixed OptCmp1 with certain code patterns with labels.
2022-03-01 10:40:01 +08:00
Jeff Tranter
2bf8be5b3b
Fix some commonly made spelling errors in comments.
2022-02-21 15:44:31 -05:00
acqn
904a77e03c
Testcase for #1675 .
2022-02-18 15:20:01 +08:00
acqn
6dbafda53f
Testcase for #1662 .
2022-02-14 22:28:22 +08:00
mrdudz
86f1965202
added test related to issue #1552 fixed in pr #1571
2021-09-28 18:55:23 +02:00
mrdudz
6ba8a385a0
add test related tu issue #1562
2021-09-28 18:11:23 +02:00
acqn
31128d4809
Added test cases for result types of certain operations.
2021-06-10 21:54:32 +02:00
acqn
d69e81cd66
Moved and improved test cases for Issue #1462 .
...
Fixed an old test case for unsigned enum bit-fields that are supposed to be int-promoted.
2021-06-09 08:03:12 +02:00
mrdudz
022935320c
test for issue #897
2021-05-24 14:30:10 +02:00
mrdudz
0db23a8951
testcase for issue #263
2021-05-23 18:55:06 +02:00
mrdudz
4a57656f69
add test for issue #1504
2021-05-17 14:40:09 +02:00
Christian Groessler
09e0e74124
(again) remove TABs
2021-05-13 18:12:12 +02:00
mrdudz
f3663b8d2e
added test for issue #1461
2021-04-28 14:21:48 +02:00
acqn
5f8d163045
Moved one test case for #1209 .
2021-04-06 22:20:39 +02:00
acqn
39700c77ee
Added test case for Issue #1451 .
2021-04-05 15:49:54 +02:00
acqn
5d05451ab2
Fixed test case for Issue #1263 .
2021-04-03 17:50:46 +02:00
acqn
cb8fbf4772
Removed the non-existing-in-C "struct/union scope" for structs/unions.
...
Fixed handling of struct/union field declarations without identifiers, which do nothing.
2021-03-29 19:28:22 +02:00
mrdudz
bf1bb7a032
ooopsie :)
2021-03-27 15:13:32 +01:00
mrdudz
54920193e5
added test for issue #1438
2021-03-27 15:11:47 +01:00
mrdudz
d3cd668585
also test (some of) the cases with an external function
2021-03-22 23:37:33 +01:00
mrdudz
55e89416cd
test related to issue #1196 and pr #1424 respectively
2021-03-22 19:12:44 +01:00
Oliver Schmidt
203c4da15b
Merge pull request #1434 from mrdudz/test1423
...
Test for pr #1423
2021-03-20 02:01:46 +01:00
mrdudz
82fb9aa418
testcase related to pr #1423
2021-03-20 00:55:55 +01:00
mrdudz
bbfc24770e
test related to pr #1425
2021-03-20 00:23:12 +01:00
mrdudz
cc040ca04a
remove, fucking git
2021-03-19 23:39:56 +01:00
mrdudz
57e69d9647
test related to pr #1425
2021-03-19 23:35:34 +01:00
mrdudz
9ec9d1e20c
test for issue #1431 / pr #1424
2021-03-19 20:53:52 +01:00
acqn
6f5ad51816
Added testcase for Issue #1408 .
2021-02-23 22:06:21 +01:00
acqn
f1c715c455
Fixed a bug that pointer subtraction results from two absolute addresses are calculated as unsigned long.
2021-02-22 14:14:59 -05:00
acqn
da4cc08b78
Moved and improved test case for Issue #1310 .
2021-02-22 14:14:59 -05:00
acqn
24985f1b33
Added testcase for the "deferred ops in unevaluated context" bug.
2021-02-22 11:02:47 +01:00
acqn
131f96eb1e
Moved testcase for issue #1397 .
2021-02-17 07:03:11 -05:00
acqn
a040c28cc4
Moved test for #1374 .
2021-01-19 14:33:27 +01:00
Christian Groessler
ef258bdc19
remove TABs which again slipped in....
2020-12-25 07:16:26 +01:00
Greg King
b2c1a77bb3
Fixed the cc65 code that optimizes 16-bit compares when the high bytes are known to be equal.
...
Only the low bytes are compared. Originally, signed 16-bit compares were optimized into signed 8-bit compares. But, the sign bits are in the high bytes; and, they're equal. Therefore, the low bytes always must be compared as unsigned numbers.
Fixes #1348 .
2020-12-24 12:27:09 -05:00
Greg King
8b42f570e9
Fixed code that caused a seg-fault after parsing a (deferred) post-count argument followed by a (nested) function-call argument.
...
The old broken code defers the count until the end of the (parent function's) argument list. But, a nested function call clears the pointer to the deferred type. That leads to an access violation.
The new code defers only until the end of each argument. Fixes #1320 .
2020-11-20 17:45:14 -05:00
Jesse Rosenstock
c2c73e7d06
Move #1332 test from todo/ to val/
...
This bug was fixed by 2915464
.
2020-11-16 03:23:52 -05:00
Jesse Rosenstock
93145246fd
Add tests for u8 op s16_const
...
Test expressions like `unsigned char x = ...; ... = x / 2;`
These use `int` constants with values representable by
`unsigned int` / `unsigned char`, so using unsigned codegen should
be possible.
Additional tests for #1308 . These are things we want to generate better
code for, so add tests that the behavior doesn't change.
2020-11-09 21:20:16 +01:00
Jesse Rosenstock
5db74b4b19
Use u16 codegen for u8 x u8 ops
...
In g_typeadjust, before we apply the integral promotions, we check if
both types are unsigned char. If so, we promote to unsigned int, rather
than int, which would be chosen by the standard rules. This is only a
performance optimization and does not affect correctness, as the flags
returned by g_typeadjust are only used for code generation, and not to
determine types of other expressions containing this one. All unsigned
char bit-patterns are valid as both int and unsigned int and represent
the same value, so either signed or unsigned int operations can be used.
This special case part is not duplicated by ArithmeticConvert.
Partial fix for #1308 .
2020-11-09 21:19:22 +01:00
Jesse Rosenstock
a686988d0e
Add test cases for integral promotion of chars
...
Both signed and unsigned chars are promoted to int by C's evaluation
rules. It is more efficient to use unsigned operations when possible,
however. These tests will help test the correctness of optimizations
doing that. See #1308 .
2020-10-29 13:54:37 +01:00
Jesse Rosenstock
81550ca1ee
CS_MergeLabels: Keep labels referenced by data
...
Partial fix for ICE in #1211 . This may fix enough to allow #1049 to be
fixed.
When merging labels, keep the first label with a ref that has no JumpTo;
this is a data segment label, used by computed gotos.
The real fix is to track and rewrite labels in data, but this is more
involved.
2020-10-08 12:11:03 +02:00
Jesse Rosenstock
b931e65811
Fix ICE for bit-fields with typedef
...
Fixes #1267
Avoid ICE, but treat plain int bit-fields declared via typedef as
signed rather than unsigned. It is more efficient to treat them
as unsigned, but this requires distinguishing int from signed int,
and this is curently not done.
2020-10-03 15:04:31 +02:00
mrdudz
97a1093ee0
test related to issue #1222
2020-09-24 12:23:18 +02:00
mrdudz
a86644eff1
test related to issue #1221
2020-09-24 00:08:36 +02:00
mrdudz
b3491e3d9a
test related to issue #1244
2020-09-23 23:57:36 +02:00
mrdudz
46ebb15c76
test related to issue #1245
2020-09-23 23:57:25 +02:00
Jesse Rosenstock
4e4e4c2d21
Allow char bit-fields
...
These are not required to be supported (only int, signed int, and
unsigned int are required), but most compilers support it.
https://port70.net/~nsz/c/c89/c89-draft.html#3.5.2.1
https://port70.net/~nsz/c/c89/c89-draft.html#A.6.5.8
For consistency with other integral types, plain `char` bit-fields
are unsigned, regardless of the `--signed-chars` option.
Fixes #1047
2020-09-08 14:24:04 +02:00
Jesse Rosenstock
9a0e4a35e1
Fix enum bit-field ICE #1244
...
This previously resulted in an ICE:
cc65: Check failed: (Entry->Type->C & T_MASK_SIGN) == T_SIGN_SIGNED,
file 'cc65/symtab.c', line 874
This CHECK is in the code that deals with changing `int` bitfields to
`unsigned int`.
Work around this by treating enum bit-fields as having their signedness
specified, so this type change code does not get called.
Fixes #1244 .
2020-09-07 11:21:23 +02:00
acqn
504aee3835
Merge branch 'master' into StaticConst
2020-08-27 06:27:23 +08:00
mrdudz
c1a514c0f8
added test related to issue #1201
2020-08-26 23:20:28 +02:00