mrdudz
dc83eb15af
added test related to issue #1181
2020-08-14 16:12:17 +02:00
Jesse Rosenstock
633cd17a3e
Add enum size test case for #1050
2020-08-02 01:18:28 +02:00
Jesse Rosenstock
847982c6bf
Handle bit-field test after shift/mask
...
Previously, bit-field tests were incorrectly combined with load in
`if (x.bitfield)`. Delay the test until after the shift/mask
is done. Still combine tests with load if no shift/mask is required.
Fixes #1139
2020-07-31 19:33:28 +02:00
Jesse Rosenstock
3df6c383c0
Add support for static_assert
...
Add C11's _Static_assert and static_assert macro.
This is like #error, but is handled at a later stage
of translation, so it is possible to check sizes of
types, values of enums, etc.
https://en.cppreference.com/w/c/language/_Static_assert
https://port70.net/~nsz/c/c11/n1570.html#6.7.10
2020-07-30 19:17:11 +02:00
Jesse Rosenstock
2d5fd0fc63
Use char ops if possible for bit-field loads
...
Set CF_FORCECHAR and change type to char once we have
shifted into a char.
This saves some unnecessary ldx #0 instructions.
2020-07-30 14:59:23 +02:00
Jesse Rosenstock
74dda01919
Add test that plain int bitfields are unsigned
...
We want to make sure this doesn't change when #1095 is fixed;
unsigned is much more efficient.
2020-07-29 16:43:17 +02:00
mrdudz
98b2d43c2b
added tests related to pr #1110
2020-07-22 15:52:04 +02:00
mrdudz
6abf24e25e
move test for issue #1077 to test/val
2020-07-22 15:12:02 +02:00
mrdudz
eb094ecf6a
remove ifdef magic
2020-07-22 00:21:23 +02:00
mrdudz
4a9c5ff63b
use uint16_t instead of magic ifdefs, leaving support for bit type in there incase we support it some day
2020-07-22 00:09:48 +02:00
Brad Smith
041f981960
rand() use XOR to break up unwanted pair correlation ( #1107 )
...
* rand() use XOR to break up unwanted pair correlation
This form of rand() cannot return the same value twice in a row.
Two additonal EOR instructions produce a more even distribution of successive pairs.
see comments on #951
* rand.s document purpose of XOR
* suggested srand() optimization: zero fill unnecessary
* test to validate implementation of rand()
* srand() improving behaviour and adding startup test
* srand() with a tail call to rand() for better initial shuffle
* srand() can fall through to rand() instead of tail call
2020-07-21 23:38:18 +02:00
mrdudz
9e43c0a569
added a test related to pr#1102 - we can now return structs by value when they are max. 4 bytes
2020-07-21 21:04:41 +02:00
mrdudz
145084c41c
move test for issue #1075 to test/var
2020-07-21 20:02:51 +02:00
mrdudz
a0c80a8c72
move (now working) tests to test/val
2020-07-21 19:24:39 +02:00
mrdudz
e4fc7a0fec
reworked pptest3 into an exectutable test and moved to test/val
2020-07-21 15:30:35 +02:00
mrdudz
010ed6d729
reworked pptest1/4/5 into executable tests and moved to test/val
2020-07-21 14:58:15 +02:00
Greg King
517df130cc
Made a regression test increment a variable after, instead of before, using it.
...
That change allows the initial value of zero to be tested.
2020-07-20 17:16:11 -04:00
mrdudz
5a9d76ad52
added test for issue #1108
2020-07-20 15:50:11 +02:00
mrdudz
a4f1e37f0c
increase the maximum amount of cycles, else the shift test will fail
2020-07-13 21:26:31 +02:00
mrdudz
5ad365c5df
some tweaks to the moved tests to make them more suitable for automatic testing
2020-07-13 21:26:07 +02:00
mrdudz
882194c221
move a bunch of tests from testcode/lib to test/val (and a failing one to test/todo)
2020-07-13 21:25:13 +02:00
Oliver Schmidt
bcb8b49907
Removed executable bit.
2020-07-12 23:11:43 +02:00
Jesse Rosenstock
df97570471
Set .NOTPARALLEL in test/misc and test/val
...
The cl65 intermediate files stomp each other in
these directories.
2020-07-10 13:08:19 +02:00
mrdudz
4b8b15a07a
tests for issue #169
2020-07-09 16:05:57 +02:00
mrdudz
93f0df58e5
test related to issue #1071
2020-07-09 15:57:51 +02:00
Jesse Rosenstock
359da1ae76
Update bit-field tests after #1058 merge
2020-07-08 17:20:15 +02:00
Jesse Rosenstock
8449c9eaa0
Add zlib license text
2020-07-08 17:20:15 +02:00
Jesse Rosenstock
532e6b2554
Add copyright notice
2020-07-08 17:20:15 +02:00
Jesse Rosenstock
6f85ee9d95
Add another test for bit-field unit overlap
...
Test when there is another field after bit-fields with
allocation unit overlap.
2020-07-08 17:20:15 +02:00
Jesse Rosenstock
2f456ce4e2
Add comment explaining four_bits_with_int
2020-07-08 17:20:15 +02:00
Jesse Rosenstock
8a331ee7ec
Print to stdout instead of stderr
...
Print number of failures.
This makes it consistent with the other val/ tests.
2020-07-08 17:20:15 +02:00
Jesse Rosenstock
a70ac6be30
Add test of bit-field packing for #1054 and #1055
2020-07-08 17:20:15 +02:00
mrdudz
6e6ce4e5ee
added various tests related to bug #1045
2020-06-23 00:46:12 +02:00
acqn
e9307ce58e
Moved test/ref/cc65141011.c to test/val/cc65141011.c.
2020-06-22 23:23:39 +02:00
IrgendwerA8
08705a3fdc
Changes resulting from 2nd code review
2020-02-03 20:45:09 +01:00
IrgendwerA8
ce80624f62
ctype size optimization
2020-02-03 20:45:09 +01:00
Greg King
a0db846a97
Allowed old-style (K and R) function declarations to be fastcall.
...
That lets them match old-style definitions. It avoids "Type conflict" error messages. It allows shorter function calls.
Fixed the types of some variables in "test/ref/otccex.c". It avoids crashes on 64-bit Windows (32-bit Windows with 64-bit pointers).
2019-07-22 09:26:23 -04:00
Lauri Kasanen
1bfdce55ed
binlit: Add a few random leading zeros
2019-07-20 17:21:42 +02:00
Lauri Kasanen
925ea9d544
cc65: Add support for binary literals
...
Binary literals, 0b001, are a GCC extension in C and a C++14 feature.
2019-07-20 17:21:42 +02:00
Greg King
88c6dd2da8
Changed empty parameter lists into (void) lists on functions with asm() statements.
...
The fix avoids any possible problems with how cc65 will handle old-style (K & R) function declarations, in the future.
2019-07-16 13:16:02 -04:00
bbbradsmith
7a863e5cda
bug895 test: more specific description comment
2019-05-27 10:03:25 +02:00
bbbradsmith
df90a005cd
bug895 testing against more permutations of comparison
2019-05-27 10:03:25 +02:00
bbbradsmith
1461ad6fcc
unit test to catch regression of bug #895
2019-05-27 10:03:25 +02:00
Christian Groessler
392e6e10fc
again, some TABs slipped into the code...
2019-04-30 18:21:13 +02:00
IrgendwerA8
37f80534c9
Fix for #830 supplied by UvB
2019-04-25 15:19:53 +02:00
Lauri Kasanen
654d972288
C90 param, void
2019-04-21 12:46:03 -04:00
Lauri Kasanen
3b3b16ee9c
Add support for computed gotos
...
This is a GCC extension that allows C to use fast jump tables.
2019-04-21 12:46:03 -04:00
Lauri Kasanen
f29220be1b
Add test showing optimizer failure, OptUnusedLoads removes needed loads
2019-04-21 12:46:03 -04:00
IrgendwerA8
1530020a1f
Fix for multiplication optimization issue #367
2019-04-02 16:34:22 +02:00
IrgendwerA8
3d8c3a4948
Code review adaptations, removed "cc65_" prefix from functions
2019-03-29 22:53:04 +01:00
IrgendwerA8
db8bd84a82
Changes due to code review.
2019-03-29 22:53:04 +01:00
IrgendwerA8
399250a105
Optimized mul20 & mul40 and extracted to new library.
2019-03-29 22:53:04 +01:00
Christian Groessler
7445550831
remote TABs in doc/ and test/
2019-02-12 22:50:49 +01:00
Greg King
a6b04f6e97
Changed most "backticks" (grave accents) into apostrophes.
...
Quotations that are embraced by tick marks now look better, in most fonts.
2019-01-05 14:57:12 -05:00
laubzega
6d8c315cdb
Testcase added.
2018-10-16 09:45:30 +02:00
Oliver Schmidt
753b48647f
Increased consistency.
...
The test program works as-is only if the timezone isn't set (to something different than UTC). However, using localtime() instead of gmtime() makes it at least consistent in that the original time (given to mktime()) is identical to the time retrieved.
2018-08-02 15:45:57 +02:00
Oliver Schmidt
b04028b5d8
Added test for mktime() and gmtime().
...
A recent regression makes gmtime()/localtime() fail. So it's obviously desirable to have a test for that code.
2018-07-24 03:26:40 +02:00
Greg King
362b6afacf
Made a C union declaration know the sizes of anonymous struct/union members when it determines its size.
...
The bug was located, and the fix was written, by Francesco.
2018-05-13 18:54:45 -04:00
greg-king5
ca31e3af1e
Fixed a bug that didn't preserve the accumulator's value when a simple 16-bit fetch-and-store is optimized. ( #637 )
...
Fix a 16-bit fetch-and-store cc65 optimizer bug.
2018-05-12 13:46:16 -04:00
Oliver Schmidt
f44406c46f
Merge pull request #446 from clbr/lz4
...
Add LZ4 decompression support
2017-06-10 23:23:12 +02:00
greg-king5
a397a8c1a1
Added missing -O configuration.
2017-06-07 10:20:20 -04:00
Lauri Kasanen
e75a59d7a8
Add LZ4 decompression support
2017-06-06 18:48:25 +03:00
Lauri Kasanen
05b73276c2
Update test description
2017-05-20 09:53:30 +03:00
Lauri Kasanen
80e6afd335
Add two new trampoline test cases
2017-05-19 14:34:10 +03:00
Oliver Schmidt
11b01b908d
Merge pull request #424 from clbr/trampoline
...
Trampoline support
2017-05-18 16:29:34 +02:00
Lauri Kasanen
219b239a34
Adjustments in response to latest comments
2017-05-18 17:14:26 +03:00
Lauri Kasanen
4c05c46cd1
Remove RAM-trampoline array support
2017-05-18 16:11:39 +03:00
Lauri Kasanen
ca41af41c2
Rename pragma trampoline to wrapped-call, value to identifier
2017-05-16 20:10:24 +03:00
Lauri Kasanen
077b14ccfa
test/val/postincdec: Test for the final val value
2017-05-08 10:19:26 +03:00
Lauri Kasanen
7adcde1707
Add explicit postinc/dec testcase
2017-05-07 20:35:49 +03:00
Lauri Kasanen
9c86c03a96
Add test case
2017-05-02 20:43:41 +03:00
Greg King
1aab287189
Fixed the handling of "while (0) {}".
...
It's a corner case; but, conditional macroes might create it -- better safe than sorry.
2017-04-07 09:26:58 -04:00
Oliver Schmidt
e806515541
Removed workaround.
2017-04-04 15:53:14 +02:00
Oliver Schmidt
93193727be
Removed workaround.
2017-04-04 15:52:37 +02:00
Oliver Schmidt
cd27fef6a8
Removed workaround.
2017-04-04 15:52:01 +02:00
Oliver Schmidt
3789174162
Removed workaround.
2017-04-04 15:51:00 +02:00
Oliver Schmidt
14268510f5
Removed workaround.
2017-04-04 15:45:24 +02:00
Oliver Schmidt
233dd5062a
Merge pull request #389 from IrgendwerA8/stringimprovements
...
Optimization of string functions (size & speed).
2017-04-04 15:39:37 +02:00
Oliver Schmidt
5dbacb538e
Merge pull request #411 from pfusik/bss-name-regression
...
Fix regression of #pragma bss-name
2017-03-22 13:44:48 +01:00
Piotr Fusik
8e35a82c91
Fix regression of #pragma bss-name
...
Closes #409
2017-03-21 22:35:25 +01:00
Oliver Schmidt
5b3611265b
Revert to recursively expanded var.
...
4a6bca0b56
needed to move to a simply expanded variable but cc82cd9992
made that unnecessary again.
2017-03-21 20:54:55 +01:00
IrgendwerA8
cc82cd9992
Fixed addressing error for TSB/TSR and enabled tests again.
2017-03-20 21:53:07 +01:00
Oliver Schmidt
0851e3d694
Allow to control test Makefile output via QUIET (like libsrc).
2017-03-20 11:22:04 +01:00
Oliver Schmidt
50174d9860
Hide stdout of tests returning an exit code.
...
Now that we doubled our tests by running them for both 6502 and 65C02 Travis CI complains (again) about a too long build output. So let's reduce it by omitting the (useless) stdout of tests.
2017-03-19 20:32:23 +01:00
Oliver Schmidt
4a6bca0b56
Run test for the 65C02 code generator / runtime too.
...
Now that sim65's 65C02 support is actually functional we can run test for the 65C02 support in the compiler and the runtime.
We learn the hard way this is a good idea as there are tests failing when built with optimizations for the 65C02:
- val/compare7
- val/compare8
- val/compare9
- val/compare10
- val/or1
2017-03-19 20:07:19 +01:00
Oliver Schmidt
66634ef683
Cleaned up test Makefiles.
2017-03-19 17:48:44 +01:00
Greg King
750a527100
Made C's sizeof operator work with initialized void variables.
...
Added regression tests that check cc65's handling of void variables.
2017-03-12 14:41:32 -04:00
Piotr Fusik
ce0cf85386
Add regression test for #204 .
2017-03-09 20:40:20 +01:00
IrgendwerA8
371e8efb79
temporarily disable optimizations altogether until a fine grain control
...
is implemented on Makefile level only disabling the compiler option -Os
2017-03-07 19:16:31 +01:00
IrgendwerA8
81115aa826
Added further optimizations and unit tests.
2017-03-05 02:09:12 +01:00
Chris Cacciatore
7919812378
Updated switch statement comments.
...
* Now comments represent the fact that there may not be curly braces.
2016-08-19 20:21:10 -07:00
Chris Cacciatore
ac4bdbd411
Now testing switch statements with empty bodies.
2016-08-15 11:36:50 -07:00
Chris Cacciatore
c4823c6fd4
Added Duff's Device to tests.
2016-08-15 11:26:03 -07:00
Greg King
e050655757
Added a cc65 regression test for pointer and offset addition operations.
2016-01-01 11:39:55 -05:00
Greg King
5e7c7d78fc
Added a regression test program for the changes in the right-shift optimizer.
2015-12-14 11:46:30 -05:00
Greg King
1baecf4a15
Added regression tests of diagnostics for conflicts between extern/public and static declarations.
2015-08-13 03:39:35 -04:00
Oliver Schmidt
d3eebc8fcf
Merge branch 'pointer' of https://github.com/mrdudz/cc65 into mrdudz-pointer
2015-07-15 12:24:09 +02:00
Oliver Schmidt
50b0536222
Ignore return values only with CMD.EXE MkII.
...
CMD.EXE considers file deletion commands not able to delete anything as there's nothing to delete as failed. Of course we don't want to bail out of the Makefile because of missing files to delete. Therefore we ignore the return values with '-'. This change limits this workaround to CMD.EXE.
2015-07-11 00:01:39 +02:00
Oliver Schmidt
992f0f03c5
Ignore return values only with CMD.EXE.
...
CMD.EXE considers file deletion commands not able to delete anything as there's nothing to delete as failed. Of course we don't want to bail out of the Makefile because of missing files to delete. Therefore we ignore the return values with '-'. This change limits this workaround to CMD.EXE.
2015-07-10 22:39:53 +02:00
mrdudz
6ab197f364
patch from Uz that makes some illegal operations on pointers error out
2015-07-10 14:27:49 +02:00