trial: unblock the DOS build (local only, not for merge)
This commit is contained in:
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
CC ?= cc
|
CC ?= cc
|
||||||
CFLAGS ?= -O2 -Wall -Wextra -std=c89
|
CFLAGS ?= -O2 -Wall -Wextra -std=c89
|
||||||
CPPFLAGS ?= -Isrc
|
CPPFLAGS ?= -Isrc
|
||||||
SRC = src/arena.c src/diag.c src/lexer.c src/ast.c src/parser.c src/types.c src/m7.c src/own.c src/check_m7.c src/lower.c src/emit_c_m7.c src/driver.c
|
SRC = src/arena.c src/diag.c src/lexer.c src/ast.c src/parser.c src/types.c src/m7.c src/own.c src/check_m7.c src/lower.c src/emitcm7.c src/driver.c
|
||||||
OBJ = $(SRC:.c=.o)
|
OBJ = $(SRC:.c=.o)
|
||||||
|
|
||||||
.PHONY: all clean dos-build
|
.PHONY: all clean dos-build
|
||||||
|
|||||||
+1
-1
@@ -32,7 +32,7 @@ if errorlevel 1 goto build_fail
|
|||||||
wcl -q -za -wx -bt=dos -ml -k32768 -c -fo=lower.obj src\lower.c
|
wcl -q -za -wx -bt=dos -ml -k32768 -c -fo=lower.obj src\lower.c
|
||||||
if errorlevel 1 goto build_fail
|
if errorlevel 1 goto build_fail
|
||||||
rem Use an unambiguous short object name for the M7 emitter source.
|
rem Use an unambiguous short object name for the M7 emitter source.
|
||||||
wcl -q -za -wx -bt=dos -ml -k32768 -c -fo=emitc.obj src\emit_c_m7.c
|
wcl -q -za -wx -bt=dos -ml -k32768 -c -fo=emitc.obj src\emitcm7.c
|
||||||
if errorlevel 1 goto build_fail
|
if errorlevel 1 goto build_fail
|
||||||
wcl -q -za -wx -bt=dos -ml -k32768 -c -fo=driver.obj src\driver.c
|
wcl -q -za -wx -bt=dos -ml -k32768 -c -fo=driver.obj src\driver.c
|
||||||
if errorlevel 1 goto build_fail
|
if errorlevel 1 goto build_fail
|
||||||
|
|||||||
@@ -811,6 +811,7 @@ static FeType *check_index(FeCheckerState *s, FeNode *n)
|
|||||||
static FeType *check_identifier(FeCheckerState *s, FeNode *n, int read)
|
static FeType *check_identifier(FeCheckerState *s, FeNode *n, int read)
|
||||||
{
|
{
|
||||||
FeSym *sym;
|
FeSym *sym;
|
||||||
|
(void)read; /* TRIAL PATCH: silence W303 under the check_m7.c wrapper */
|
||||||
sym = find_symbol(s->scope, n->text ? n->text : "");
|
sym = find_symbol(s->scope, n->text ? n->text : "");
|
||||||
if (!sym) {
|
if (!sym) {
|
||||||
FeType *named=fe_type_intern(&s->c->types,n->text ? n->text : "");
|
FeType *named=fe_type_intern(&s->c->types,n->text ? n->text : "");
|
||||||
|
|||||||
@@ -98,6 +98,7 @@ static FeType *m7_check_expected(FeCheckerState *s, FeNode *value,
|
|||||||
return actual;
|
return actual;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* TRIAL PATCH: m7_error_same was dead (W202); removed for this run.
|
||||||
static int m7_error_same(FeCheckerState *s, FeType *a, FeType *b)
|
static int m7_error_same(FeCheckerState *s, FeType *a, FeType *b)
|
||||||
{
|
{
|
||||||
FeType *ea;
|
FeType *ea;
|
||||||
@@ -108,6 +109,7 @@ static int m7_error_same(FeCheckerState *s, FeType *a, FeType *b)
|
|||||||
eb=fe_m7_error_type(&s->c->types,b);
|
eb=fe_m7_error_type(&s->c->types,b);
|
||||||
return ea && eb && fe_type_equal(ea,eb);
|
return ea && eb && fe_type_equal(ea,eb);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
static FeType *m7_member_field(FeCheckerState *s, FeNode *n, FeType *base)
|
static FeType *m7_member_field(FeCheckerState *s, FeNode *n, FeType *base)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ M3 = "TESTS\\M3"
|
|||||||
M4 = "TESTS\\M4"
|
M4 = "TESTS\\M4"
|
||||||
M5 = "TESTS\\M5"
|
M5 = "TESTS\\M5"
|
||||||
M6 = "TESTS\\M6"
|
M6 = "TESTS\\M6"
|
||||||
|
M7 = "TESTS\\M7"
|
||||||
OUT = "OUT"
|
OUT = "OUT"
|
||||||
|
|
||||||
# Emitted-C basenames that were hand-shortened for DOS 8.3. Keyed by milestone
|
# Emitted-C basenames that were hand-shortened for DOS 8.3. Keyed by milestone
|
||||||
@@ -193,6 +194,17 @@ CASES: list[Case] = [
|
|||||||
"okbranch", "okdefer", "okglobcp", "oklast", "okr8free", "okr8join",
|
"okbranch", "okdefer", "okglobcp", "oklast", "okr8free", "okr8join",
|
||||||
"okr8meth", "okr8stat", "okrebor", "okrtlast", "okshare", "okslreb",
|
"okr8meth", "okr8stat", "okrebor", "okrtlast", "okshare", "okslreb",
|
||||||
"okstatic", "oktemp", "oktrim", "okwcall")],
|
"okstatic", "oktemp", "oktrim", "okwcall")],
|
||||||
|
|
||||||
|
# -- M7: optionals and error unions ---------------------------------------
|
||||||
|
*[_case(7, name, f"FEC.EXE --check {_fe(M7, name)}", False) for name in (
|
||||||
|
"badcatch", "baddef", "baddir", "badercod", "badernam", "badetype",
|
||||||
|
"badnull", "badoref", "badorel", "badproj", "badqmark", "badret",
|
||||||
|
"badsome", "badtry", "badzero")],
|
||||||
|
*[_case(7, name, _emit(_fe(M7, name), f"{OUT}\\{name.upper()}.C",
|
||||||
|
output_first=True)) for name in (
|
||||||
|
"okcatch", "okcatmov", "okcvoid", "okdeflt", "okiflet", "okmatch",
|
||||||
|
"oknull", "okorelse", "okpatvw", "okproj", "okrepl", "oktrdef",
|
||||||
|
"oktry")],
|
||||||
]
|
]
|
||||||
|
|
||||||
MAX_MILESTONE: int = max(case.milestone for case in CASES)
|
MAX_MILESTONE: int = max(case.milestone for case in CASES)
|
||||||
|
|||||||
Reference in New Issue
Block a user