public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Jakub Jelinek <jakub@fedoraproject.org>
To: git-commits@fedoraproject.org
Subject: [rpms/gcc] rhel-f41-base: 4.1.2-31
Date: Mon, 29 Jun 2026 12:23:28 GMT [thread overview]
Message-ID: <178273580884.1.9312747250123271000.rpms-gcc-720e849aa6e7@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/gcc
Branch : rhel-f41-base
Commit : 720e849aa6e73974c5bbab9a935b350dbcfb571c
Author : Jakub Jelinek <jakub@fedoraproject.org>
Date : 2007-10-02T22:21:55+00:00
Stats : +158/-1 in 3 file(s)
URL : https://src.fedoraproject.org/rpms/gcc/c/720e849aa6e73974c5bbab9a935b350dbcfb571c?branch=rhel-f41-base
Log:
4.1.2-31
---
diff --git a/gcc41-c++-builtin-redecl.patch b/gcc41-c++-builtin-redecl.patch
new file mode 100644
index 0000000..77655ad
--- /dev/null
+++ b/gcc41-c++-builtin-redecl.patch
@@ -0,0 +1,102 @@
+2007-10-02 Jakub Jelinek <jakub@redhat.com>
+
+ * decl.c (duplicate_decls): When redeclaring a builtin function,
+ keep the merged decl builtin whenever types match, even if new
+ decl defines a function.
+
+ * gcc.dg/builtins-65.c: New test.
+ * g++.dg/ext/builtin10.C: New test.
+
+--- gcc/cp/decl.c.jj 2007-10-01 22:11:09.000000000 +0200
++++ gcc/cp/decl.c 2007-10-02 11:39:46.000000000 +0200
+@@ -1988,23 +1988,21 @@ duplicate_decls (tree newdecl, tree oldd
+ DECL_ARGUMENTS (olddecl) = DECL_ARGUMENTS (newdecl);
+ DECL_RESULT (olddecl) = DECL_RESULT (newdecl);
+ }
++ /* If redeclaring a builtin function, it stays built in. */
++ if (types_match && DECL_BUILT_IN (olddecl))
++ {
++ DECL_BUILT_IN_CLASS (newdecl) = DECL_BUILT_IN_CLASS (olddecl);
++ DECL_FUNCTION_CODE (newdecl) = DECL_FUNCTION_CODE (olddecl);
++ /* If we're keeping the built-in definition, keep the rtl,
++ regardless of declaration matches. */
++ COPY_DECL_RTL (olddecl, newdecl);
++ }
+ if (new_defines_function)
+ /* If defining a function declared with other language
+ linkage, use the previously declared language linkage. */
+ SET_DECL_LANGUAGE (newdecl, DECL_LANGUAGE (olddecl));
+ else if (types_match)
+ {
+- /* If redeclaring a builtin function, and not a definition,
+- it stays built in. */
+- if (DECL_BUILT_IN (olddecl))
+- {
+- DECL_BUILT_IN_CLASS (newdecl) = DECL_BUILT_IN_CLASS (olddecl);
+- DECL_FUNCTION_CODE (newdecl) = DECL_FUNCTION_CODE (olddecl);
+- /* If we're keeping the built-in definition, keep the rtl,
+- regardless of declaration matches. */
+- COPY_DECL_RTL (olddecl, newdecl);
+- }
+-
+ DECL_RESULT (newdecl) = DECL_RESULT (olddecl);
+ /* Don't clear out the arguments if we're redefining a function. */
+ if (DECL_ARGUMENTS (olddecl))
+--- gcc/testsuite/gcc.dg/builtins-65.c.jj 2007-10-02 11:23:51.000000000 +0200
++++ gcc/testsuite/gcc.dg/builtins-65.c 2007-10-02 11:24:12.000000000 +0200
+@@ -0,0 +1,25 @@
++/* { dg-do compile } */
++/* { dg-options "-O2" } */
++
++typedef __SIZE_TYPE__ size_t;
++extern void __chk_fail (void);
++extern int snprintf (char *, size_t, const char *, ...);
++extern inline __attribute__((gnu_inline, always_inline)) int snprintf (char *a, size_t b, const char *fmt, ...)
++{
++ if (__builtin_object_size (a, 0) != -1UL && __builtin_object_size (a, 0) < b)
++ __chk_fail ();
++ return __builtin_snprintf (a, b, fmt, __builtin_va_arg_pack ());
++}
++extern int snprintf (char *, size_t, const char *, ...) __asm ("mysnprintf");
++
++char buf[10];
++
++int
++main (void)
++{
++ snprintf (buf, 10, "%d%d\n", 10, 10);
++ return 0;
++}
++
++/* { dg-final { scan-assembler "mysnprintf" } } */
++/* { dg-final { scan-assembler-not "__chk_fail" } } */
+--- gcc/testsuite/g++.dg/ext/builtin10.C.jj 2007-10-02 11:19:45.000000000 +0200
++++ gcc/testsuite/g++.dg/ext/builtin10.C 2007-10-02 11:23:26.000000000 +0200
+@@ -0,0 +1,27 @@
++// { dg-do compile }
++// { dg-options "-O2" }
++
++typedef __SIZE_TYPE__ size_t;
++extern "C" {
++extern void __chk_fail (void);
++extern int snprintf (char *, size_t, const char *, ...);
++extern inline __attribute__((gnu_inline, always_inline)) int snprintf (char *a, size_t b, const char *fmt, ...)
++{
++ if (__builtin_object_size (a, 0) != -1UL && __builtin_object_size (a, 0) < b)
++ __chk_fail ();
++ return __builtin_snprintf (a, b, fmt, __builtin_va_arg_pack ());
++}
++extern int snprintf (char *, size_t, const char *, ...) __asm ("mysnprintf");
++}
++
++char buf[10];
++
++int
++main (void)
++{
++ snprintf (buf, 10, "%d%d\n", 10, 10);
++ return 0;
++}
++
++// { dg-final { scan-assembler "mysnprintf" } }
++// { dg-final { scan-assembler-not "__chk_fail" } }
diff --git a/gcc41-c++-guard-visibility.patch b/gcc41-c++-guard-visibility.patch
new file mode 100644
index 0000000..b9ed079
--- /dev/null
+++ b/gcc41-c++-guard-visibility.patch
@@ -0,0 +1,47 @@
+2007-09-06 Jason Merrill <jason@redhat.com>
+
+ * decl2.c (get_guard): Copy visibility from the guarded variable.
+
+--- gcc/cp/decl2.c (revision 128225)
++++ gcc/cp/decl2.c (revision 128226)
+@@ -2215,6 +2215,8 @@ get_guard (tree decl)
+ DECL_ONE_ONLY (guard) = DECL_ONE_ONLY (decl);
+ if (TREE_PUBLIC (decl))
+ DECL_WEAK (guard) = DECL_WEAK (decl);
++ DECL_VISIBILITY (guard) = DECL_VISIBILITY (decl);
++ DECL_VISIBILITY_SPECIFIED (guard) = DECL_VISIBILITY_SPECIFIED (decl);
+
+ DECL_ARTIFICIAL (guard) = 1;
+ DECL_IGNORED_P (guard) = 1;
+--- gcc/testsuite/g++.dg/ext/visibility/guard1.C (revision 0)
++++ gcc/testsuite/g++.dg/ext/visibility/guard1.C (revision 128226)
+@@ -0,0 +1,29 @@
++// { dg-options "-fvisibility=hidden" }
++// { dg-require-visibility "" }
++// { dg-final { scan-not-hidden "_ZGVZN5otherclEvE4s_cd" } }
++
++extern "C" int printf (const char *, ...);
++
++#define DLLEXPORT __attribute__ ((visibility("default")))
++
++struct class_data
++{
++ int apple;
++ class_data() { printf("non trivial ctor\n"); }
++};
++
++struct DLLEXPORT other
++{
++ class_data* operator ()()
++ {
++ static class_data s_cd;
++ return &s_cd;
++ }
++};
++
++int main()
++{
++ other aFoo;
++ aFoo();
++ return 0;
++}
diff --git a/gcc41.spec b/gcc41.spec
index b3cc983..85c6360 100644
--- a/gcc41.spec
+++ b/gcc41.spec
@@ -1,6 +1,6 @@
%define DATE 20070925
%define gcc_version 4.1.2
-%define gcc_release 30
+%define gcc_release 31
%define _unpackaged_files_terminate_build 0
%define multilib_64_archs sparc64 ppc64 s390x x86_64
%define include_gappletviewer 1
@@ -147,6 +147,8 @@ Patch30: gcc41-pr20880.patch
Patch31: gcc41-pr32694.patch
Patch32: gcc41-virtual-inline-backtrace.patch
Patch33: gcc41-c++-gnu-inline-redecl.patch
+Patch34: gcc41-c++-builtin-redecl.patch
+Patch35: gcc41-c++-guard-visibility.patch
# On ARM EABI systems, we do want -gnueabi to be part of the
# target triple.
@@ -463,6 +465,8 @@ which are required to run programs compiled with the GNAT.
%patch31 -p0 -b .pr32694~
%patch32 -p0 -b .virtual-inline-backtrace~
%patch33 -p0 -b .c++-gnu-inline-redecl~
+%patch34 -p0 -b .c++-builtin-redecl~
+%patch35 -p0 -b .c++-guard-visibility~
sed -i -e 's/4\.1\.3/4.1.2/' gcc/BASE-VER gcc/version.c
sed -i -e 's/" (Red Hat[^)]*)"/" (Red Hat %{version}-%{gcc_release})"/' gcc/version.c
@@ -1617,6 +1621,10 @@ fi
%doc rpm.doc/changelogs/libmudflap/ChangeLog*
%changelog
+* Wed Oct 3 2007 Jakub Jelinek <jakub@redhat.com> 4.1.2-31
+- fix visibility of C++ guard variables (Jason Merrill)
+- don't drop DECL_BUILT_IN_CLASS when defining a builtin function
+
* Mon Oct 1 2007 Jakub Jelinek <jakub@redhat.com> 4.1.2-30
- fix ICE on C++ gnu_inline function followed by prototype of the same
fn (Alexandre Oliva)
reply other threads:[~2026-06-29 12:23 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178273580884.1.9312747250123271000.rpms-gcc-720e849aa6e7@fedoraproject.org \
--to=jakub@fedoraproject.org \
--cc=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox