Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gcc7 for openSUSE:Factory checked in 
at 2026-05-12 19:26:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gcc7 (Old)
 and      /work/SRC/openSUSE:Factory/.gcc7.new.1966 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gcc7"

Tue May 12 19:26:40 2026 rev:49 rq:1352492 version:7.5.0+r278197

Changes:
--------
--- /work/SRC/openSUSE:Factory/gcc7/gcc7.changes        2025-09-05 
21:45:04.849111823 +0200
+++ /work/SRC/openSUSE:Factory/.gcc7.new.1966/gcc7.changes      2026-05-12 
19:27:07.912239922 +0200
@@ -1,0 +2,12 @@
+Mon May 11 12:01:59 UTC 2026 - Richard Biener <[email protected]>
+
+- Add gcc7-pr105225.patch to fix build with glibc 2.43 
+- Drop -fcf-protection from optflags, it's not supported by GCC 7.
+
+-------------------------------------------------------------------
+Thu Jan 15 08:13:22 UTC 2026 - Richard Biener <[email protected]>
+
+- Add gcc7-pr58150.patch to fix annoying missing debug info with
+  enum class forward declarations.
+
+-------------------------------------------------------------------

Old:
----
  pre_checkin.sh

New:
----
  gcc7-pr105225.patch
  gcc7-pr58150.patch

----------(New B)----------
  New:
- Add gcc7-pr105225.patch to fix build with glibc 2.43 
- Drop -fcf-protection from optflags, it's not supported by GCC 7.
  New:
- Add gcc7-pr58150.patch to fix annoying missing debug info with
  enum class forward declarations.
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ cross-aarch64-gcc7.spec ++++++
--- /var/tmp/diff_new_pack.RaNdgM/_old  2026-05-12 19:27:12.828443672 +0200
+++ /var/tmp/diff_new_pack.RaNdgM/_new  2026-05-12 19:27:12.828443672 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package cross-aarch64-gcc7
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -160,6 +160,8 @@
 Patch50:        gcc7-enable-mpx-in-as.patch
 Patch70:        gcc7-pr81103.patch
 Patch71:        gcc7-libsanitizer-termio.patch
+Patch72:        gcc7-pr58150.patch
+Patch73:        gcc7-pr105225.patch
 # A set of patches from the RH srpm
 Patch51:        gcc41-ppc32-retaddr.patch
 # Some patches taken from Debian
@@ -366,6 +368,8 @@
 %if %{suse_version} >= 1600
 %patch -P 71 -p1
 %endif
+%patch -P 72 -p1
+%patch -P 73 -p1
 %patch -P 51
 %patch -P 60
 %patch -P 61
@@ -415,7 +419,7 @@
 mkdir obj-%{GCCDIST}
 cd obj-%{GCCDIST}
 RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
-RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 
's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 
's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 
's/-m32//g' -e 's/-m64//g'`
+RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 
's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 
's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-fcf-protection[^ 
]*//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
 %ifarch %ix86
 # -mcpu is superceded by -mtune but -mtune is not supported by
 # our bootstrap compiler.  -mcpu gives a warning that stops

cross-arm-gcc7.spec: same change
cross-arm-none-gcc7-bootstrap.spec: same change
cross-arm-none-gcc7.spec: same change
cross-avr-gcc7-bootstrap.spec: same change
cross-avr-gcc7.spec: same change
cross-hppa-gcc7.spec: same change
cross-i386-gcc7.spec: same change
cross-m68k-gcc7.spec: same change
cross-mips-gcc7.spec: same change
cross-nvptx-gcc7.spec: same change
cross-ppc64-gcc7.spec: same change
cross-ppc64le-gcc7.spec: same change
cross-rx-gcc7-bootstrap.spec: same change
cross-rx-gcc7.spec: same change
cross-s390x-gcc7.spec: same change
cross-sparc-gcc7.spec: same change
cross-sparc64-gcc7.spec: same change
cross-x86_64-gcc7.spec: same change
++++++ gcc7-testresults.spec ++++++
--- /var/tmp/diff_new_pack.RaNdgM/_old  2026-05-12 19:27:14.144498215 +0200
+++ /var/tmp/diff_new_pack.RaNdgM/_new  2026-05-12 19:27:14.144498215 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package gcc7-testresults
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -361,6 +361,8 @@
 Patch50:        gcc7-enable-mpx-in-as.patch
 Patch70:        gcc7-pr81103.patch
 Patch71:        gcc7-libsanitizer-termio.patch
+Patch72:        gcc7-pr58150.patch
+Patch73:        gcc7-pr105225.patch
 # A set of patches from the RH srpm
 Patch51:        gcc41-ppc32-retaddr.patch
 # Some patches taken from Debian
@@ -397,7 +399,7 @@
 Patch127:       gcc7-pr88345-min-func-alignment.diff
 
 Summary:        Testsuite results
-License:        SUSE-Public-Domain
+License:        LicenseRef-SUSE-Public-Domain
 Group:          Development/Languages/C and C++
 
 %description
@@ -554,6 +556,8 @@
 %if %{suse_version} >= 1600
 %patch -P 71 -p1
 %endif
+%patch -P 72 -p1
+%patch -P 73 -p1
 %patch -P 51
 %patch -P 60
 %patch -P 61
@@ -603,7 +607,7 @@
 mkdir obj-%{GCCDIST}
 cd obj-%{GCCDIST}
 RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
-RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 
's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 
's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 
's/-m32//g' -e 's/-m64//g'`
+RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 
's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 
's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-fcf-protection[^ 
]*//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
 %ifarch %ix86
 # -mcpu is superceded by -mtune but -mtune is not supported by
 # our bootstrap compiler.  -mcpu gives a warning that stops

