Your message dated Sat, 13 Jun 2026 11:08:28 +0200 with message-id <[email protected]> and subject line fixed in 16.1.0-1 has caused the Debian Bug report #1133179, regarding g++-16: internal compiler error: in register_duplicate, at cp/module.cc:13054 to be marked as done.
This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact [email protected] immediately.) -- 1133179: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1133179 Debian Bug Tracking System Contact [email protected] with problems
--- Begin Message ---Package: g++-16 Version: 16-20260322-1 Severity: normal Dear Maintainer, A colleague (in Bcc to preserve their email address from spam from scrapers of the BTS) identified an internal compiler error affecting import of <memory> with modules support. The error does not appear with g++-15. They suspect commit 10b8379 "[PATCH] libstdc++: Add smart ptr owner_equals and owner_hash" to have revealed the problem, but they admit it may have simply raised a pre-existing bug that remained dormant. Symptoms look like: $ make g++-16 -std=gnu++26 -fmodules -c -o qt.o qt.cpp g++-16 -std=gnu++26 -fmodules -c -o failed_mod.o failed_mod.cpp In file included from failed_mod.cpp:3: minimal.h:56:13: internal compiler error: in register_duplicate, at cp/module.cc:13054 56 | return {}; | ^ 0x322e8ff internal_error(char const*, ...) ../../src/gcc/diagnostic-global-context.cc:787 0xf9e0cf fancy_abort(char const*, int, char const*) ../../src/gcc/diagnostics/context.cc:1813 0x114a416 register_duplicate ../../src/gcc/cp/module.cc:13054 0x11547a8 decl_value ../../src/gcc/cp/module.cc:8819 0x114a714 tree_node ../../src/gcc/cp/module.cc:10437 0x11536e6 module_state::read_cluster(unsigned int) ../../src/gcc/cp/module.cc:17682 0x11541cf module_state::load_section(unsigned int, binding_slot*) ../../src/gcc/cp/module.cc:21516 0x1154286 module_state::lazy_load(unsigned int, binding_slot*) ../../src/gcc/cp/module.cc:22539 0x114c245 tree_node ../../src/gcc/cp/module.cc:11045 0x115333b module_state::read_cluster(unsigned int) ../../src/gcc/cp/module.cc:17519 0x11541cf module_state::load_section(unsigned int, binding_slot*) ../../src/gcc/cp/module.cc:21516 0x1154286 module_state::lazy_load(unsigned int, binding_slot*) ../../src/gcc/cp/module.cc:22539 0x114c245 tree_node ../../src/gcc/cp/module.cc:11045 0x115333b module_state::read_cluster(unsigned int) ../../src/gcc/cp/module.cc:17519 0x11541cf module_state::load_section(unsigned int, binding_slot*) ../../src/gcc/cp/module.cc:21516 0x1154286 module_state::lazy_load(unsigned int, binding_slot*) ../../src/gcc/cp/module.cc:22539 0x11585fa lazy_load_pendings(tree_node*, tree_node*) ../../src/gcc/cp/module.cc:22640 0x125e987 instantiate_decl(tree_node*, bool, bool) ../../src/gcc/cp/pt.cc:28601 0x126923b instantiate_pending_templates(int) ../../src/gcc/cp/pt.cc:28896 0x10bbc8c c_parse_final_cleanups() ../../src/gcc/cp/decl2.cc:5887 /usr/libexec/gcc/x86_64-linux-gnu/16/cc1plus -quiet -imultiarch x86_64-linux-gnu -D_GNU_SOURCE failed_mod.cpp -quiet -dumpbase failed_mod.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -std=gnu++26 -fmodules -fasynchronous-unwind-tables -o /tmp/ccXRarOv.s Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See <file:///usr/share/doc/gcc-16/README.Bugs> for instructions. make: *** [<builtin>: failed_mod.o] Error 1 I have attached the reproducer files to the bug report. In its current state, the reproducer depends on: * g++-16 * qt6-base-dev but I guess there may be options to further reduce the scope. Have a nice day, :) Étienne. -- System Information: Debian Release: forky/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 6.19.11+deb14-amd64 (SMP w/12 CPU threads; PREEMPT) Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages g++-16 depends on: pn g++-16-x86-64-linux-gnu <none> pn gcc-16 <none> ii gcc-16-base 16-20260322-1 g++-16 recommends no packages. Versions of packages g++-16 suggests: pn g++-16-multilib <none> pn gcc-16-doc <none> -- .''`. Étienne Mollier <[email protected]> : :' : pgp: 8f91 b227 c7d6 f2b1 948c 8236 793c f67e 8f0d 11da `. `' sent from /dev/pts/0, please excuse my verbosity `- on air: Saga - Chase The Windmodule; #include "minimal.h" export module failed_mod; import qt;CXX = g++-16 CXXFLAGS = -std=gnu++26 -fmodules all: failed_mod.o .PHONY: all failed_mod.o: qt.o clean: rm -vf *.o *.i rm -rvf gcm.cache .PHONY: clean#ifndef QOBJECT_H #define QOBJECT_H #include <memory> template<typename T> struct QTypeInfo { static constexpr bool isIntegral = true; }; template<typename T> struct QBasicAtomicInteger { static_assert(QTypeInfo<T>::isIntegral, "template parameter is not an integral type"); }; class QObject; struct QMetaObject { const QObject* cast(const QObject* obj) const; }; struct QByteArray { QBasicAtomicInteger<int> at; }; namespace std { template<> struct hash<QByteArray> {}; } // namespace std template<typename Enum> struct QFlags { QFlags() {} }; struct QMetaType { enum class TypeFlag { }; typedef QFlags<TypeFlag> TypeFlags; static int registerType(const QMetaObject* metaObject); }; inline QFlags<int> operator|(QMetaType::TypeFlag /*f1*/, QMetaType::TypeFlag /*f2*/) noexcept { return {}; } template<typename T> struct CapabilitiesImpl; struct QSequentialIterableImpl { template<class T> QSequentialIterableImpl() { CapabilitiesImpl<T>::IteratorCapabilities | (1 << 4); } }; template<> struct QTypeInfo<QSequentialIterableImpl> {}; class QObject { static bool disconnect(const QObject* sender, const char* signal, const QObject* receiver, const char* member); bool disconnect(const char* signal, const QObject* receiver, const char* member) const; std::unique_ptr<int> d_ptr; }; #endif // QOBJECT_Hmodule; #include "minimal.h" export module qt; export using QObject = ::QObject; extern "C++" int main() { }
signature.asc
Description: PGP signature
--- End Message ---
--- Begin Message ---Version: 16.1.0-1 fixed in 16.1.0-1.
--- End Message ---

