summaryrefslogtreecommitdiff
path: root/libgm2
AgeCommit message (Collapse)Author
2025-11-04Daily bump.GCC Administrator
2025-11-03gcc: sync top-level with binutils-gdbSam James
This just pulls in Alan's: commit 87b6078fc212ccba5f043399c6370ee20f6b355a Author: Alan Modra <amodra@gmail.com> AuthorDate: Mon Nov 3 10:59:50 2025 +1030 Commit: Alan Modra <amodra@gmail.com> CommitDate: Mon Nov 3 10:59:50 2025 +1030 tidy m4 plugin config support ... It tidies up the configure test output. config/ChangeLog: * clang-plugin.m4: Sync with binutils. * gcc-plugin.m4: Ditto. ChangeLog: * configure: Regenerate. gcc/ChangeLog: * configure: Regenerate. libatomic/ChangeLog: * configure: Regenerate. libbacktrace/ChangeLog: * configure: Regenerate. libcc1/ChangeLog: * configure: Regenerate. libffi/ChangeLog: * configure: Regenerate. libgcobol/ChangeLog: * configure: Regenerate. libgfortran/ChangeLog: * configure: Regenerate. libgm2/ChangeLog: * configure: Regenerate. libgomp/ChangeLog: * configure: Regenerate. libgrust/ChangeLog: * configure: Regenerate. libiberty/ChangeLog: * configure: Regenerate. libitm/ChangeLog: * configure: Regenerate. libobjc/ChangeLog: * configure: Regenerate. libphobos/ChangeLog: * configure: Regenerate. libquadmath/ChangeLog: * configure: Regenerate. libsanitizer/ChangeLog: * configure: Regenerate. libssp/ChangeLog: * configure: Regenerate. libstdc++-v3/ChangeLog: * configure: Regenerate. libvtv/ChangeLog: * configure: Regenerate. lto-plugin/ChangeLog: * configure: Regenerate. zlib/ChangeLog: * configure: Regenerate.
2025-10-25Daily bump.GCC Administrator
2025-10-24PR modula2/122407: similar error messages are emitted for an unknown symbolGaius Mulley
This followup to PR modula2/122241 reduces error message clutter by filtering unknown symbol error ensuring that only one error message is emitted for an unknown symbol at a particular location. The filter is implemented using two binary trees. A new generic (based on the address type) binary dictionary module is added to the base libraries. gcc/m2/ChangeLog: PR modula2/122407 * Make-lang.in (GM2-LIBS-BOOT-DEFS): Add BinDict.def. (GM2-LIBS-BOOT-MODS): Add BinDict.mod. (GM2-COMP-BOOT-DEFS): Add FilterError.def. (GM2-COMP-BOOT-MODS): Add FilterError.mod. (GM2-LIBS-DEFS): Add BinDict.def. (GM2-LIBS-MODS): Add BinDict.mod. * gm2-compiler/M2Error.def (KillError): New procedure. * gm2-compiler/M2Error.mod (WriteFormat3): Reformat. (NewError): Rewrite and call AddToList. (AddToList): New procedure. (SubFromList): Ditto. (WipeReferences): Ditto. (KillError): Ditto. * gm2-compiler/M2LexBuf.mod (MakeVirtualTok): Return caret if all token positions are identical. * gm2-compiler/M2MetaError.mod (KillError): Import. (FilterError): Import. (FilterUnknown): New global. (initErrorBlock): Initialize symcause and token. (push): Capitalize comments. (pop): Copy symcause to toblock if discovered. (doError): Add parameter sym. (defaultError): Assign token if discovered. Pass NulSym to doError. (updateTokSym): New procedure. (chooseError): Call updateTokSym. (doErrorScopeModule): Pass sym to doError. (doErrorScopeForward): Ditto. (doErrorScopeMod): Ditto. (doErrorScopeFor): Ditto. (doErrorScopeDefinition): Ditto. (doErrorScopeDef): Ditto. (doErrorScopeProc): Ditto. (used): Pass sym[bol] to doError. (op): Assign symcause when encountering an error, warning or note. (MetaErrorStringT1): Rewrite. (MetaErrorStringT2): Ditto. (MetaErrorStringT3): Ditto. (MetaErrorStringT4): Ditto. (isUniqueError): New procedure function. (wrapErrors): Rewrite. (FilterUnknown): Initialize. * gm2-compiler/M2Quads.mod (BuildTSizeFunction): Add spell check hint specifier. * gm2-compiler/FilterError.def: New file. * gm2-compiler/FilterError.mod: New file. * gm2-libs/BinDict.def: New file. * gm2-libs/BinDict.mod: New file. libgm2/ChangeLog: PR modula2/122407 * libm2pim/Makefile.am (M2MODS): Add BinDict.mod. (M2DEFS): Add BinDict.def. * libm2pim/Makefile.in: Regenerate. Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2025-10-08Daily bump.GCC Administrator
2025-10-07all: Fix "specifc", "costant" and "constat" typos in commentsJonathan Wakely
gcc/ChangeLog: * config/i386/i386-features.cc (general_scalar_chain::vector_const_cost): Fix spelling in comment. * ipa-prop.h (enum jump_func_type): Likewise. * tree-vectorizer.cc (try_vectorize_loop_1): Likewise. gcc/cp/ChangeLog: * module.cc (trees_out::lang_vals): Fix spelling in comment. gcc/jit/ChangeLog: * docs/_build/texinfo/libgccjit.texi: Fix spelling. * docs/internals/index.rst: Likewise. libgm2/ChangeLog: * configure.host: Fix spelling in comment. libstdc++-v3/ChangeLog: * configure.host: Fix spelling in comment. gcc/testsuite/ChangeLog: * gfortran.dg/dynamic_dispatch_9.f03: Fix spelling in comment. * gfortran.dg/use_only_3.inc: Likewise
2025-10-05Daily bump.GCC Administrator
2025-10-05*: regenerate autotoolsSam James
libatomic/ChangeLog: * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * testsuite/Makefile.in: Regenerate. libcc1/ChangeLog: * Makefile.in: Regenerate. * aclocal.m4: Regenerate. libffi/ChangeLog: * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * include/Makefile.in: Regenerate. * man/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. libgcobol/ChangeLog: * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. libgfortran/ChangeLog: * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. libgm2/ChangeLog: * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * libm2cor/Makefile.in: Regenerate. * libm2iso/Makefile.in: Regenerate. * libm2log/Makefile.in: Regenerate. * libm2min/Makefile.in: Regenerate. * libm2pim/Makefile.in: Regenerate. libgomp/ChangeLog: * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * testsuite/Makefile.in: Regenerate. libgrust/ChangeLog: * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * libformat_parser/Makefile.in: Regenerate. * libproc_macro_internal/Makefile.in: Regenerate. libitm/ChangeLog: * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * testsuite/Makefile.in: Regenerate. libobjc/ChangeLog: * aclocal.m4: Regenerate. * configure: Regenerate. libphobos/ChangeLog: * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * libdruntime/Makefile.in: Regenerate. * src/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. libquadmath/ChangeLog: * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. libsanitizer/ChangeLog: * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * asan/Makefile.in: Regenerate. * configure: Regenerate. * hwasan/Makefile.in: Regenerate. * interception/Makefile.in: Regenerate. * libbacktrace/Makefile.in: Regenerate. * lsan/Makefile.in: Regenerate. * sanitizer_common/Makefile.in: Regenerate. * tsan/Makefile.in: Regenerate. * ubsan/Makefile.in: Regenerate. libssp/ChangeLog: * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. libstdc++-v3/ChangeLog: * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * doc/Makefile.in: Regenerate. * include/Makefile.in: Regenerate. * libsupc++/Makefile.in: Regenerate. * po/Makefile.in: Regenerate. * python/Makefile.in: Regenerate. * src/Makefile.in: Regenerate. * src/c++11/Makefile.in: Regenerate. * src/c++17/Makefile.in: Regenerate. * src/c++20/Makefile.in: Regenerate. * src/c++23/Makefile.in: Regenerate. * src/c++26/Makefile.in: Regenerate. * src/c++98/Makefile.in: Regenerate. * src/experimental/Makefile.in: Regenerate. * src/filesystem/Makefile.in: Regenerate. * src/libbacktrace/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. libvtv/ChangeLog: * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. * testsuite/Makefile.in: Regenerate. lto-plugin/ChangeLog: * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate.
2025-09-20Daily bump.GCC Administrator
2025-09-19PR modula2/121856: New wideset implementationGaius Mulley
The new wideset implementation uses an ARRAY OF BYTE (internally) to represent large sets. This replaces the huge struct of anonymous fields created by the old implementation and results in quicker declaration times for large set types. gcc/ChangeLog: PR modula2/121856 * doc/gm2.texi (Compiler options): New item -fwideset. gcc/m2/ChangeLog: PR modula2/121856 * Make-lang.in (GM2-LIBS-BOOT-DEFS): Add M2Diagnostic.def. Add Selective.def. (GM2-LIBS-BOOT-MODS): Add M2Diagnostic.mod. (GM2-LIBS-BOOT-C): Add Selective.c. (GM2-LIBS-DEFS): Add Selective.def. (GM2-LIBS-MODS): Add M2Diagnostic.mod. (MC-LIB-MODS): Add M2Diagnostic.mod. (m2/gm2-libs-boot/Selective.o): New rule. (BUILD-PGE-O): Add m2/pge-boot/GM2Diagnostic.o. Add m2/pge-boot/GM2Diagnostic.o. Add m2/pge-boot/GStringConvert.o. Add m2/pge-boot/Gdtoa.o. Add m2/pge-boot/Gldtoa.o. * Make-maintainer.in (PPG-LIB-DEFS): Add M2Diagnostic.def. Add StringConvert.def. (PPG-LIB-MODS): Add M2Diagnostic.mod. Add StringConvert.mod. (PGE-DEF): Add M2Diagnostic.def. (PGE-DEPS): Add GM2Diagnostic.cc. Add GM2Diagnostic.h. * gm2-compiler/FifoQueue.def (PutSetIntoFifoQueue): New procedure. (GetSetFromFifoQueue): New procedure function. * gm2-compiler/FifoQueue.mod (PutSetIntoFifoQueue): New procedure. (GetSetFromFifoQueue): New procedure function. * gm2-compiler/M2ALU.def (KillValue): New procedure. (PushSetTree): Rename parameter t to value. (ConstructSetConstant): Rewrite comment. * gm2-compiler/M2ALU.mod: Rewrite to use the new set type and introduce memory diagnostics. * gm2-compiler/M2Base.mod (InitBaseProcedures): Lookup M2WIDESET. * gm2-compiler/M2CaseList.mod (CheckCaseBoundsResolved): Change format specifier to allow the preceeding indefinite article to have a n concatenated providing the following string substitute begins with a vowel. (checkTypes): Ditto. * gm2-compiler/M2Check.mod (checkGenericUnboundedTyped): New procedure function. * gm2-compiler/M2Code.mod (OptimizationAnalysis): Replace with ... (ResourceAnalysis): ... this. * gm2-compiler/M2Comp.mod (PopulateResource): New procedure. (compile): Call PopulateResource. Call M2Diagnostic.Generate. * gm2-compiler/M2GCCDeclare.mod: Rewrite for new set type. * gm2-compiler/M2GenGCC.mod: Rewrite implementation for becomes, incl, excl, and, or, not, xor for the new set type. * gm2-compiler/M2MetaError.def: Extend comment documenting the v format specifier. * gm2-compiler/M2MetaError.mod (errorBlock): New field vowel. (initErrorBlock): Initialize field vowel. Reformat comments. (pop): Call checkVowel. (checkVowel): New procedure. (isVowel): New procedure function. (symDesc): Remove indefinite article. (op): Set vowel field in case clause. * gm2-compiler/M2Options.def (OptimizeSets): New global. (TimeReport): Ditto. (MemReport): Ditto. (SetMemReport): New procedure. (SetTimeReport): Ditto. (SetWideset): Ditto. (GetWideset): New procedure function. * gm2-compiler/M2Options.mod (SetOptimizing): Assign OptimizeSets depending upon the optimization level. (SetMemReport): New procedure. (SetTimeReport): Ditto. (SetWideset): Ditto. (GetWideset): New procedure function. (OptimizeSets): Initialize to FALSE. (TimeReport): Ditto. (MemReport): Ditto. * gm2-compiler/M2Quads.mod (M2Diagnostic): Import. (QuadsMemDiag): New global variable. (NewQuad): Bump QuadsMemDiag whenever a quad is allocated. (BuildAssignmentBoolean): New procedure. (doBuildAssignment): Ditto. Add v to the format specifier. (CheckCompatibleWithBecomes): Add v to the format specifier. (CheckProcTypeAndProcedure): Ditto. (BuildAddAdrFunction): Ditto. (BuildSubAdrFunction): Ditto. (BuildDifAdrFunction): Ditto. (BuildDesignatorArrayStaticDynamic): Ditto. (BuildDesignatorPointer): Ditto. (CheckVariableOrConstantOrProcedure): Ditto. (Init): Initialize QuadsMemDiag. * gm2-compiler/M2Range.mod (CodeTypeAssign): Add v to the format specifier. * gm2-compiler/M2Scaffold.mod (DeclareScaffoldFunctions): Generate more precise warning note. * gm2-compiler/M2SymInit.mod (PrintSymInit): Add record field warning. * gm2-compiler/M2System.mod (IsPseudoSystemFunctionConstExpression): Add TBitSize. * gm2-compiler/NameKey.mod: Add MemDiagnostic code commented out. * gm2-compiler/P1SymBuild.mod (StartBuildProcedure): Add v format specifier. * gm2-compiler/P2SymBuild.mod (BuildFieldRecord): Ditto. * gm2-compiler/P3Build.bnf (SetType): Reformat. * gm2-compiler/PathName.def (Copyright): Added. * gm2-compiler/PathName.mod: Remove blank line. * gm2-compiler/SymbolConversion.mod (gdbhook): New procedure. (BreakWhenSymBooked): Ditto. (CheckBook): Ditto. (Init): Rewrite. * gm2-compiler/SymbolTable.def (GetSetArray): New procedure. (PutSetArray): Ditto. (MakeSetArray): New procedure function. (PutSetInWord): New procedure. (GetSetInWord): New procedure function. (IsConstVar): Ditto. * gm2-compiler/SymbolTable.mod (SymSet): SetInWord new field. SetArray new field. Align new field. (SymMemDiag): New global variable. (Init): Initialize SymMemDiag. (IsConstVar): New procedure function. (IsVariableSSA): Replace InternalError with Return FALSE. (GetNthParamOrdered): Reimplement. (GetNthParamAnyClosest): Ditto. (GetOuterModuleScope): Ditto. (MakeSet): Ditto. (PutSetArray): New procedure. (GetSetArray): New procedure function. (MakeSetArray): Ditto. (PutSetInWord): New procedure. (GetSetInWord): New procedure function. * gm2-gcc/init.cc (_M2_M2Diagnostic_init): Define prototype. (init_FrontEndInit):Call _M2_M2Diagnostic_init. * gm2-gcc/m2block.cc (m2block_GetTotalConstants): New function. (m2block_GetGlobalTypes): Ditto. * gm2-gcc/m2block.def (GetTotalConstants): New procedure function. (GetGlobalTypes): New procedure function. * gm2-gcc/m2block.h (m2block_GetTotalConstants): New function prototype. (m2block_GetGlobalTypes): Ditto. * gm2-gcc/m2convert.cc (converting_ISO_generic): Reimplement. (m2convert_ToPIMByte): New function. * gm2-gcc/m2convert.def (ToLoc): New procedure function. (ToPIMByte): Ditto. * gm2-gcc/m2convert.h (m2convert_ToPIMByte): Ditto. * gm2-gcc/m2decl.h (m2decl_RememberVariables): Ditto. * gm2-gcc/m2expr.cc (m2expr_BuildLogicalShift): Reimplement. (m2expr_BuildLRotate): Ditto. (m2expr_BuildLRLn): Ditto. (m2expr_BuildLRRn): Ditto. (m2expr_BuildLogicalRotate): Ditto. (buildUnboundedArrayOf): Ditto. (BuildIfBitInSetLower): New function. (m2expr_BuildBinarySetDo): Reimplement. (m2expr_BuildIfInSet): Ditto. (m2expr_BuildIfNotInSet): New function. (m2expr_Build4LogicalOr): Reimplement. (m2expr_BuildSetNegate): Ditto. (m2expr_BuildLogicalOrAddress): Ditto. (m2expr_BuildLogicalOr): Ditto. (m2expr_BuildLogicalAnd): Ditto. (m2expr_BuildSymmetricDifference): Ditto. (m2expr_BuildLogicalDifference): Ditto. (boolean_enum_to_unsigned): Ditto. (m2expr_BuildIsSuperset): Ditto. (m2expr_BuildIsNotSuperset): Ditto. (m2expr_BuildIsSubset): Ditto. (m2expr_BuildIfBitInSetJump): Ditto. (m2expr_BuildIfNotConstInVar): Ditto. (m2expr_BuildIfVarInVar): Ditto. (m2expr_BuildIfNotVarInVar): Remove. (m2expr_BuildIfConstInVar): Remove. (m2expr_BuildForeachWordInSetDoIfExpr): Ditto. (m2expr_BuildBinaryForeachWordDo): Ditto. (m2expr_BuildIfInRangeGoto): Reimplement. (m2expr_BuildIfNotInRangeGoto): Ditto. (m2expr_SetAndNarrow): Ditto. (m2expr_GetBitsetZero): New function. (m2expr_GetRValue): Ditto. * gm2-gcc/m2expr.def (GetBitsetZero): New function. (BuildSetNegate): Ditto. (BuildLogicalOr): Reimplement. (BuildLogicalAnd): Ditto. (BuildSymmetricDifference): Ditto. (BuildLogicalDifference): Ditto. (BuildIfInSet): New procedure function. (BuildIfNotInSet): Ditto. (BuildEqualTo): Reimplement. (BuildNotEqualTo): Ditto. (BuildBinaryForeachWordDo): Remove. (BuildBinarySetDo): Ditto. (GetRValue): New procedure function. * gm2-gcc/m2expr.h (m2expr_BuildBinaryForeachWordDo): Remove. (m2expr_BuildForeachWordInSetDoIfExpr): Ditto. (m2expr_BuildIfNotVarInVar): Ditto. (m2expr_BuildIfVarInVar): Ditto. (m2expr_BuildIfNotConstInVar): Ditto. (m2expr_BuildIfConstInVar): Ditto. (m2expr_BuildLogicalDifference): Reimplement. (m2expr_BuildSymmetricDifference): Ditto. (m2expr_BuildLogicalAnd): Ditto. (m2expr_BuildLogicalOr): Ditto. (m2expr_BuildLogicalOrAddress): Ditto. (m2expr_BuildSetNegate): Ditto. (m2expr_GetBitsetZero): New function. (m2expr_GetRValue): Ditto. (m2expr_BuildIfInSet): Ditto. (m2expr_BuildIfNotInSet): Ditto. * gm2-gcc/m2options.h (M2Options_SetTimeReport): New function. (M2Options_SetMemReport): Ditto. (M2Options_SetWideset): Ditto. (M2Options_GetWideset): Ditto. * gm2-gcc/m2pp.cc (m2pp_shiftrotate_expr): New function. (m2pp_simple_expression): Ditto. * gm2-gcc/m2statement.cc (m2statement_BuildStartFunctionCode): Tidyup comments. (m2statement_BuildEndFunctionCode): Ditto. (m2statement_BuildPushFunctionContext): Ditto. (copy_array): Ditto. (CopyByField_Lower): Ditto. (m2statement_BuildGoto): Ditto. (m2statement_DeclareLabel): Ditto. (m2statement_BuildParam): Ditto. (nCount): Ditto. (m2statement_BuildProcedureCallTree): Ditto. (m2statement_BuildBuiltinCallTree): Ditto. (m2statement_BuildFunctValue): Ditto. (m2statement_BuildCall2): Ditto. (m2statement_BuildCall3): Ditto. (m2statement_BuildFunctionCallTree): Ditto. (m2statement_SetLastFunction): Ditto. (m2statement_SetParamList): Ditto. (m2statement_GetLastFunction): Ditto. (m2statement_GetParamList): Ditto. (m2statement_GetCurrentFunction): Ditto. (m2statement_GetParamTree): Ditto. (m2statement_BuildTryFinally): Ditto. (m2statement_BuildCleanUp): Ditto. (m2statement_BuildUnaryForeachWordDo): Remove. (m2statement_BuildExcludeVarConst): Ditto. (m2statement_BuildExcludeVarVar): Ditto. (m2statement_BuildIncludeVarConst): Ditto. (m2statement_BuildIncludeVarVar): Ditto. (m2statement_DoJump): Remove. (m2statement_IfExprJump): New function. (m2statement_IfBitInSetJump): Ditto. * gm2-gcc/m2statement.def (DoJump): Remove. (IfExprJump): New procedure function. (BuildUnaryForeachWordDo): Remove. (IfBitInSetJump): New procedure function. * gm2-gcc/m2statement.h (m2statement_BuildForeachWordDo): Remove. (m2statement_DoJump): Ditto. (m2statement_IfExprJump): New function. (m2statement_IfBitInSetJump): Ditto. * gm2-gcc/m2treelib.cc (m2treelib_do_jump_if_bit): Reimplement. (nCount): Replace with ... (m2treelib_nCount): ... this. (m2treelib_DoCall): Reimplement. (m2treelib_get_rvalue): Remove. * gm2-gcc/m2treelib.def (get_rvalue): Remove. (nCount): New procedure function. * gm2-gcc/m2treelib.h (m2treelib_get_rvalue): Remove. (m2treelib_nCount): New function. * gm2-gcc/m2type.cc (constructor_elements): Change type to vec. (m2type_BuildEndArrayType): Reformat. (build_m2_type_node_by_array): Ditto. (m2type_GetBooleanEnumList): New procedure function. (m2type_BuildEnumerator): Add const to char *. (m2type_BuildSetConstructorElement): Reimplement. (m2type_BuildEndSetConstructor): Ditto. (build_record_constructor): New function. (m2type_BuildEndRecordConstructor): Reimplement. (m2type_BuildRecordConstructorElement): Ditto. (m2type_BuildStartArrayConstructor): Reimplement. (m2type_BuildEndArrayConstructor): Remove blank lines. * gm2-gcc/m2type.def (BuildSetConstructorElement): Reimplement. (BuildEndArrayType): Reformat. (GetBooleanEnumList): New function. * gm2-gcc/m2type.h (m2type_BuildEnumerator): Add const to char *. (m2type_BuildSetConstructorElement): Reimplement. (m2type_GetBooleanEnumList): New procedure function. * gm2-lang.cc (OPT_fmem_report): New option. (OPT_ftime_report): Ditto. (OPT_fwideset): Ditto. * gm2-libs-coroutines/SYSTEM.def (ShiftVal): Remove. (ShiftLeft): Ditto. (ShiftRight): Ditto. (RotateVal): Ditto. (RotateLeft): Ditto. (RotateRight): Ditto. * gm2-libs-coroutines/SYSTEM.mod: Reimplement. * gm2-libs-iso/SYSTEM.def (ShiftVal): Remove. (ShiftLeft): Ditto. (ShiftRight): Ditto. (RotateVal): Ditto. (RotateLeft): Ditto. (RotateRight): Ditto. * gm2-libs-iso/SYSTEM.mod: Reimplement. * gm2-libs/SYSTEM.def (ShiftVal): Remove. (ShiftLeft): Ditto. (ShiftRight): Ditto. (RotateVal): Ditto. (RotateLeft): Ditto. (RotateRight): Ditto. * gm2-libs/SYSTEM.mod: Reimplement. * gm2-libs/SysStorage.def (DEALLOCATE): Improve comment. * gm2-libs/SysStorage.mod: Improve comment. * init/ppginit (M2Diagnostic): Add. (StringConvert): Add. * lang.opt (fmem-report): Add access to c.opt. (ftime-report): Ditto. (fwideset): New option. * pge-boot/main.cc (_M2_M2Diagnostic_init): New function. (_M2_M2Diagnostic_fini): Ditto. (_M2_StringConvert_init): Ditto. (_M2_StringConvert_fini): Ditto. (main): Call _M2_M2Diagnostic_init. Call _M2_StringConvert_init. Call _M2_M2Diagnostic_fini. Call _M2_StringConvert_fini. * tools-src/makeSystem: Add -gdb option. * gm2-libs/M2Diagnostic.def: New file. * gm2-libs/M2Diagnostic.mod: New file. * gm2-libs/M2WIDESET.def: New file. * gm2-libs/M2WIDESET.mod: New file. * mc-boot/GM2Diagnostic.cc: New file. * mc-boot/GM2Diagnostic.h: New file. * pge-boot/GM2Diagnostic.cc: New file. * pge-boot/GM2Diagnostic.h: New file. * pge-boot/GSelective.h: New file. * pge-boot/GStringConvert.cc: New file. libgm2/ChangeLog: * libm2pim/Makefile.am (M2MODS): Add M2Diagnostic.mod. Add M2WIDESET.mod. (M2DEFS): Add M2Diagnostic.def. Add M2WIDESET.def. * libm2pim/Makefile.in: Regenerate. gcc/testsuite/ChangeLog: * gm2/errors/fail/testbit2.mod: Rewrite. * gm2/iso/run/pass/shift4.mod: Rewrite adding more internal tests. * gm2/iso/run/pass/testsystem.mod (FindFirstElement): Add bounds check. * gm2/sets/run/pass/multisetrotate4.mod: Add more runtime error messages. * gm2/sets/run/pass/simplepacked.mod (testpset): Correct setname. * lib/gm2.exp (gm2_init_minx): Add -fno-wideset. * gm2/iso/run/pass/assigncons.mod: New test. * gm2/iso/run/pass/constructor3.mod: New test. * gm2/iso/run/pass/proc_test.mod: New test. * gm2/iso/run/pass/simplelarge2.mod: New test. * gm2/iso/run/pass/simplelarge3.mod: New test. * gm2/iso/run/pass/simplelarge4.mod: New test. * gm2/pimlib/wideset/run/pass/bitset.mod: New test. * gm2/pimlib/wideset/run/pass/bitset2.mod: New test. * gm2/pimlib/wideset/run/pass/colorset.mod: New test. * gm2/pimlib/wideset/run/pass/colorset2.mod: New test. * gm2/pimlib/wideset/run/pass/colorset3.mod: New test. * gm2/pimlib/wideset/run/pass/highbit.mod: New test. * gm2/pimlib/wideset/run/pass/highbit2.mod: New test. * gm2/sets/run/pass/multisetrotate5.mod: New test. * gm2/sets/run/pass/setcard.mod: New test. * gm2/sets/run/pass/setincl.mod: New test. Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2025-07-24Daily bump.GCC Administrator
2025-07-23PR modula2/121164: Modula 2 build failure followupGaius Mulley
This is a followup patch for PR modula2/121164 to fix the location for the error message attributed to cc1gm2. gcc/m2/ChangeLog: PR modula2/121164 * gm2-compiler/P1SymBuild.mod: Remove PutProcTypeParam. Remove PutProcTypeParam. (CheckFileName): Remove. (P1EndBuildDefinitionModule): Correct spelling. (P1EndBuildImplementationModule): Ditto. (P1EndBuildProgramModule): Ditto. (EndBuildInnerModule): Ditto. * gm2-compiler/P2SymBuild.mod (P2EndBuildDefModule): Correct spelling. (P2EndBuildImplementationModule): Ditto. (P2EndBuildProgramModule): Ditto. (EndBuildInnerModule): Ditto. (CheckFormalParameterSection): Ditto. * gm2-compiler/P3SymBuild.mod (P3EndBuildDefModule): Ditto. * gm2-compiler/PCSymBuild.mod (PCEndBuildDefModule): Ditto. (fixupProcedureType): Pass tok to PutProcTypeVarParam. Pass tok to PutProcTypeParam. * gm2-compiler/SymbolTable.def (PutProcTypeParam): Add tok parameter. (PutProcTypeVarParam): Ditto. * gm2-compiler/SymbolTable.mod (SymParam): At change type to CARDINAL. New field FullTok. New field Scope. (SymVarParam): At change type to CARDINAL. New field FullTok. New field Scope. (GetVarDeclTok): Check ShadowVar for NulSym and return At. (PutParam): Initialize FullTok. Initialize At. Initialize Scope. (PutVarParam): Initialize FullTok. Assign At. Initialize Scope. (AddProcedureProcTypeParam): Add tok parameter. (GetScope): Add ParamSym and VarParamSym clause. (PutProcTypeVarParam): Add tok parameter. Initialize At. Initialize FullTok. (GetDeclaredDefinition): Clause ParamSym return At. Clause VarParamSym return At. (GetDeclaredModule): Ditto. (PutDeclaredDefinition): Remove clause ParamSym. Remove clause VarParamSym. (PutDeclaredModule): Remove clause ParamSym. Remove clause VarParamSym. libgm2/ChangeLog: PR modula2/121164 * libm2iso/Makefile.am (libm2iso_la_M2FLAGS): Add -Wall. * libm2iso/Makefile.in: Regenerate. * libm2log/Makefile.am (libm2log_la_M2FLAGS): Add -Wall. * libm2log/Makefile.in: Regenerate. * libm2min/Makefile.am (libm2min_la_M2FLAGS): Add -Wall. * libm2min/Makefile.in: Regenerate. * libm2pim/Makefile.am (libm2pim_la_M2FLAGS): Add -Wall. * libm2pim/Makefile.in: Regenerate. gcc/testsuite/ChangeLog: PR modula2/121164 * gm2/switches/pedantic-params/fail/arrayofchar.def: New test. * gm2/switches/pedantic-params/fail/arrayofchar.mod: New test. Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2025-06-30Daily bump.GCC Administrator
2025-06-30[PR modula2/117203] Followup add Delete procedure functionGaius Mulley
This patch provides GetFileName procedure function for FIO.File, FileSystem.File and IOChan.ChanId. The return result from these procedures can be passed into StringFileSysOp.Unlink to complete the required delete. gcc/m2/ChangeLog: PR modula2/117203 * gm2-libs-log/FileSystem.def (GetFileName): New procedure function. (WriteString): New procedure. * gm2-libs-log/FileSystem.mod (GetFileName): New procedure function. (WriteString): New procedure. * gm2-libs/SFIO.def (GetFileName): New procedure function. * gm2-libs/SFIO.mod (GetFileName): New procedure function. * gm2-libs-iso/IOChanUtils.def: New file. * gm2-libs-iso/IOChanUtils.mod: New file. libgm2/ChangeLog: PR modula2/117203 * libm2iso/Makefile.am (M2DEFS): Add IOChanUtils.def. (M2MODS): Add IOChanUtils.mod. * libm2iso/Makefile.in: Regenerate. gcc/testsuite/ChangeLog: PR modula2/117203 * gm2/isolib/run/pass/testdelete2.mod: New test. * gm2/pimlib/logitech/run/pass/testdelete2.mod: New test. * gm2/pimlib/run/pass/testdelete.mod: New test. Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2025-06-08Daily bump.GCC Administrator
2025-06-07[PR modula2/119650, PR modula2/117203]: WriteString and Delete are missing ↵Gaius Mulley
from base libraries This patch introduces a Write procedure for an array of char, the string and char datatype. It uses the m2r10 style of naming the module on the datatype. This uncovered a bug in the import handling inside Quadident. It also includes an Unlink procedure from a new module FileSysOp and a String interface to this module. gcc/m2/ChangeLog: PR modula2/119650 PR modula2/117203 * gm2-compiler/P2Build.bnf (CheckModuleQualident): New procedure. (Qualident): Rewrite. * gm2-compiler/P3Build.bnf (PushTFQualident): New procedure. (CheckModuleQualident): Ditto. (Qualident): Rewrite. * gm2-compiler/PCBuild.bnf (PushTFQualident): New procedure. (CheckModuleQualident): Ditto. (Qualident): Rewrite. * gm2-compiler/PHBuild.bnf (PushTFQualident): New procedure. (CheckModuleQualident): Ditto. (Qualident): Rewrite. * gm2-libs/ARRAYOFCHAR.def: New file. * gm2-libs/ARRAYOFCHAR.mod: New file. * gm2-libs/CFileSysOp.def: New file. * gm2-libs/CHAR.def: New file. * gm2-libs/CHAR.mod: New file. * gm2-libs/FileSysOp.def: New file. * gm2-libs/FileSysOp.mod: New file. * gm2-libs/String.def: New file. * gm2-libs/String.mod: New file. * gm2-libs/StringFileSysOp.def: New file. * gm2-libs/StringFileSysOp.mod: New file. libgm2/ChangeLog: PR modula2/119650 PR modula2/117203 * libm2pim/Makefile.am (M2MODS): Add ARRAYOFCHAR, CHAR.mod, StringFileSysOp.mod and String.mod. (M2DEFS): Add ARRAYOFCHAR, CHAR.mod, StringFileSysOp.mod and String.mod. (libm2pim_la_SOURCES): Add CFileSysOp.c. * libm2pim/Makefile.in: Regenerate. * libm2pim/CFileSysOp.cc: New file. gcc/testsuite/ChangeLog: PR modula2/119650 * gm2/iso/fail/CHAR.mod: New test. * gm2/iso/run/pass/CHAR.mod: New test. * gm2/iso/run/pass/importself.mod: New test. * gm2/pimlib/run/pass/testwrite.mod: New test. * gm2/pimlib/run/pass/testwritechar.mod: New test. Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2025-04-25Daily bump.GCC Administrator
2025-04-24PR modula2/115276: libgm2 wraptime.cc field access all return -1.Gaius Mulley
This patch provides autoconf tests for each field used in wraptime.cc referencing struct tm and struct timeval. libgm2/ChangeLog: PR modula2/115276 * config.h.in: Regenerate. * configure: Regenerate. * configure.ac (AC_STRUCT_TIMEZONE): Add. (AC_CHECK_MEMBER): Test for struct tm.tm_year. (AC_CHECK_MEMBER): Test for struct tm.tm_mon. (AC_CHECK_MEMBER): Test for struct tm.tm_mday. (AC_CHECK_MEMBER): Test for struct tm.tm_hour. (AC_CHECK_MEMBER): Test for struct tm.tm_min. (AC_CHECK_MEMBER): Test for struct tm.tm_sec. (AC_CHECK_MEMBER): Test for struct tm.tm_year. (AC_CHECK_MEMBER): Test for struct tm.tm_yday. (AC_CHECK_MEMBER): Test for struct tm.tm_wday. (AC_CHECK_MEMBER): Test for struct tm.tm_isdst. (AC_CHECK_MEMBER): Test for struct timeval.tv_sec. (AC_CHECK_MEMBER): Test for struct timeval.tv_sec. (AC_CHECK_MEMBER): Test for struct timeval.tv_usec. * libm2iso/wraptime.cc (InitTimeval): Guard against lack struct timeval and malloc. (InitTimezone): Guard against lack of struct tm.tm_zone and malloc. (KillTimezone): Ditto. (InitTimeval): Guard against lack of struct timeval and malloc. (KillTimeval): Guard against lack of malloc. (settimeofday): Guard against lack of struct tm.tm_zone. (GetFractions): Guard against lack of struct timeval. (localtime_r): Ditto. (GetYear): Guard against lack of struct tm. (GetMonth): Ditto. (GetDay): Ditto. (GetHour): Ditto. (GetMinute): Ditto. (GetSecond): Ditto. (GetSummerTime): Ditto. (GetDST): Guards against lack of struct timezone. (SetTimezone): Ditto. (SetTimeval): Guard against lack of struct tm. Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2025-03-29Daily bump.GCC Administrator
2025-03-28PR modula2/118045: libm2iso.so.20.0.0 contains an unresolvable reference to ↵Gaius Mulley
symbol casin This patch adds -lm to the libm2iso, libm2log and libm2pim libraries. libgm2/ChangeLog: PR modula2/118045 * libm2iso/Makefile.am (libm2iso_la_LINK): Add -lm. * libm2log/Makefile.am (libm2log_la_LINK): Ditto. * libm2pim/Makefile.am (libm2pim_la_LINK): Ditto. * libm2iso/Makefile.in: Regenerate. * libm2log/Makefile.in: Regenerate. * libm2pim/Makefile.in: Regenerate. Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2025-03-21Daily bump.GCC Administrator
2025-03-20modula2: Defend against no ENOTBLK definitionGaius Mulley
This patch defends against no ENOTBLK definition. libgm2/ChangeLog: * libm2iso/ErrnoCategory.cc (IsErrnoHard): Defend against lack of ENOTBLK. (UnAvailable): Ditto. (GetOpenResults): Ditto. Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2024-11-21Daily bump.GCC Administrator
2024-11-20PR modula2/117703: libgm2 soname bumps for GCC 15Gaius Mulley
Bump libgm2 version ready for the gcc-15 release. libgm2/ChangeLog: PR modula2/117703 * configure: Regenerate. * configure.ac (libtool_VERSION): Bump to 20:0:0. Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2024-05-30Daily bump.GCC Administrator
2024-05-29PR modula2/115276 bugfix libgm2 wraptime.InitTM returns NILGaius Mulley
This patch fixes libgm2/libm2iso/wraptime.cc:InitTM so that it does not always return NULL. The incorrect autoconf macro was used (inside InitTM) and the function short circuited to return NULL. The fix is to use HAVE_SYS_TIME_H and use AC_HEADER_TIME in libgm2/configure.ac. libgm2/ChangeLog: PR modula2/115276 * config.h.in: Regenerate. * configure: Regenerate. * configure.ac: Use AC_HEADER_TIME. * libm2iso/wraptime.cc (InitTM): Check HAVE_SYS_TIME_H before using struct tm to obtain the size. gcc/testsuite/ChangeLog: PR modula2/115276 * gm2/isolib/run/pass/testinittm.mod: New test. Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2024-05-03Daily bump.GCC Administrator
2024-05-02modula2: Regenerate libgm2 Makefile.ins using correct include orderGaius Mulley
Regenerated libgm2/Makefile.in (and subdir Makefile.in) using aclocal -I .. -I ../config (or autoreconf). libgm2/ChangeLog: * Makefile.in: Regenerate. * libm2cor/Makefile.in: Ditto. * libm2iso/Makefile.in: Ditto. * libm2log/Makefile.in: Ditto. * libm2min/Makefile.in: Ditto. * libm2pim/Makefile.in: Ditto. * aclocal.m4: Ditto. Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2024-04-03Daily bump.GCC Administrator
2024-04-02Fix up duplicated words mostly in comments, part 1Jakub Jelinek
Like in r12-7519-g027e30414492d50feb2854aff38227b14300dc4b, I've done git grep -v 'long long\|optab optab\|template template\|double double' | grep ' \([a-zA-Z]\+\) \1 ' This is just part of the changes, mostly for non-gcc directories. I'll try to get to the rest soon. Obviously, the above command also finds cases which are correct as is and shouldn't be changed, so one needs to manually inspect everything. I'd hope most of it is pretty obvious, but the config/ and libstdc++-v3/ hunks include a tweak in a license wording, though other copies of the similar license have the wording right. 2024-04-02 Jakub Jelinek <jakub@redhat.com> * Makefile.tpl: Fix duplicated words; returns returns -> returns. config/ * lcmessage.m4: Fix duplicated words; can can -> can, package package -> package. libdecnumber/ * decCommon.c (decFinalize): Fix duplicated words in comment; the the -> the. libgcc/ * unwind-dw2-fde.c (struct fde_accumulator): Fix duplicated words in comment; is is -> is. libgfortran/ * configure.host: Fix duplicated words; the the -> the. libgm2/ * configure.host: Fix duplicated words; the the -> the. libgomp/ * libgomp.texi (OpenMP 5.2): Fix duplicated words; with with -> with. (omp_target_associate_ptr): Fix duplicated words; either either -> either. (omp_init_allocator): Fix duplicated words; be be -> be. (omp_realloc): Fix duplicated words; is is -> is. (OMP_ALLOCATOR): Fix duplicated words; other other -> other. * priority_queue.h (priority_queue_multi_p): Fix duplicated words; to to -> to. libiberty/ * regex.c (byte_re_match_2_internal): Fix duplicated words in comment; next next -> next. * dyn-string.c (dyn_string_init): Fix duplicated words in comment; of of -> of. libitm/ * beginend.cc (GTM::gtm_thread::begin_transaction): Fix duplicated words in comment; not not -> not to. libobjc/ * init.c (duplicate_classes): Fix duplicated words in comment; in in -> in. * sendmsg.c (__objc_prepare_dtable_for_class): Fix duplicated words in comment; the the -> the. * encoding.c (objc_layout_structure): Likewise. libstdc++-v3/ * acinclude.m4: Fix duplicated words; file file -> file can. * configure.host: Fix duplicated words; the the -> the. libvtv/ * vtv_rts.cc (vtv_fail): Fix duplicated words; to to -> to. * vtv_fail.cc (vtv_fail): Likewise.
2024-02-26Daily bump.GCC Administrator
2024-02-25PR modula2/113749 m2 enabled build times out on i686-gnu-hurdGaius Mulley
The bug fix changes the FIO module to use the target O_RDONLY, O_WRONLY, SEEK_SET and SEEK_END (now available from the module wrapc). Also rebuilt are the bootstrap tools mc and pge as they have their own wrapc and C translations of FIO. gcc/m2/ChangeLog: PR modula2/113749 * Make-lang.in (BUILD-PGE-O): Add m2/pge-boot/Gwrapc.o. * gm2-libs-ch/wrapc.c (wrapc_SeekSet): New function. (wrapc_SeekEnd): Ditto. (wrapc_ReadOnly): Ditto. (wrapc_WriteOnly): Ditto. * gm2-libs/FIO.mod (SEEK_SET): Remove. (SEEK_END): Remove. (UNIXREADONLY): Remove. (UNIXWRITEONLY): Remove. (ConnectToUnix): Replace UNIXWRITEONLY with a call to WriteOnly. Replace UNIXREADONLY with a call to ReadOnly. (SetPositionFromBeginning): Replace SEEK_SET with a call to SeekSet. (SetPositionFromEnd): Replace SEEK_END with a call to SeekEnd. * gm2-libs/wrapc.def (SeekSet): New procedure function. (SeekEnd): New procedure function. (ReadOnly): New procedure function. (WriteOnly): New procedure function. * mc-boot-ch/Glibc.c (BUILD_MC_LIBC_TRACE): Undef. (check_init): New function. (tracedb): Ditto. (tracedb_open): Ditto. (tracedb_result): Ditto. (libc_read): Ditto. (libc_write): Ditto. (libc_close): Ditto. (libc_creat): Ditto. (libc_open): Ditto. (libc_lseek): Ditto. * mc-boot-ch/Gwrapc.c (wrapc_SeekSet): New function. (wrapc_SeekEnd): Ditto. (wrapc_ReadOnly): Ditto. (wrapc_WriteOnly): Ditto. * mc-boot/GDynamicStrings.cc: Rebuilt. * mc-boot/GFIO.cc: Ditto. * mc-boot/GIndexing.cc: Ditto. * mc-boot/GM2Dependent.cc: Ditto. * mc-boot/GM2EXCEPTION.cc: Ditto. * mc-boot/GPushBackInput.cc: Ditto. * mc-boot/GRTExceptions.cc: Ditto. * mc-boot/GRTint.cc: Ditto. * mc-boot/GSArgs.cc: Ditto. * mc-boot/GStdIO.cc: Ditto. * mc-boot/GStringConvert.cc: Ditto. * mc-boot/GSysStorage.cc: Ditto. * mc-boot/Gdecl.cc: Ditto. * mc-boot/Gkeyc.cc: Ditto. * mc-boot/Glibc.h: Ditto. * mc-boot/GmcComment.cc: Ditto. * mc-boot/GmcComp.cc: Ditto. * mc-boot/GmcDebug.cc: Ditto. * mc-boot/GmcMetaError.cc: Ditto. * mc-boot/GmcStack.cc: Ditto. * mc-boot/GmcStream.cc: Ditto. * mc-boot/GnameKey.cc: Ditto. * mc-boot/GsymbolKey.cc: Ditto. * mc-boot/Gvarargs.cc: Ditto. * mc-boot/Gwrapc.h: Ditto. * mc/decl.mod (getSymName): Add pointerref clause. * mc/mcStream.mod (copy): Check for an error after every read. * mc/varargs.mod (copy): Rewrite pointer arithmetic using INC to avoid type incompatibility. * pge-boot/GDynamicStrings.cc: Rebuilt. * pge-boot/GDynamicStrings.h: Ditto. * pge-boot/GFIO.cc: Ditto. * pge-boot/GFIO.h: Ditto. * pge-boot/GIO.cc: Ditto. * pge-boot/GIndexing.cc: Ditto. * pge-boot/GM2Dependent.cc: Ditto. * pge-boot/GM2EXCEPTION.cc: Ditto. * pge-boot/GNameKey.cc: Ditto. * pge-boot/GPushBackInput.cc: Ditto. * pge-boot/GRTExceptions.cc: Ditto. * pge-boot/GStdIO.cc: Ditto. * pge-boot/GSymbolKey.cc: Ditto. * pge-boot/GSysStorage.cc: Ditto. * pge-boot/Glibc.h: Ditto. * pge-boot/Gwrapc.cc: Ditto. * pge-boot/Gwrapc.h: Ditto. libgm2/ChangeLog: PR modula2/113749 * libm2pim/wrapc.cc: Include fcntl.h. (SeekSet): New function. (SeekEnd): Ditto. (ReadOnly): Ditto. (WriteOnly): Ditto. Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2024-02-14Daily bump.GCC Administrator
2024-02-13libgm2: Fix libm2iso/wraptime.cc compilation on SolarisRainer Orth
As it turned out, my patch to complete the libgm2 autoconf macros works on both Linux/sparc64 and Linux/x86_64, but breaks Solaris bootstrap: /vol/gcc/src/hg/master/local/libgm2/libm2iso/wraptime.cc: In function 'int m2iso_wraptime_gettimeofday(void*, timezone*)': /vol/gcc/src/hg/master/local/libgm2/libm2iso/wraptime.cc:148:24: error: invalid conversion from 'void*' to 'timeval*' [-fpermissive] 148 | return gettimeofday (tv, tz); | ^~ | | | void* In file included from /usr/include/sys/select.h:27, from /usr/include/sys/types.h:665, from /vol/gcc/src/hg/master/local/libgm2/libm2iso/wraptime.cc:35: /usr/include/sys/time.h:444:18: note: initializing argument 1 of 'int gettimeofday(timeval*, void*)' 444 | int gettimeofday(struct timeval *_RESTRICT_KYWD, void *_RESTRICT_KYWD); | ^ /vol/gcc/src/hg/master/local/libgm2/libm2iso/wraptime.cc: In function 'int m2iso_wraptime_settimeofday(void*, timezone*)': /vol/gcc/src/hg/master/local/libgm2/libm2iso/wraptime.cc:165:24: error: invalid conversion from 'void*' to 'timeval*' [-fpermissive] 165 | return settimeofday (tv, tz); | ^~ | | | void* /usr/include/sys/time.h:431:18: note: initializing argument 1 of 'int settimeofday(timeval*, void*)' 431 | int settimeofday(struct timeval *, void *); | ^~~~~~~~~~~~~~~~ This happens because on Linux only HAVE_[GS]ETTIMEOFDAY is defined, while Solaris has both that and HAVE_STRUCT_TIMEZONE, selecting different implementations. Fixed by casting tv to struct timeval *. I thought about changing the signatures instead to take a struct timeval * instead, but that seemed risky given that there's a HAVE_STRUCT_TIMEVAL, so would probably break other targets. Bootstrapped without regressions on i386-pc-solaris2.11, sparc-sun-solaris2.11, and x86_64-pc-linux-gnu. 2024-02-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> libgm2: * libm2iso/wraptime.cc [HAVE_STRUCT_TIMEZONE && HAVE_GETTIMEOFDAY] (EXPORT(gettimeofday)): Cast tv to struct timeval *. [HAVE_STRUCT_TIMEZONE && HAVE_SETTIMEOFDAY] (EXPORT(settimeofday)): Likewise.
2024-02-13Daily bump.GCC Administrator
2024-02-12libgm2: Define missing configure macros [PR113888]Rainer Orth
As detailed in PR modula2/113888, the 32-bit libm2pim/target.c doesn't assemble in a Linux/sparc64 multilib build. However, the root cause is that the HAVE_EXP10* macros are never defined. While I was at it, I checked for other cases where the code uses HAVE_* macros that are missing from config.h.in. This patch adds the missing checks, changes the configure checks where the names don't match what's used in the code, or corrects the code to use the right names. So far tested on sparc64-unknown-linux-gnu by building libgm2 (32 and 64-bit) and running the gm2 tests. 2024-02-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> libgm2: PR modula2/113888 * configure.ac (GM2_CHECK_LIB): Rename gettimeofday guard to HAVE_GETTIMEOFDAY. (GM_CHECK_LIB): Check for settimeofday. (GM2_CHECK_LIB): Check for exp10, exp10f, exp10l in libm. (AC_CHECK_DECLS): Check for getenv. * configure, config.h.in: Regenerate. * libm2pim/dtoa.cc: Rename <strings.h>, <string.h> guards to HAVE_STRINGS_H, HAVE_STRING_H. * libm2pim/ldtoa.cc: Likewise.
2024-01-19Daily bump.GCC Administrator
2024-01-18PR modula2/111956 Many powerpc platforms do _not_ have support for IEEE754Gaius Mulley
This patch corrects commit r14-4149-g81d5ca0b9b8431f1bd7a5ec8a2c94f04bb0cf032 which assummed all powerpc platforms would have IEEE754 long double. The patch ensures that cc1gm2 obtains the default IEEE754 long double availability from the configure generated tm_defines. The user command line switches -mabi=ibmlongdouble and -mabi=ieeelongdouble are implemented to override the configuration defaults. Bootstrapped on power8 and power9 machines. gcc/m2/ChangeLog: PR modula2/111956 * Make-lang.in (host_mc_longreal): Remove. * configure: Regenerate. * configure.ac (M2C_LONGREAL_FLOAT128): Remove. (M2C_LONGREAL_PPC64LE): Remove. * gm2-compiler/M2Options.def (SetIBMLongDouble): New procedure. (GetIBMLongDouble): New procedure function. (SetIEEELongDouble): New procedure. (GetIEEELongDouble): New procedure function. * gm2-compiler/M2Options.mod (SetIBMLongDouble): New procedure. (GetIBMLongDouble): New procedure function. (SetIEEELongDouble): New procedure. (GetIEEELongDouble): New procedure function. (InitializeLongDoubleFlags): New procedure called during module block initialization. * gm2-gcc/m2configure.cc: Remove duplicate includes. (m2configure_M2CLongRealFloat128): Remove. (m2configure_M2CLongRealIBM128): Remove. (m2configure_M2CLongRealLongDouble): Remove. (m2configure_M2CLongRealLongDoublePPC64LE): Remove. (m2configure_TargetIEEEQuadDefault): New function. * gm2-gcc/m2configure.def (M2CLongRealFloat128): Remove. (M2CLongRealIBM128): Remove. (M2CLongRealLongDouble): Remove. (M2CLongRealLongDoublePPC64LE): Remove. (TargetIEEEQuadDefault): New function. * gm2-gcc/m2configure.h (m2configure_M2CLongRealFloat128): Remove. (m2configure_M2CLongRealIBM128): Remove. (m2configure_M2CLongRealLongDouble): Remove. (m2configure_M2CLongRealLongDoublePPC64LE): Remove. (m2configure_TargetIEEEQuadDefault): New function. * gm2-gcc/m2options.h (M2Options_SetIBMLongDouble): New prototype. (M2Options_GetIBMLongDouble): New prototype. (M2Options_SetIEEELongDouble): New prototype. (M2Options_GetIEEELongDouble): New prototype. * gm2-gcc/m2type.cc (build_m2_long_real_node): Re-implement using results of M2Options_GetIBMLongDouble and M2Options_GetIEEELongDouble. * gm2-lang.cc (gm2_langhook_handle_option): Add case OPT_mabi_ibmlongdouble and call M2Options_SetIBMLongDouble. Add case OPT_mabi_ieeelongdouble and call M2Options_SetIEEELongDouble. * gm2config.aci.in: Regenerate. * gm2spec.cc (lang_specific_driver): Remove block defined by M2C_LONGREAL_PPC64LE. Remove case OPT_mabi_ibmlongdouble. Remove case OPT_mabi_ieeelongdouble. libgm2/ChangeLog: PR modula2/111956 * Makefile.am (TARGET_LONGDOUBLE_ABI): Remove. * Makefile.in: Regenerate. * libm2cor/Makefile.am (TARGET_LONGDOUBLE_ABI): Remove. * libm2cor/Makefile.in: Regenerate. * libm2iso/Makefile.am (TARGET_LONGDOUBLE_ABI): Remove. * libm2iso/Makefile.in: Regenerate. * libm2log/Makefile.am (TARGET_LONGDOUBLE_ABI): Remove. * libm2log/Makefile.in: Regenerate. * libm2min/Makefile.am (TARGET_LONGDOUBLE_ABI): Remove. * libm2min/Makefile.in: Regenerate. * libm2pim/Makefile.am (TARGET_LONGDOUBLE_ABI): Remove. * libm2pim/Makefile.in: Regenerate. Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2024-01-06Daily bump.GCC Administrator
2024-01-05modula2: libm2iso/RTco.cc tidyup use bool instead of intGaius Mulley
A missing bool/int detected in the global variable initialized. The majority of ints were replaced by bool but this one was missed. libgm2/ChangeLog: * libm2iso/RTco.cc (initialized): Use bool instead of int. Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2023-12-23Daily bump.GCC Administrator
2023-12-22Allow overriding EXPECTChristophe Lyon
While investigating possible race conditions in the GCC testsuites caused by bufferization issues, I wanted to investigate workarounds similar to GDB's READ1 [1], and I noticed it was not always possible to override EXPECT when running 'make check'. This patch adds the missing support in various Makefiles. I was not able to test the patch for all the libraries updated here, but I confirmed it works as intended/needed for libstdc++. libatomic, libitm, libgomp already work as intended because their Makefiles do not have: MAKEOVERRIDES= Tested on (native) aarch64-linux-gnu, confirmed the patch introduces the behaviour I want in gcc, g++, gfortran and libstdc++. I updated (but could not test) libgm2, libphobos, libquadmath and libssp for consistency since their Makefiles have MAKEOVERRIDES= libffi, libgo, libsanitizer seem to need a similar update, but they are imported from their respective upstream repo, so should not be patched here. [1] https://github.com/bminor/binutils-gdb/blob/master/gdb/testsuite/README#L269 2023-12-21 Christophe Lyon <christophe.lyon@linaro.org> gcc/ * Makefile.in: Allow overriding EXEPCT. libgm2/ * Makefile.am: Allow overriding EXEPCT. * Makefile.in: Regenerate. libphobos/ * Makefile.am: Allow overriding EXEPCT. * Makefile.in: Regenerate. libquadmath/ * Makefile.am: Allow overriding EXEPCT. * Makefile.in: Regenerate. libssp/ * Makefile.am: Allow overriding EXEPCT. * Makefile.in: Regenerate. libstdc++-v3/ * Makefile.am: Allow overriding EXEPCT. * Makefile.in: Regenerate.
2023-12-14Daily bump.GCC Administrator
2023-12-13PR modula2/112921 missing modules shortreal shortstr shortconv convstringshortGaius Mulley
For completeness here are three SHORTREAL modules which match their LONGREAL and REAL counterparts. The datatype SHORTREAL is a GNU extension and these modules were missing. gcc/m2/ChangeLog: PR modula2/112921 * gm2-libs-iso/ConvStringShort.def: New file. * gm2-libs-iso/ConvStringShort.mod: New file. * gm2-libs-iso/ShortConv.def: New file. * gm2-libs-iso/ShortConv.mod: New file. * gm2-libs-iso/ShortMath.def: New file. * gm2-libs-iso/ShortMath.mod: New file. * gm2-libs-iso/ShortStr.def: New file. * gm2-libs-iso/ShortStr.mod: New file. libgm2/ChangeLog: PR modula2/112921 * libm2iso/Makefile.am (M2DEFS): Add ConvStringShort.def, ShortConv.def, ShortMath.def and ShortStr.def. (M2MODS): Add ConvStringShort.mod, ShortConv.mod, ShortMath.mod and ShortStr.mod. * libm2iso/Makefile.in: Regenerate. gcc/testsuite/ChangeLog: PR modula2/112921 * gm2/iso/run/pass/shorttest.mod: New test. Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2023-12-13Daily bump.GCC Administrator
2023-12-12PR modula2/112984 Compiling program with -Wpedantic shows warning in librariesGaius Mulley
This patch tidies up the library modules so that -Wpedantic does not generate any warnings (apart from two procedures with legitimate infinite loops). gcc/m2/ChangeLog: PR modula2/112984 * gm2-libs-coroutines/SYSTEM.mod: Remove redundant import of memcpy. * gm2-libs-iso/ClientSocket.mod: Remove redundant import of IOConsts. * gm2-libs-iso/IOChan.mod: Remove redundant import of IOConsts. * gm2-libs-iso/IOLink.mod: Remove redundant import of IOChan and SYSTEM. * gm2-libs-iso/IOResult.mod: Remove redundant import of IOChan. * gm2-libs-iso/LongIO.mod: Remove redundant import of writeString. * gm2-libs-iso/LongWholeIO.mod: Remove redundant import of IOChan. * gm2-libs-iso/M2RTS.mod: Remove redundant import of ADDRESS. * gm2-libs-iso/MemStream.mod: Remove redundant import of ADDRESS. * gm2-libs-iso/RTdata.mod: Remove redundant import of DeviceTablePtr. * gm2-libs-iso/RTfio.mod: Remove redundant import of DeviceTablePtr. * gm2-libs-iso/RTgen.mod: Remove redundant import of DeviceTablePtr. * gm2-libs-iso/RealIO.mod: Remove redundant import of writeString. * gm2-libs-iso/RndFile.mod: Remove redundant import of SYSTEM. * gm2-libs-iso/SYSTEM.mod: Remove redundant import of memcpy. * gm2-libs-iso/ShortWholeIO.mod: Remove redundant import of IOConsts. * gm2-libs-iso/TextIO.mod: Remove redundant import of IOChan. * gm2-libs-iso/TextUtil.mod: Remove redundant import of IOChan. * gm2-libs-iso/WholeIO.mod: Remove redundant import of IOChan. * gm2-libs-log/BitByteOps.mod: Remove redundant import of BYTE. * gm2-libs-log/FileSystem.mod: Remove redundant import of BYTE and ADDRESS. * gm2-libs-log/InOut.mod: Remove redundant import of String. * gm2-libs-log/RealConversions.mod: Remove redundant import of StringToLongreal. * gm2-libs/FIO.mod: Remove redundant import of SIZE. * gm2-libs/FormatStrings.mod: Remove redundant import of String and ConCatChar. * gm2-libs/IO.mod: Remove redundant import of SIZE. * gm2-libs/Indexing.mod: Remove redundant import of ADDRESS. * gm2-libs/M2Dependent.mod: Remove redundant import of SIZE. * gm2-libs/M2RTS.mod: Remove redundant import of ADDRESS. * gm2-libs/OptLib.mod: Remove redundant import of DynamicStrings. * gm2-libs/SYSTEM.mod: Remove redundant import of memcpy. * gm2-libs/StringConvert.mod: Remove redundant import of String. libgm2/ChangeLog: * libm2iso/Makefile.am (libm2iso_la_M2FLAGS): Added line breaks. * libm2iso/Makefile.in: Regenerate. * libm2log/Makefile.am (libm2log_la_M2FLAGS): Added line breaks. * libm2log/Makefile.in: Regenerate. * libm2pim/Makefile.am (libm2pim_la_M2FLAGS): Added line breaks. * libm2pim/Makefile.in: Regenerate. gcc/testsuite/ChangeLog: PR modula2/112984 * gm2/switches/pedantic/pass/hello.mod: New test. * gm2/switches/pedantic/pass/switches-pedantic-pass.exp: New test. Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2023-12-01Daily bump.GCC Administrator
2023-11-30modula2: libgm2 bump version to 19:0.0Gaius Mulley
This patch bumps the libgm2 version to 19.0.0 reflecting time related fixes, changes to builtins.def and the commencement of gcc stage3. libgm2/ChangeLog: * configure: Regenerate. * configure.ac:(libtool_VERSION): Bump to 19:0:0. Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2023-11-14Daily bump.GCC Administrator
2023-11-13PR modula2/110779: Add reduced acinclude.m4 to allow interrogation of time ↵Gaius Mulley
features This patch adds libgm2/acinclude.m4 and libgm2/configure.host which are reduced versions from libstdc++-v3. They currently allow for discovering the time features available in libc and will be extended to discover availability of ieee128 long double support in the near future. These files were also added to provide the functions: GLIBCXX_CONFIGURE, GLIBCXX_CHECK_GETTIMEOFDAY and GLIBCXX_ENABLE_LIBSTDCXX_TIME called by configure.ac. libgm2/ChangeLog: PR modula2/110779 * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * config.h.in: Regenerate. * configure: Regenerate. * configure.ac: Remove newline. * libm2cor/Makefile.in: Regenerate. * libm2iso/Makefile.in: Regenerate. * libm2log/Makefile.in: Regenerate. * libm2min/Makefile.in: Regenerate. * libm2pim/Makefile.in: Regenerate. * acinclude.m4: New file. * configure.host: New file. Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>