++++++ gcc7.spec ++++++
--- /var/tmp/diff_new_pack.RaNdgM/_old  2026-05-12 19:27:14.184499873 +0200
+++ /var/tmp/diff_new_pack.RaNdgM/_new  2026-05-12 19:27:14.192500205 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package gcc7
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -340,6 +340,8 @@
 Patch50:        gcc7-enable-mpx-in-as.patch
 Patch70:        gcc7-pr81103.patch
 Patch71:        gcc7-libsanitizer-termio.patch
+Patch72:        gcc7-pr58150.patch
+Patch73:        gcc7-pr105225.patch
 # A set of patches from the RH srpm
 Patch51:        gcc41-ppc32-retaddr.patch
 # Some patches taken from Debian
@@ -1734,7 +1736,7 @@
 
 %package -n gcc7-testresults
 Summary:        Testsuite results
-License:        SUSE-Public-Domain
+License:        LicenseRef-SUSE-Public-Domain
 Group:          Development/Languages/C and C++
 
 %description -n gcc7-testresults
@@ -1891,6 +1893,8 @@
 %if %{suse_version} >= 1600
 %patch -P 71 -p1
 %endif
+%patch -P 72 -p1
+%patch -P 73 -p1
 %patch -P 51
 %patch -P 60
 %patch -P 61
@@ -1940,7 +1944,7 @@
 mkdir obj-%{GCCDIST}
 cd obj-%{GCCDIST}
 RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
-RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 
's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 
's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 
's/-m32//g' -e 's/-m64//g'`
+RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 
's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 
's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-fcf-protection[^ 
]*//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
 %ifarch %ix86
 # -mcpu is superceded by -mtune but -mtune is not supported by
 # our bootstrap compiler.  -mcpu gives a warning that stops
@@ -2533,6 +2537,7 @@
 rm -f $RPM_BUILD_ROOT%{libsubdir}/include-fixed/sys/rseq.h
 rm -f $RPM_BUILD_ROOT%{libsubdir}/include-fixed/sys/mount.h
 rm -f $RPM_BUILD_ROOT%{libsubdir}/include-fixed/bits/sched.h
+rm -f $RPM_BUILD_ROOT%{libsubdir}/include-fixed/bits/fcntl-linux.h
 %if !%{enable_plugins}
 # no plugins
 rm -rf $RPM_BUILD_ROOT%{libsubdir}/plugin

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.RaNdgM/_old  2026-05-12 19:27:14.304504847 +0200
+++ /var/tmp/diff_new_pack.RaNdgM/_new  2026-05-12 19:27:14.308505013 +0200
@@ -1,5 +1,5 @@
-mtime: 1757072748
-commit: 5412cae25e05b0479af5715458ce23947bb8c2698864b26c406132817d407a06
+mtime: 1778507476
+commit: fd66ab96a44f19170e1f1f111a31c67e0503c6c0aedf6ab4b07071649d925033
 url: https://src.opensuse.org/gcc/gcc7.git
 revision: main
 

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pre_checkin.sh new/pre_checkin.sh
--- old/pre_checkin.sh  1970-01-01 01:00:00.000000000 +0100
+++ new/pre_checkin.sh  2026-05-11 15:51:16.000000000 +0200
@@ -0,0 +1,31 @@
+#!/bin/bash
+# This script is called automatically during autobuild checkin.
+
+case $0 in
+  \./*)
+    here=$PWD
+    ;;
+  */*)
+    here=${0%/*}
+    ;;
+  *)
+    here=$PWD
+    ;;
+esac
+case ${here##*/} in
+  gcc*.*)
+    # Handle maintainance projects with .$REPO suffix
+    suffix=${here##*/}
+    suffix=${suffix%%\.*}
+    set ${suffix#gcc}
+    ;;
+  gcc-*)
+    suffix=${here##*/}
+    set ${suffix#*-}-
+    ;;
+  gcc[0-9]*)
+    suffix=${here##*/}
+    set ${suffix#gcc}
+    ;;
+esac
+. ${here}/change_spec

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-05-11 15:51:16.000000000 +0200
@@ -0,0 +1 @@
+.osc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pre_checkin.sh new/pre_checkin.sh
--- old/pre_checkin.sh  1970-01-01 01:00:00.000000000 +0100
+++ new/pre_checkin.sh  2026-05-11 15:51:16.000000000 +0200
@@ -0,0 +1,31 @@
+#!/bin/bash
+# This script is called automatically during autobuild checkin.
+
+case $0 in
+  \./*)
+    here=$PWD
+    ;;
+  */*)
+    here=${0%/*}
+    ;;
+  *)
+    here=$PWD
+    ;;
+esac
+case ${here##*/} in
+  gcc*.*)
+    # Handle maintainance projects with .$REPO suffix
+    suffix=${here##*/}
+    suffix=${suffix%%\.*}
+    set ${suffix#gcc}
+    ;;
+  gcc-*)
+    suffix=${here##*/}
+    set ${suffix#*-}-
+    ;;
+  gcc[0-9]*)
+    suffix=${here##*/}
+    set ${suffix#gcc}
+    ;;
+esac
+. ${here}/change_spec

++++++ gcc.spec.in ++++++
--- /var/tmp/diff_new_pack.RaNdgM/_old  2026-05-12 19:27:14.564515623 +0200
+++ /var/tmp/diff_new_pack.RaNdgM/_new  2026-05-12 19:27:14.568515789 +0200
@@ -347,6 +347,8 @@
 Patch50:       gcc7-enable-mpx-in-as.patch
 Patch70:       gcc7-pr81103.patch
 Patch71:       gcc7-libsanitizer-termio.patch
+Patch72:       gcc7-pr58150.patch
+Patch73:       gcc7-pr105225.patch
 # A set of patches from the RH srpm
 Patch51:       gcc41-ppc32-retaddr.patch
 # Some patches taken from Debian
@@ -1165,6 +1167,8 @@
 %if %{suse_version} >= 1600
 %patch -P 71 -p1
 %endif
+%patch -P 72 -p1
+%patch -P 73 -p1
 %patch -P 51
 %patch -P 60
 %patch -P 61
@@ -1214,7 +1218,7 @@
 mkdir obj-%{GCCDIST}
 cd obj-%{GCCDIST}
 RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
-RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 
's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 
's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 
's/-m32//g' -e 's/-m64//g'`
+RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 
's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 
's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-fcf-protection[^ 
]*//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
 %ifarch %ix86
 # -mcpu is superceded by -mtune but -mtune is not supported by
 # our bootstrap compiler.  -mcpu gives a warning that stops
@@ -1812,6 +1816,7 @@
 rm -f $RPM_BUILD_ROOT%{libsubdir}/include-fixed/sys/rseq.h
 rm -f $RPM_BUILD_ROOT%{libsubdir}/include-fixed/sys/mount.h
 rm -f $RPM_BUILD_ROOT%{libsubdir}/include-fixed/bits/sched.h
+rm -f $RPM_BUILD_ROOT%{libsubdir}/include-fixed/bits/fcntl-linux.h
 %if !%{enable_plugins}
 # no plugins
 rm -rf $RPM_BUILD_ROOT%{libsubdir}/plugin

