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
acqn
e38f601fcc
Fixed padding at the ends of structs with bit-fields.
2020-07-30 08:38:24 +02:00
acqn
8a511bb63d
Fixed nested array initializers.
2020-07-30 08:38:24 +02:00
acqn
9075a853dc
Allows one trailing comma before the closing curly of a struct/union initializer.
2020-07-30 08:38:24 +02:00
acqn
25d10d9d9a
Fixed nested struct/union initialization.
...
Fixed bit-fields offsets in anonymous structs.
2020-07-30 08:38:24 +02:00
acqn
d6d667a688
Improved error handling with symbol redefinitions.
2020-07-30 08:22:29 +02:00
acqn
92de4fa0d0
Enabled to recognize labels when parsing local variable declarations.
2020-07-30 08:22:29 +02:00
acqn
19c81ed866
Fixed type mask usage.
2020-07-30 08:13:23 +02:00
Jesse Rosenstock
fb9b50ff9c
Move type checks before bit-field width parsing
2020-07-30 08:10:38 +02:00
Jesse Rosenstock
a2561d07f3
Remove special-case bit-field width code
...
cbb33f8
restricted allowed bit-field types to int,
so this is equivalent for now, but forward-compatible.
Fixes FIXME
Also move the int type check before parsing the colon.
2020-07-30 08:10:38 +02:00
Oliver Schmidt
8eab28012a
Adjusted project name.
2020-07-28 23:29:16 +02:00
acqn
cbb33f86e8
Disabled using non-int-size types to declare bit-fields.
2020-07-28 23:26:25 +02:00
acqn
c37f9f1a41
Check if the integer size is known in GetIntegerTypeMin/Max() to prevent potential misuse.
2020-07-28 23:26:25 +02:00
acqn
0f412b6beb
Small fixes according to PR review.
2020-07-28 23:26:25 +02:00
acqn
7e243e0f2c
Allowed using all integer types including enum and char types to define bit-fields,
...
but kept the currently behavior that all of them are treated as unsigned int.
2020-07-28 23:26:25 +02:00
acqn
d8184fbe54
No longer insert all enums in the global symbol table.
2020-07-28 23:26:25 +02:00
acqn
daa65199b3
Fixed underlying types of enums.
...
Made enumerator diagnostics more sensible.
Fixed Issue #1048 as a natural result.
2020-07-28 23:26:25 +02:00
Greg King
44c82eb1c3
Made da65 disassemble branch instructions with relative address expression operands if there's no label.
2020-07-21 18:43:32 -04:00
acqn
07e18774f7
Added spaces around '|' with regex replacement.
2020-07-21 18:23:52 +02:00
acqn
c66d0881b9
Made the enum/enumerator types clearer and improved DumpSymEntry() output.
2020-07-21 18:23:52 +02:00
acqn
18bd76bb90
Minor fixes and improvements.
2020-07-21 18:23:52 +02:00
acqn
65081aebed
Made able to recognize global declarations of static arrays. Fixed Issue #975 .
2020-07-21 18:23:52 +02:00
acqn
0250c87ac6
Fixed SC_* type masks by making them all bitwise-exclusive.
2020-07-21 18:23:52 +02:00
acqn
78342fa82c
Fix for "auto" variables made "static" with the "-Cl" options.
2020-07-20 15:01:47 +02:00
acqn
71c2d27705
Removed an ED_IsBitField() test according to PR review.
2020-07-20 14:54:32 +02:00
acqn
2245783345
Fixed ability to do actual type conversion from bit-fields to integers. Note this doesn't try to fix the signedness issues.
2020-07-20 14:54:32 +02:00
acqn
b67b8ddd38
Disabled applying 'sizeof' to bit-fields.
2020-07-20 14:54:32 +02:00
acqn
62a6e37487
Made the code handling '&expression' slightly tidier.
2020-07-20 14:54:32 +02:00
acqn
3c52ad1d9e
New utility ED_DisBitField() to make an expression no longer a bit-field.
2020-07-20 14:54:32 +02:00
Greg King
fd0a6955da
Changed "IsTypeStruct() || IsTypeUnion()" expressions into shorter "IsClassStruct()" expressions.
...
Type-classes are groups of types that can be handled in the same way (similar syntax).
2020-07-19 14:30:22 -04:00
acqn
29c50ab25f
Corrected the error message about struct/union members not found.
2020-07-19 12:57:59 +02:00
acqn
768e03a474
Small fixes and tidy-up based on PR review.
...
Renamed GetReplacementType() to GetStructReplacementType().
Clarified in comments that most *Struct* facilities work for unions as well.
Made it clear in some error messages with regards to structs/unions.
2020-07-19 10:58:33 +02:00
acqn
0c3e1b491f
Disabled -Wstruct-param by default.
2020-07-19 10:58:33 +02:00
acqn
b45d373fd6
Fixed passing by value structs/unions <= 4 bytes in size to functions. Larger ones are forbidden for now.
2020-07-19 10:58:33 +02:00
acqn
9f67b45ea0
Fixed returning by value structs/unions <= 4 bytes in size from functions. Larger ones are forbidden for now.
2020-07-19 10:58:33 +02:00
acqn
66ecc0e52c
New utility to get the proper replacement type for passing structs/unions by value.
...
New utility to get basic type names such as 'struct', 'union' and so on.
2020-07-19 10:58:33 +02:00
acqn
333fa97326
Whitespaces/newlines fixes.
2020-07-18 12:54:29 +02:00
acqn
9198b3be00
Fixed '&function' and '&array'.
2020-07-18 12:54:29 +02:00
acqn
d23b577331
More compiler flags on address types to match the location types of expressions.
2020-07-18 12:54:29 +02:00
acqn
2108489523
Fix for Issue #1075 and #1077 .
2020-07-18 12:54:29 +02:00
acqn
727040d1ac
Comment fix.
2020-07-12 12:35:42 +02:00
acqn
7d652d42dc
Added a warning on promoting a decimal constant without a 'u'/'U' suffix to unsigned long.
2020-07-12 12:35:42 +02:00
Jesse Rosenstock
f5afc75cbd
ar65/LibClose: Include filename in error messages
...
```
ar65: Error: Problem deleting temporary library file '../lib/apple2enh.lib.temp': No such file or directory
```
is the error I'm getting with `make -j 19` when trying
to debug #1080 .
2020-07-09 21:56:02 +02:00
acqn
85e73e91f8
Only enable signed div replacements with shift according to the code size factor settings.
...
Also with better comments.
2020-07-09 10:00:50 +02:00
acqn
09bcff0862
Added support for changing divisions by negative power-of-2 denominators into bit shifts,
...
and fixed #169 including the case of -2147483648 which is negative but appears positive.
2020-07-09 10:00:50 +02:00
acqn
30835e3d9d
More optimized codegen for the correct cases of the Issue #169 fix.
2020-07-09 10:00:50 +02:00
acqn
e98fe04cc2
Almost fixed Issue #169 . The only denominator not working right now is -2147483648.
2020-07-09 10:00:50 +02:00
Jesse Rosenstock
82c8bd6e2b
Replace unary negation with subtraction
...
Remove MSVC pragma.
2020-07-09 09:49:24 +02:00
Jesse Rosenstock
2c16453a9f
Guard MSVC pragma with ifdef _MSC_VER
...
Fix broken travis-ci with gcc -Werror [-Werror=unknown-pragmas].
2020-07-09 09:49:24 +02:00
Jesse Rosenstock
9e5b8d99a3
Fix MSVC build broken by #1058
...
MSVC complains about unary negation of unsigned, but it's
intended. Suppress the warning.
https://github.com/cc65/cc65/pull/1058#discussion_r451757967
"Tested" with godbolt.org.
2020-07-09 09:49:24 +02:00