PROCEDURE GetDebugFunctionLineNumbers () : BOOLEAN ;
+(*
+ GetEnableForward - return EnableForward.
+*)
+
+PROCEDURE GetEnableForward () : BOOLEAN ;
+
+
+(*
+ SetEnableForward - set EnableForward to value.
+*)
+
+PROCEDURE SetEnableForward (value: BOOLEAN) ;
+
+
(*
FinaliseOptions - once all options have been parsed we set any inferred
values.
UselistFilename,
RuntimeModuleOverride,
CppArgs : String ;
+ EnableForward,
DebugFunctionLineNumbers,
DebugTraceQuad, (* -fm2-debug-trace=quad. *)
DebugTraceLine, (* -fm2-debug-trace=line. *)
END GetDumpDecl ;
+(*
+ GetEnableForward - return EnableForward.
+*)
+
+PROCEDURE GetEnableForward () : BOOLEAN ;
+BEGIN
+ RETURN EnableForward
+END GetEnableForward ;
+
+
+(*
+ SetEnableForward - set EnableForward to value.
+*)
+
+PROCEDURE SetEnableForward (value: BOOLEAN) ;
+BEGIN
+ EnableForward := value
+END SetEnableForward ;
+
+
BEGIN
cflag := FALSE ; (* -c. *)
RuntimeModuleOverride := InitString (DefaultRuntimeModuleOverride) ;
DumpQuad := FALSE ;
DumpGimple := FALSE ;
M2Dump := NIL ;
- M2DumpFilter := NIL
+ M2DumpFilter := NIL ;
+ EnableForward := TRUE
END M2Options.
FROM DynamicStrings IMPORT String, Slice, InitString, KillString, EqualCharStar, RIndex, Mark, ConCat ;
FROM M2Printf IMPORT printf0, printf1, printf2 ;
-FROM M2Options IMPORT Iso ;
+FROM M2Options IMPORT Iso, GetEnableForward ;
FROM M2Reserved IMPORT ImportTok, ExportTok, QualifiedTok, UnQualifiedTok,
NulTok, VarTok, ArrayTok, BuiltinTok, InlineTok ;
BEGIN
ProcSym := OperandT (1) ;
tok := OperandTok (1) ;
- IF NOT Iso
+ IF NOT GetEnableForward ()
THEN
MetaErrorT0 (forwardPos,
- 'forward declaration is only allowed in the ISO dialect of Modula-2')
+ 'forward declaration has not been enabled, use -fiso or -fenable-forward to enable forward procedure declarations')
END ;
IF GetProcedureDefined (ProcSym, ForwardProcedure)
THEN