Commit Graph

2571 Commits

Author SHA1 Message Date
JL2210
2a734ecba2 Fix memory errors
This includes not checking the result of malloc and
using the wrong type in sizeof. Only the latter was
caught by scan-build.

Also use more idiomatic sizeof().

Signed-off-by: JL2210 <larrowe.semaj11@gmail.com>
2020-04-12 19:45:37 -04:00
JL2210
d21015e34a Fix use of zero-allocated memory
It's possible that the unsigned integer may overflow to zero,
and then we might use zero-allocated memory.

This is incredibly unlikely, and I would even go so far as to say
that this is a false positive. Fix it anyway, to silence this warning:

src/link/patch.c:92:24: warning: Use of zero-allocated memory
        stack.buf[stack.size] = value;
        ~~~~~~~~~~~~~~~~~~~~~ ^

Deal with overflow, and check for zero to get rid of the warning.

Signed-off-by: JL2210 <larrowe.semaj11@gmail.com>
2020-04-12 19:36:47 -04:00
ISSOtm
023a3c037f Properly handle missing symbols
Fixes #512
2020-04-12 22:52:32 +02:00
ISSOtm
828edb7403 Remove spurious error from div by zero test 2020-04-12 01:05:06 +02:00
ISSOtm
a034ce0478 Deprecate '*' for comments 2020-04-09 17:57:15 +02:00
Eldred Habert
d6cd5823e3 Merge pull request #508 from JL2210/mod-by-zero-fix-2
Fix modulo by zero
2020-04-09 14:52:12 +02:00
JL2210
5dd941b311 Fix modulo by zero
Yet another case caught by scan-build:

src/link/patch.c:188:21: warning: Division by zero
                        value = popRPN() % value;
                                ~~~~~~~~~^~~~~~~

Just copy over the code from the division case, with a few modifications.

Signed-off-by: JL2210 <larrowe.semaj11@gmail.com>
2020-04-09 08:50:23 -04:00
ISSOtm
f9f27d6f5a Clean up symbol system
Get rid of Hungarian notation
Improve encapsulation (the rest of the world should not touch PC directly)
2020-04-09 10:42:37 +02:00
Eldred Habert
5ea8490e2b Merge pull request #507 from JL2210/null-pointer-fix-1
Fix possible null pointer dereference
2020-04-08 23:35:21 +02:00
JL2210
5863cd10b8 Fix possible null pointer dereference
It's possible that if the FILE passed to yy_create_buffer is at the
end-of file, there may be a null pointer dereference.

This should hopefully fix that.

Found with clang-tools' scan-build:

src/asm/lexer.c:281:25: warning: Array access (via field 'pBuffer')
 results in a null pointer dereference
        pBuffer->pBuffer[size] = 0;
                 ~~~~~~~       ^
1 warning generated.

Signed-off-by: JL2210 <larrowe.semaj11@gmail.com>
2020-04-08 17:30:43 -04:00
ISSOtm
40f8e33e6c Fix periods not being accepted as second char of label names 2020-04-08 15:14:07 +02:00
ISSOtm
0157ba63d3 Document whitespace before local labels 2020-04-08 15:08:29 +02:00
ISSOtm
9e3d8b22cb Document new intra-section align
Also sneak in two code style fixes forgotten in last commit
2020-04-08 15:01:36 +02:00
ISSOtm
665412c073 Implement mid-section alignment directive
Fixes #254.
2020-04-08 12:29:00 +02:00
ISSOtm
2b0c34ecb5 Fix a few code style errors 2020-04-08 00:44:41 +02:00
ISSOtm
b0ec8468e6 Allow specifying offset in addition to alignment 2020-04-08 00:40:41 +02:00
ISSOtm
e82ad21704 Use a single byte for alignment 2020-04-07 21:19:09 +02:00
ISSOtm
e098bf47ba Allow references to be overridden by constant symbols
RGBLINK is capable of handling it now.
Though it'd be ideal for RGBASM to directly catch it.

