Bug#1056341: g++-12: rejects valid C++ with templates/auto
Package: g++-12 Version: 12.2.0-14 Severity: normal Tags: upstream X-Debbugs-Cc: david.turner+...@raspberrypi.com Dear Maintainer, The attached C++ file fails to compile in GCC 12.2 using the command `g++ --std=c++17 -c 1862683_reproducer.cpp`, but works correctly with 12.3 and with clang (godbolt link: https://godbolt.org/z/q4dGbTcvb). I came across this while building Firefox for Raspberry Pi OS using the Debian packaging scripts - this bug prevents Firefox from being built on Debian stable using GCC (the reproducer is simplified down from Firefox 119). Given this works in 12.3 it's almost certainly known and fixed upstream, but I'm not sure which upstream problem report would apply (possibly 106893 or 105623?). Please could the fix for this be backported to stable? Kind regards, David -- System Information: Debian Release: 12.2 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable-debug'), (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 6.1.0-13-amd64 (SMP w/20 CPU threads; PREEMPT) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB:en Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages g++-12 depends on: ii gcc-1212.2.0-14 ii gcc-12-base 12.2.0-14 ii libc6 2.36-9+deb12u3 ii libgmp10 2:6.2.1+dfsg1-1.1 ii libisl23 0.25-1 ii libmpc3 1.3.1-1 ii libmpfr6 4.2.0-1 ii libstdc++-12-dev 12.2.0-14 ii libzstd1 1.5.4+dfsg2-5 ii zlib1g1:1.2.13.dfsg-1 g++-12 recommends no packages. Versions of packages g++-12 suggests: pn g++-12-multilib ii gcc-12-doc 12.2.0-1 -- no debconf information #include // std::forward #include // {,u}int8_t, {,u}int16_t, {,u}int32_t enum Type { Int8, Uint8, }; namespace JS { template struct ExternalTypeOf {}; template <> struct ExternalTypeOf { using Type = int8_t; }; template <> struct ExternalTypeOf { using Type = uint8_t; }; template using ExternalTypeOf_t = typename ExternalTypeOf::Type; struct ArrayBuffer { using DataType = uint8_t; }; struct ArrayBufferView { using DataType = uint8_t; }; template struct TypedArray { using DataType = ExternalTypeOf_t; }; using Int8Array = TypedArray; using Uint8Array = TypedArray; } // namespace JS template struct Span { element_type *mData; int mLength; Span(element_type *aData, int aLength) : mData(aData), mLength(aLength) {} }; template struct TypedArray_base { using element_type = typename ArrayT::DataType; public: template void ProcessData( Processor&& aProcessor) const { aProcessor(GetCurrentData()); } private: Span GetCurrentData() const { element_type* mData = nullptr; uint32_t mLength = 0; return Span(mData, mLength); } }; template struct TypedArray : public TypedArray_base { using Base = TypedArray_base; using element_type = typename Base::element_type; TypedArray() = default; }; struct ArrayBufferView_base : public TypedArray_base { private: using Base = TypedArray_base; }; using Int8Array = TypedArray; using Uint8Array = TypedArray; using ArrayBufferView = ArrayBufferView_base; using ArrayBuffer = TypedArray; template struct ApplyToTypedArray; #define APPLY_IMPL(type) \ template \ struct ApplyToTypedArray { \ /* Return type of calling the lambda with a TypedArray 'type'. */ \ template \ using FunReturnType = decltype(std::declval()(std::declval())); \ \ template \ using ApplyReturnType = \ std::conditional_t, FunReturnType>; \ \ public: \ template \ static ApplyReturnType Apply(const Union& aUnion, F&& aFun) { \ if (!aUnion.Is##type()) { \ return ApplyReturnType(); /* false or Nothing() */ \ } \ if constexpr (true) {\ std::forward(aFun)(aUnion.GetAs##type()); \ return;\ } else { \ return Some(std::forward(aFun)(aUnion.GetAs##type())); \ }
Bug#1055750: Bug#1055228: plplot: FTBFS on armhf (test segfault)
Control: reassign -1 plplot Control: forwarded 1055228 https://sourceforge.net/p/plplot/bugs/206/ Control: merge -1 1055228 * Emanuele Rocca [2023-11-16 09:30]: To be honest I think it's safe to close 1055750 (gfortran) and mark 1055228 (plplot) as forwarded upstream though, I don't think we have any reasons to believe the compiler is at fault really. Thanks for the suggestion, Emanuele. I am hereby merging both bugs, which are now both assigned to plplot. Best, Rafael Laboissière
Processed (with 1 error): Re: Bug#1055750: Bug#1055228: plplot: FTBFS on armhf (test segfault)
Processing control commands: > reassign -1 plplot Bug #1055750 [gfortran] gfortran: [armhf] Yield SIGBUS when compiling with -fstack-clash-protection Bug reassigned from package 'gfortran' to 'plplot'. No longer marked as found in versions 13.2.0-1. Ignoring request to alter fixed versions of bug #1055750 to the same values previously set > forwarded 1055228 https://sourceforge.net/p/plplot/bugs/206/ Bug #1055228 [plplot] plplot: FTBFS on armhf (test segfault) Ignoring request to change the forwarded-to-address of bug#1055228 to the same value > merge -1 1055228 Bug #1055750 [plplot] gfortran: [armhf] Yield SIGBUS when compiling with -fstack-clash-protection Unable to merge bugs because: severity of #1055228 is 'serious' not 'normal' Failed to merge 1055750: Did not alter merged bugs. -- 1055228: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1055228 1055750: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1055750 Debian Bug Tracking System Contact ow...@bugs.debian.org with problems
Bug#1056368: gcc-12: There is no man page fr gcc
Package: gcc-12 Version: 12.2.0-14 Severity: important X-Debbugs-Cc: worik.stan...@tirotech.co.nz Dear Maintainer, *** Reporter, please consider answering these questions, where appropriate *** * What led up to the situation? `man gcc` * What exactly did you do (or not do) that was effective (or ineffective)? `man gcc` * What was the outcome of this action? > ~$ man gcc > No manual entry for gcc * What outcome did you expect instead? A man page *** End of the template - remove these template lines *** -- System Information: Debian Release: 12.2 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 6.1.0-13-amd64 (SMP w/8 CPU threads; PREEMPT) Locale: LANG=en_NZ.UTF-8, LC_CTYPE=en_NZ.UTF-8 (charmap=UTF-8), LANGUAGE=en_NZ:en Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages gcc-12 depends on: ii binutils 2.40-2 ii cpp-12 12.2.0-14 ii gcc-12-base12.2.0-14 ii libc6 2.36-9+deb12u3 ii libcc1-0 12.2.0-14 ii libgcc-12-dev 12.2.0-14 ii libgcc-s1 12.2.0-14 ii libgmp10 2:6.2.1+dfsg1-1.1 ii libisl23 0.25-1 ii libmpc31.3.1-1 ii libmpfr6 4.2.0-1 ii libstdc++6 12.2.0-14 ii libzstd1 1.5.4+dfsg2-5 ii zlib1g 1:1.2.13.dfsg-1 Versions of packages gcc-12 recommends: ii libc6-dev 2.36-9+deb12u3 Versions of packages gcc-12 suggests: pn gcc-12-doc pn gcc-12-locales pn gcc-12-multilib -- no debconf information
Bug#1056368: gcc-12: There is no man page fr gcc
More information: There is no `gcc-12-doc` package, that I can install On Wed, 22 Nov 2023 at 10:15, Worik Stanton wrote: > Package: gcc-12 > Version: 12.2.0-14 > Severity: important > X-Debbugs-Cc: worik.stan...@tirotech.co.nz > > Dear Maintainer, > > *** Reporter, please consider answering these questions, where appropriate > *** > >* What led up to the situation? > > `man gcc` > >* What exactly did you do (or not do) that was effective (or > ineffective)? > > `man gcc` >* What was the outcome of this action? > > ~$ man gcc > > No manual entry for gcc > >* What outcome did you expect instead? > A man page > *** End of the template - remove these template lines *** > > > -- System Information: > Debian Release: 12.2 > APT prefers stable-updates > APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, > 'stable') > Architecture: amd64 (x86_64) > > Kernel: Linux 6.1.0-13-amd64 (SMP w/8 CPU threads; PREEMPT) > Locale: LANG=en_NZ.UTF-8, LC_CTYPE=en_NZ.UTF-8 (charmap=UTF-8), > LANGUAGE=en_NZ:en > Shell: /bin/sh linked to /usr/bin/dash > Init: systemd (via /run/systemd/system) > LSM: AppArmor: enabled > > Versions of packages gcc-12 depends on: > ii binutils 2.40-2 > ii cpp-12 12.2.0-14 > ii gcc-12-base12.2.0-14 > ii libc6 2.36-9+deb12u3 > ii libcc1-0 12.2.0-14 > ii libgcc-12-dev 12.2.0-14 > ii libgcc-s1 12.2.0-14 > ii libgmp10 2:6.2.1+dfsg1-1.1 > ii libisl23 0.25-1 > ii libmpc31.3.1-1 > ii libmpfr6 4.2.0-1 > ii libstdc++6 12.2.0-14 > ii libzstd1 1.5.4+dfsg2-5 > ii zlib1g 1:1.2.13.dfsg-1 > > Versions of packages gcc-12 recommends: > ii libc6-dev 2.36-9+deb12u3 > > Versions of packages gcc-12 suggests: > pn gcc-12-doc > pn gcc-12-locales > pn gcc-12-multilib > > -- no debconf information >