summaryrefslogtreecommitdiffstats
path: root/testing/source/gcc/patches
diff options
context:
space:
mode:
Diffstat (limited to 'testing/source/gcc/patches')
-rw-r--r--testing/source/gcc/patches/PR100102-2.a1b3484a8e6c53c8084723e3f1738d402374198e.patch59
-rw-r--r--testing/source/gcc/patches/gcc-no_fixincludes.diff27
-rw-r--r--testing/source/gcc/patches/gfortran.deferred-shape-vs-assumed-shape.patch40
3 files changed, 126 insertions, 0 deletions
diff --git a/testing/source/gcc/patches/PR100102-2.a1b3484a8e6c53c8084723e3f1738d402374198e.patch b/testing/source/gcc/patches/PR100102-2.a1b3484a8e6c53c8084723e3f1738d402374198e.patch
new file mode 100644
index 000000000..56394fc3f
--- /dev/null
+++ b/testing/source/gcc/patches/PR100102-2.a1b3484a8e6c53c8084723e3f1738d402374198e.patch
@@ -0,0 +1,59 @@
+From a1b3484a8e6c53c8084723e3f1738d402374198e Mon Sep 17 00:00:00 2001
+From: Jason Merrill <jason@redhat.com>
+Date: Mon, 31 May 2021 12:56:34 -0400
+Subject: [PATCH] c++: alias member template [PR100102]
+
+Patrick already fixed the primary cause of this bug. But while I was
+looking at this testcase I noticed that with the qualified name k::o we
+ended up with a plain FUNCTION_DECL, whereas without the k:: we got a
+BASELINK. There seems to be no good reason not to return the BASELINK
+in this case as well.
+
+ PR c++/100102
+
+gcc/cp/ChangeLog:
+
+ * init.c (build_offset_ref): Return the BASELINK for a static
+ member function.
+
+gcc/testsuite/ChangeLog:
+
+ * g++.dg/cpp0x/alias-decl-73.C: New test.
+---
+ gcc/cp/init.c | 2 +-
+ gcc/testsuite/g++.dg/cpp0x/alias-decl-73.C | 9 +++++++++
+ 2 files changed, 10 insertions(+), 1 deletion(-)
+ create mode 100644 gcc/testsuite/g++.dg/cpp0x/alias-decl-73.C
+
+diff --git a/gcc/cp/init.c b/gcc/cp/init.c
+index b1123287300..1b161d526f6 100644
+--- a/gcc/cp/init.c
++++ b/gcc/cp/init.c
+@@ -2214,7 +2214,7 @@ build_offset_ref (tree type, tree member, bool address_p,
+ if (!ok)
+ return error_mark_node;
+ if (DECL_STATIC_FUNCTION_P (t))
+- return t;
++ return member;
+ member = t;
+ }
+ else
+diff --git a/gcc/testsuite/g++.dg/cpp0x/alias-decl-73.C b/gcc/testsuite/g++.dg/cpp0x/alias-decl-73.C
+new file mode 100644
+index 00000000000..aae778646dc
+--- /dev/null
++++ b/gcc/testsuite/g++.dg/cpp0x/alias-decl-73.C
+@@ -0,0 +1,9 @@
++// PR c++/100102
++// { dg-do compile { target c++11 } }
++
++template <bool B1> using a = int;
++template <class T3, class T4> struct k {
++ static long o();
++ template <class T5> using n = a<bool(k::o)>;
++ n<int> q;
++};
+--
+2.27.0
+
+
diff --git a/testing/source/gcc/patches/gcc-no_fixincludes.diff b/testing/source/gcc/patches/gcc-no_fixincludes.diff
new file mode 100644
index 000000000..e152e0821
--- /dev/null
+++ b/testing/source/gcc/patches/gcc-no_fixincludes.diff
@@ -0,0 +1,27 @@
+--- ./gcc/Makefile.in.orig 2018-03-09 09:24:44.000000000 -0600
++++ ./gcc/Makefile.in 2018-05-02 12:25:43.958002771 -0500
+@@ -3004,9 +3004,9 @@
+ chmod a+r $${fix_dir}/limits.h; \
+ done
+ # Install the README
+- rm -f include-fixed/README
+- cp $(srcdir)/../fixincludes/README-fixinc include-fixed/README
+- chmod a+r include-fixed/README
++# rm -f include-fixed/README
++# cp $(srcdir)/../fixincludes/README-fixinc include-fixed/README
++# chmod a+r include-fixed/README
+ $(STAMP) $@
+
+ .PHONY: install-gcc-tooldir
+@@ -3087,10 +3087,7 @@
+ (TARGET_MACHINE='$(target)'; srcdir=`cd $(srcdir); ${PWD_COMMAND}`; \
+ SHELL='$(SHELL)'; MACRO_LIST=`${PWD_COMMAND}`/macro_list ; \
+ gcc_dir=`${PWD_COMMAND}` ; \
+- export TARGET_MACHINE srcdir SHELL MACRO_LIST && \
+- cd $(build_objdir)/fixincludes && \
+- $(SHELL) ./fixinc.sh "$${gcc_dir}/$${fix_dir}" \
+- $(BUILD_SYSTEM_HEADER_DIR) $(OTHER_FIXINCLUDES_DIRS) ); \
++ export TARGET_MACHINE srcdir SHELL MACRO_LIST ); \
+ rm -f $${fix_dir}/syslimits.h; \
+ if [ -f $${fix_dir}/limits.h ]; then \
+ mv $${fix_dir}/limits.h $${fix_dir}/syslimits.h; \
diff --git a/testing/source/gcc/patches/gfortran.deferred-shape-vs-assumed-shape.patch b/testing/source/gcc/patches/gfortran.deferred-shape-vs-assumed-shape.patch
new file mode 100644
index 000000000..f695b969e
--- /dev/null
+++ b/testing/source/gcc/patches/gfortran.deferred-shape-vs-assumed-shape.patch
@@ -0,0 +1,40 @@
+[PATCH] deferred-shape vs assumed-shape
+Steve Kargl sgk@troutmask.apl.washington.edu
+Wed Apr 1 20:04:43 GMT 2020
+
+See
+https://stackoverflow.com/questions/60972134/whats-wrong-with-the-following-fortran-code-gfortran-dtio-dummy-argument-at
+
+Is A(:) a deferred-shape array or an assumed-shape array? The
+answer of course depends on context.
+
+This patch fixes the issue found at the above URL.
+
+Index: gcc/fortran/interface.c
+===================================================================
+--- gcc/fortran/interface.c (revision 280157)
++++ gcc/fortran/interface.c (working copy)
+@@ -4916,10 +4916,15 @@ check_dtio_arg_TKR_intent (gfc_symbol *fsym, bool type
+ || ((type != BT_CLASS) && fsym->attr.dimension)))
+ gfc_error ("DTIO dummy argument at %L must be a scalar",
+ &fsym->declared_at);
+- else if (rank == 1
+- && (fsym->as == NULL || fsym->as->type != AS_ASSUMED_SHAPE))
+- gfc_error ("DTIO dummy argument at %L must be an "
+- "ASSUMED SHAPE ARRAY", &fsym->declared_at);
++ else if (rank == 1)
++ {
++ if (fsym->as == NULL
++ || !(fsym->as->type == AS_ASSUMED_SHAPE
++ || (fsym->as->type == AS_DEFERRED && fsym->attr.dummy
++ && !fsym->attr.allocatable && !fsym->attr.pointer)))
++ gfc_error ("DTIO dummy argument at %L must be an "
++ "ASSUMED-SHAPE ARRAY", &fsym->declared_at);
++ }
+
+ if (type == BT_CHARACTER && fsym->ts.u.cl->length != NULL)
+ gfc_error ("DTIO character argument at %L must have assumed length",
+
+--
+Steve
+