[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ICE on procedure-local CONST declaration
From: |
Alcor |
Subject: |
ICE on procedure-local CONST declaration |
Date: |
Sun, 14 Jul 2024 11:58:28 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Hi all,
The following program (Test.mod) causes an ICE on gm2 (GCC) 15.0.1 20240707
(x86_64, Arch Linux):
--
MODULE Test;
IMPORT SYSTEM;
TYPE
T = POINTER TO CONS;
CONS = RECORD
CAR: SYSTEM.ADDRESS;
CDR: T;
END;
PROCEDURE POP(VAR LST: T): SYSTEM.ADDRESS;
CONST CAR = LST.CAR;
BEGIN
RETURN NIL;
END POP;
BEGIN
END Test.
--
I am not entirely sure whether this is valid Modula-2 code. I'm just
experimenting with the compiler by attempting to write a toy Lisp
implementation in M2 and thought this may be worth reporting.
The full backtrace (as producer by -freport-bug) is available below:
--
// Target: x86_64-pc-linux-gnu
// Configured with: /home/vagrant/gcc-snapshot/src/gcc/configure
--enable-languages=ada,c,c++,d,fortran,go,lto,m2,objc,obj-c++,rust
--enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib
--mandir=/usr/share/man --infodir=/usr/share/info
--with-bugurl=https://aur.archlinux.org/packages/gcc-snapshot
--with-build-config=bootstrap-lto --with-linker-hash-style=gnu
--with-system-zlib
--with-isl-include=/home/vagrant/gcc-snapshot/src/gcc-15-20240707/isl/include
--enable-__cxa_atexit --enable-cet=auto --enable-checking=release
--enable-clocale=gnu --enable-default-pie --enable-default-ssp
--enable-gnu-indirect-function --enable-gnu-unique-object
--enable-libstdcxx-backtrace --enable-link-serialization=1
--enable-linker-build-id --enable-lto --enable-multilib --enable-plugin
--enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch
--disable-werror
// Thread model: posix
// Supported LTO compression algorithms: zlib zstd
// gcc version 15.0.1 20240707 (experimental) (GCC)
//
// terminate called after throwing an instance of 'unsigned int'
// -quiet: internal compiler error: Aborted
// 0x746acf __gnu_cxx::__verbose_terminate_handler()
// /usr/src/debug/gcc-snapshot/gcc/libstdc++-v3/libsupc++/vterminate.cc:95
// 0x1925979 __cxxabiv1::__terminate(void (*)())
//
/usr/src/debug/gcc-snapshot/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:48
// 0x7469f2 std::terminate()
//
/usr/src/debug/gcc-snapshot/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:58
// 0x1925b28 __cxa_throw
// /usr/src/debug/gcc-snapshot/gcc/libstdc++-v3/libsupc++/eh_throw.cc:98
// 0x757466 gm2_parse_input_files
// /usr/src/debug/gcc-snapshot/gcc/gcc/m2/gm2-lang.cc:827
// 0x757466 gm2_langhook_parse_file
// /usr/src/debug/gcc-snapshot/gcc/gcc/m2/gm2-lang.cc:834
// Please submit a full bug report, with preprocessed source.
// Please include the complete backtrace with any bug report.
// See <https://aur.archlinux.org/packages/gcc-snapshot> for instructions.
// /usr/lib/gcc/x86_64-pc-linux-gnu/15.0.1/cc1gm2 -quiet -dumpdir a- -dumpbase
Test.mod -dumpbase-ext .mod -mtune=generic -march=x86-64 -freport-bug
-fm2-pathname=- -fm2-pathnameI. -fgen-module-list=- -fscaffold-dynamic
-fscaffold-main -flibs=m2cor,m2log,m2pim,m2iso -fm2-pathname=- -fm2-pathnameI.
Test.mod -o - -frandom-seed=0 -fdump-noaddr
--
FWIW, this behavior is also observable on GM2 13.2.0 (x86_64; Ubuntu)
and GM2 14.1.1 (x86_64; Arch). I tested different revisions of the
compiler before attempting the latest GM2 snapshot.
Cheers,
-Alcor.
- ICE on procedure-local CONST declaration,
Alcor <=