Mercurial > ~dholland > hg > tradcpp > index.cgi
annotate TODO @ 203:3a25180d3a5c
Abort on line numbering or column numbering overflow.
Line numbers are limited to values that fit in "unsigned int". Also
reject input lines longer than 2^32-1 characters. It seems reasonable
to presume that any input that violates these constraints is someone
screwing around and not a serious attempt to compile or preprocess
anything useful. Done in response to n2129, but without getting into
any of the silliness found there.
author | David A. Holland |
---|---|
date | Tue, 01 Aug 2017 14:51:04 -0400 |
parents | 6947cd2cde79 |
children |
rev | line source |
---|---|
23 | 1 not implemented: |
2 - mode.input_allow_dollars. | |
3 - column counts do not take tabstops into account. | |
4 - mode.output_linenumbers. | |
5 - mode.do_depend. | |
6 - mode.do_macrolist. | |
7 - mode.do_trace. | |
8 - warns.endiflabels. (they cause errors) | |
9 - warns.unused. | |
10 - the -iremap option. | |
11 - $CPP_RESTRICTED | |
12 - other environment variables | |
13 | |
14 tidy up: | |
15 - get rid of inlinedefs.h | |
16 - use of places in and below macro.c is pretty bogus. | |
17 - macro code should be reworked. | |
156 | 18 - place_changefile is manky and wastes memory. Also, in an ideal |
19 world we'd remember the place #line changed the name and refer | |
20 to it when printing errors. | |
32 | 21 |
22 fix: | |
23 - "#if 0 && 1/0" should not crash; fix eval method. | |
146
15f51ed08ecf
Add more tests for some degenerate cases we don't handle right.
David A. Holland
parents:
145
diff
changeset
|
24 - quote characters and comment delimiters that are emitted by |
15f51ed08ecf
Add more tests for some degenerate cases we don't handle right.
David A. Holland
parents:
145
diff
changeset
|
25 macros are not recognized. See: |
15f51ed08ecf
Add more tests for some degenerate cases we don't handle right.
David A. Holland
parents:
145
diff
changeset
|
26 t34 (should produce a quote and FOO Q) |
15f51ed08ecf
Add more tests for some degenerate cases we don't handle right.
David A. Holland
parents:
145
diff
changeset
|
27 t35 (similarly, this test may be redundant once it's fixed) |
15f51ed08ecf
Add more tests for some degenerate cases we don't handle right.
David A. Holland
parents:
145
diff
changeset
|
28 t36 (C(3) should produce nothing) |
15f51ed08ecf
Add more tests for some degenerate cases we don't handle right.
David A. Holland
parents:
145
diff
changeset
|
29 t37 (BC foo EC should produce nothing) |
15f51ed08ecf
Add more tests for some degenerate cases we don't handle right.
David A. Holland
parents:
145
diff
changeset
|
30 Joerg says comments like in t36 should be stripped exactly |
15f51ed08ecf
Add more tests for some degenerate cases we don't handle right.
David A. Holland
parents:
145
diff
changeset
|
31 twice, once when the macro is defined and again when it's |
15f51ed08ecf
Add more tests for some degenerate cases we don't handle right.
David A. Holland
parents:
145
diff
changeset
|
32 expanded. Note that gcc's cpp -traditional is getting t37 |
15f51ed08ecf
Add more tests for some degenerate cases we don't handle right.
David A. Holland
parents:
145
diff
changeset
|
33 wrong, and it gets t36 wrong with -C. |
185
16b4451e34b8
Add the ability to output line numbers, sort of.
David A. Holland
parents:
180
diff
changeset
|
34 - remove the intentionally undocumented -p option and generate |
190 | 35 proper linenumber output. (also, in this code what happens if |
36 a comment spans files? I bet currently it will emit the line | |
37 number into the comment.) |