Fixes #496.
2020-04-07 20:57:20 +02:00
ISSOtm
190678107b Prevent RGBLINK from crashing when getting the bank of a constant 2020-04-07 20:41:29 +02:00
ISSOtm
9f82fa4cf7 Fix BANK(@) outside sections causing crashes 2020-04-07 15:51:17 +02:00
Eldred Habert
562835308b Merge pull request #504 from runlevel5/gcc10-fix
Fix multiple definitions for GCC10
2020-04-07 15:18:23 +02:00
ISSOtm
927c65e863 Fix incorrect PC in LOAD blocks at link time 2020-04-07 14:44:51 +02:00
ISSOtm
5b6c1569a4 Make failure to open file a fatal error 2020-04-07 11:36:44 +02:00
Trung Lê
65121e6d5d Fix multiple definitions for GCC10 2020-04-07 14:48:30 +10:00
ISSOtm
82e0e4ffaf Make some RGBLINK errors non-fatal 2020-04-06 00:48:10 +02:00
ISSOtm
ffb199a26a Avoid Useless Use of backticks in rgblink testing 2020-04-06 00:44:59 +02:00
ISSOtm
175933d2b1 Remove old scripts for updating references for tests
I much rather prefer correcting everything by hand, and gauging
whether the change is good on a case by case basis
2020-04-06 00:41:37 +02:00
Eldred Habert
c86e6fef0a Merge pull request #502 from JL2210/more-conventional-permissions
Use more conventional permissions and man-page directory
2020-04-06 00:25:33 +02:00
JL2210
1e3ce2a36f Use more conventional permissions and man-page directory
As 444 and 555 seem to be used for no apparent reason, use the more
conventional 644 and 755.

/man is typically unused or a symlink to /share/man now, so just use
/share/man.

Signed-off-by: JL2210 <larrowe.semaj11@gmail.com>
2020-04-05 17:02:12 -04:00
ISSOtm
153915dc2f Improve portability of new make dist 2020-04-04 14:48:15 +02:00
ISSOtm
ced38bc6ee Add new Makefile target for release tarballs 2020-04-04 14:23:28 +02:00
ISSOtm
4e96cf9875 Release 0.4.0 v0.4.0 2020-04-03 12:11:50 +02:00
ISSOtm
80170eb6eb Regenerate man page HTML renders 2020-04-03 12:03:59 +02:00
ISSOtm
bdad1499fe Merge branch 'release' 2020-04-03 11:58:53 +02:00
Eldred Habert
1f5ca39559 Merge pull request #494 from ISSOtm/docs
Overhaul man pages
2020-04-03 11:56:41 +02:00
ISSOtm
5013b64f55 Update disassemblies to latest commits 2020-04-02 21:26:38 +02:00
ISSOtm
7eb73d766e Make compilation optimized unless debugging
Note: I wanted to enable `-Og` on `develop`, but this generated warnings
(thus, errors) that aren't in `-O0`. Needs further investigation, but
annoyingly some of those are within `extern/` code, thus requiring
different flags, which AFAIK is only possible (sanely) with GNU Make.
2020-04-02 16:56:04 +02:00
ISSOtm
bcfeb49d6b Allow labels to be passed to DEF 2020-04-02 16:54:41 +02:00
ISSOtm
702d9e0542 Fix wrong error function used in RGBGFX 2020-03-31 17:28:31 +02:00
ISSOtm
c0aff678e9 Improve arg-shift test 2020-03-29 12:34:13 +02:00
ISSOtm
a3d8836671 Prevent assertions outside sections from crashing 2020-03-29 12:18:24 +02:00
ISSOtm
db1eb8fbcb Revert "Prevent RGBASM from outputting corrupted files"
This reverts commit 06fe27c516.

According to Microsoft's documentation
https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/tmpfile?view=vs-2019
`tmpfile` attempts to create the temporary file at the **root** folder
This seems to assume that the user has admin rights; might be a compat
thing, idk, but it breaks on people's computers.
(CI didn't catch it, annoyingly.)

Reverting to make RGBASM usable on most Windows computers.
(Sanely-configured ones, at least.)
Another solution to #446 needs to be figured out, yay...
2020-03-27 23:36:11 +01:00
ISSOtm
95f347dc6a Evaluate assertions after placing sections 2020-03-27 20:00:29 +01:00
ISSOtm
6579120d9e Simplify symbol-writing logic 2020-03-27 12:32:14 +01:00
ISSOtm
84cd9f2db9 Fix segfaults when using PC outside a section 2020-03-27 12:30:09 +01:00
ISSOtm
06fe27c516 Prevent RGBASM from outputting corrupted files
Properly fixes #451
2020-03-27 11:19:02 +01:00
ISSOtm
5039af6af1 Document new "unionized section" feature 2020-03-26 23:50:30 +01:00
ISSOtm
4df74d44ec Improve opcode reference 2020-03-26 23:11:01 +01:00
ISSOtm
9113647d41 Fix incorrect macro used for x-ref 2020-03-26 23:11:01 +01:00
ISSOtm
26af2bff5e Prevent text from bumping sides on mobile devices 2020-03-26 23:11:01 +01:00