++++++ gcc7-pr105225.patch ++++++
>From 90e87839c2406f4cb85ed8307be017b51e7f846c Mon Sep 17 00:00:00 2001
From: Richard Biener <[email protected]>
Date: Wed, 29 Jun 2022 15:32:04 -0700
Subject: [PATCH] libgo: handle stat st_atim32 field and SYS_SECCOMP
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
To: [email protected]

From: Ian Lance Taylor <[email protected]>

Patches for musl support, from Sören Tempel.

Fixes PR go/105225

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/415294
(cherry picked from commit 762fd5e5547e464e25b4bee435db6df4eda0de90)
---
 libgo/mksysinfo.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh
index 3c2c2d2ad01..3158a9fb2e1 100755
--- a/libgo/mksysinfo.sh
+++ b/libgo/mksysinfo.sh
@@ -98,6 +98,7 @@ fi
 
 # The syscall numbers.  We force the names to upper case.
 grep '^const _SYS_' gen-sysinfo.go | \
+  grep -v '^const _SYS_SECCOMP = ' | \
   sed -e 's/const _\(SYS_[^= ]*\).*$/\1/' | \
   while read sys; do
     sup=`echo $sys | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
-- 
2.51.0


++++++ gcc7-pr58150.patch ++++++
>From 04b5dce4bfe9c5b30a926a5756337a445dcd2d8a Mon Sep 17 00:00:00 2001
From: Richard Biener <[email protected]>
Date: Sun, 11 Mar 2018 17:50:08 +0100
Subject: [PATCH] re PR debug/58150 (debug info about definition of enum class
 not emitted if the declaration was already used in a class)
To: [email protected]

From: Jakub Jelinek <[email protected]>

        PR debug/58150
        * dwarf2out.c (gen_enumeration_type_die): Don't guard adding
        DW_AT_declaration for ENUM_IS_OPAQUE on -gdwarf-4 or -gno-strict-dwarf,
        but on TYPE_SIZE.  Don't do anything for ENUM_IS_OPAQUE if not creating
        a new die.  Don't set TREE_ASM_WRITTEN if ENUM_IS_OPAQUE.  Guard
        addition of most attributes on !orig_type_die or the attribute not
        being present already.  Assert TYPE_VALUES is NULL for ENUM_IS_OPAQUE.

        * g++.dg/debug/dwarf2/enum2.C: New test.

From-SVN: r258434
(cherry picked from commit cd5437ab5d98cf95cc6686a533b7d3582bcb1706)
---
 gcc/dwarf2out.c                           | 37 ++++++++++++++---------
 gcc/testsuite/g++.dg/debug/dwarf2/enum2.C | 30 ++++++++++++++++++
 2 files changed, 52 insertions(+), 15 deletions(-)
 create mode 100644 gcc/testsuite/g++.dg/debug/dwarf2/enum2.C

diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 317fd84b9de..026c74216c5 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -21083,6 +21083,7 @@ static dw_die_ref
 gen_enumeration_type_die (tree type, dw_die_ref context_die)
 {
   dw_die_ref type_die = lookup_type_die (type);
+  dw_die_ref orig_type_die = type_die;
 
   if (type_die == NULL)
     {
@@ -21090,20 +21091,18 @@ gen_enumeration_type_die (tree type, dw_die_ref 
context_die)
                          scope_die_for (type, context_die), type);
       equate_type_number_to_die (type, type_die);
       add_name_attribute (type_die, type_tag (type));
-      if (dwarf_version >= 4 || !dwarf_strict)
-       {
-         if (ENUM_IS_SCOPED (type))
-           add_AT_flag (type_die, DW_AT_enum_class, 1);
-         if (ENUM_IS_OPAQUE (type))
-           add_AT_flag (type_die, DW_AT_declaration, 1);
-       }
+      if ((dwarf_version >= 4 || !dwarf_strict)
+         && ENUM_IS_SCOPED (type))
+       add_AT_flag (type_die, DW_AT_enum_class, 1);
+      if (ENUM_IS_OPAQUE (type) && TYPE_SIZE (type))
+       add_AT_flag (type_die, DW_AT_declaration, 1);
       if (!dwarf_strict)
        add_AT_unsigned (type_die, DW_AT_encoding,
                         TYPE_UNSIGNED (type)
                         ? DW_ATE_unsigned
                         : DW_ATE_signed);
     }
-  else if (! TYPE_SIZE (type))
+  else if (! TYPE_SIZE (type) || ENUM_IS_OPAQUE (type))
     return type_die;
   else
     remove_AT (type_die, DW_AT_declaration);
@@ -21115,10 +21114,14 @@ gen_enumeration_type_die (tree type, dw_die_ref 
context_die)
     {
       tree link;
 
-      TREE_ASM_WRITTEN (type) = 1;
-      add_byte_size_attribute (type_die, type);
-      add_alignment_attribute (type_die, type);
-      if (dwarf_version >= 3 || !dwarf_strict)
+      if (!ENUM_IS_OPAQUE (type))
+       TREE_ASM_WRITTEN (type) = 1;
+      if (!orig_type_die || !get_AT (type_die, DW_AT_byte_size))
+       add_byte_size_attribute (type_die, type);
+      if (!orig_type_die || !get_AT (type_die, DW_AT_alignment))
+       add_alignment_attribute (type_die, type);
+      if ((dwarf_version >= 3 || !dwarf_strict)
+         && (!orig_type_die || !get_AT (type_die, DW_AT_type)))
        {
          tree underlying = lang_hooks.types.enum_underlying_base_type (type);
          add_type_attribute (type_die, underlying, TYPE_UNQUALIFIED, false,
@@ -21126,8 +21129,10 @@ gen_enumeration_type_die (tree type, dw_die_ref 
context_die)
        }
       if (TYPE_STUB_DECL (type) != NULL_TREE)
        {
-         add_src_coords_attributes (type_die, TYPE_STUB_DECL (type));
-         add_accessibility_attribute (type_die, TYPE_STUB_DECL (type));
+         if (!orig_type_die || !get_AT (type_die, DW_AT_decl_file))
+           add_src_coords_attributes (type_die, TYPE_STUB_DECL (type));
+         if (!orig_type_die || !get_AT (type_die, DW_AT_accessibility))
+           add_accessibility_attribute (type_die, TYPE_STUB_DECL (type));
        }
 
       /* If the first reference to this type was as the return type of an
@@ -21141,6 +21146,7 @@ gen_enumeration_type_die (tree type, dw_die_ref 
context_die)
          dw_die_ref enum_die = new_die (DW_TAG_enumerator, type_die, link);
          tree value = TREE_VALUE (link);
 
+         gcc_assert (!ENUM_IS_OPAQUE (type));
          add_name_attribute (enum_die,
                              IDENTIFIER_POINTER (TREE_PURPOSE (link)));
 
@@ -21170,7 +21176,8 @@ gen_enumeration_type_die (tree type, dw_die_ref 
context_die)
        }
 
       add_gnat_descriptive_type_attribute (type_die, type, context_die);
-      if (TYPE_ARTIFICIAL (type))
+      if (TYPE_ARTIFICIAL (type)
+         && (!orig_type_die || !get_AT (type_die, DW_AT_artificial)))
        add_AT_flag (type_die, DW_AT_artificial, 1);
     }
   else
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/enum2.C 
b/gcc/testsuite/g++.dg/debug/dwarf2/enum2.C
new file mode 100644
index 00000000000..6ccd4e436ec
--- /dev/null
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/enum2.C
@@ -0,0 +1,30 @@
+// PR debug/58150
+// { dg-do compile }
+// { dg-options "-std=c++11 -gdwarf-4 -dA -fno-merge-debug-strings" }
+// { dg-final { scan-assembler-times "DIE\[^\n\r\]*DW_TAG_enumeration_type" 3 
} }
+// { dg-final { scan-assembler-times " DW_AT_enum_class" 3 } }
+// { dg-final { scan-assembler-times " DW_AT_declaration" 1 } }
+// { dg-final { scan-assembler-times "\"E1..\"\[^\n\]*DW_AT_name" 1 } }
+// { dg-final { scan-assembler-times "\"E2..\"\[^\n\]*DW_AT_name" 1 } }
+// { dg-final { scan-assembler-times "\"F1..\"\[^\n\]*DW_AT_name" 1 } }
+// { dg-final { scan-assembler-times "\"F2..\"\[^\n\]*DW_AT_name" 1 } }
+
+enum class E : int;
+enum class F : int;
+enum class G : int;
+struct S { E s; };
+struct T { G t; };
+enum class E : int
+{
+  E1, E2
+};
+enum class F : int
+{
+  F1, F2
+};
+
+bool
+foo (E e, F f, G g)
+{
+  return e == E::E1 && f == F::F1 && (int) g == 0;
+}
-- 
2.51.0

Reply via email to