diff --git a/.gitignore b/.gitignore
index dbccc8a..7ac071a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -54,3 +54,12 @@
/gcc-11.2.1-20211018.tar.xz
/gcc-11.2.1-20211019.tar.xz
/gcc-11.2.1-20211203.tar.xz
+/gcc-11.2.1-20220125.tar.xz
+/gcc-11.2.1-20220127.tar.xz
+/gcc-11.2.1-20220401.tar.xz
+/gcc-11.3.1-20220421.tar.xz
+/gcc-11.3.1-20221121.tar.xz
+/gcc-11.4.1-20230529.tar.xz
+/gcc-11.4.1-20230605.tar.xz
+/gcc-11.4.1-20231218.tar.xz
+/gcc-11.5.0-20240719.tar.xz
diff --git a/gcc.spec b/gcc.spec
index a310bcf..6e6168b 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,10 +1,10 @@
-%global DATE 20211203
-%global gitrev e41308252e835ddedcabfd4a98240080c6583a43
-%global gcc_version 11.2.1
+%global DATE 20240719
+%global gitrev a985e3068a6f8045f8a6f2d2d5ae75f5eb0a8767
+%global gcc_version 11.5.0
%global gcc_major 11
# Note, gcc_release must be integer, if you want to add suffixes to
# %%{release}, append them after %%{gcc_release} on Release: line.
-%global gcc_release 7
+%global gcc_release 1
%global nvptx_tools_gitrev 5f6f343a302d620b0868edab376c00b15741e39e
%global newlib_cygwin_gitrev 50e2a63b04bdd018484605fbb954fd1bd5147fa0
%global _unpackaged_files_terminate_build 0
@@ -45,7 +45,7 @@
%else
%global build_go 0
%endif
-%ifarch %{ix86} x86_64 %{arm} %{mips} s390 s390x riscv64
+%ifarch %{ix86} x86_64 %{arm} aarch64 %{mips} s390 s390x riscv64
%global build_d 1
%else
%global build_d 0
@@ -3148,6 +3148,295 @@ end
%endif
%changelog
+* Fri Jul 19 2024 Jakub Jelinek 11.5.0-1
+- update from releases/gcc-11 branch
+ - GCC 11.5 release
+ - PRs ada/113893, ada/113979, analyzer/104042, c/113262, c/114007, c/114493,
+ c++/89224, c++/92145, c++/92407, c++/97990, c++/99710, c++/100667,
+ c++/100772, c++/101765, c++/103185, c++/104051, c++/111485,
+ c++/111529, c++/113598, c++/113674, c++/114537, c++/114561,
+ c++/114562, c++/114572, c++/114634, c++/114691, d/113125, d/113758,
+ d/114171, debug/111080, debug/112718, driver/115440, fortran/50410,
+ fortran/103715, fortran/104908, fortran/107426, fortran/114474,
+ fortran/114825, gcov-profile/114115, libfortran/110651,
+ libgomp/113192, libquadmath/114533, libstdc++/104259,
+ libstdc++/104606, libstdc++/105417, libstdc++/110054,
+ libstdc++/113250, libstdc++/114147, libstdc++/114401,
+ libstdc++/114750, libstdc++/114803, libstdc++/115269,
+ libstdc++/115454, libstdc++/115575, middle-end/90348,
+ middle-end/95351, middle-end/107385, middle-end/108789,
+ middle-end/110027, middle-end/110115, middle-end/110176,
+ middle-end/111422, middle-end/111632, middle-end/112732,
+ middle-end/113907, middle-end/113921, middle-end/114599,
+ middle-end/114734, middle-end/114753, middle-end/115527,
+ middle-end/115836, objc/101666, objc/101718, preprocessor/105608,
+ rtl-optimization/100303, rtl-optimization/108086,
+ rtl-optimization/110079, rtl-optimization/114768,
+ rtl-optimization/114902, rtl-optimization/115092, sanitizer/97696,
+ sanitizer/111736, sanitizer/114956, sanitizer/115172, target/88309,
+ target/101737, target/101865, target/105522, target/108120,
+ target/108743, target/110411, target/111610, target/111677,
+ target/112397, target/113122, target/113281, target/114049,
+ target/114098, target/114130, target/114184, target/114310,
+ target/114837, target/114846, target/115253, target/115297,
+ target/115360, target/115457, target/115475, target/115611,
+ target/115691, testsuite/113175, testsuite/114034, testsuite/114036,
+ tree-optimization/110386, tree-optimization/110422,
+ tree-optimization/111039, tree-optimization/111070,
+ tree-optimization/111331, tree-optimization/111407,
+ tree-optimization/111445, tree-optimization/111736,
+ tree-optimization/112495, tree-optimization/112505,
+ tree-optimization/112793, tree-optimization/113372,
+ tree-optimization/113552, tree-optimization/113603,
+ tree-optimization/114027, tree-optimization/114115,
+ tree-optimization/114566, tree-optimization/114876,
+ tree-optimization/115192, tree-optimization/115337,
+ tree-optimization/115843
+
+* Mon Dec 18 2023 Jakub Jelinek 11.4.1-3
+- update from releases/gcc-11-branch
+ - PRs c++/106310, c++/106890, c++/109666, c++/109761, c++/111357,
+ c++/111512, c++/112795, d/108842, d/110359, d/110511, d/110516,
+ debug/110295, fortran/95947, fortran/103506, fortran/107397,
+ fortran/110288, fortran/110585, fortran/110658, fortran/111837,
+ fortran/111880, libstdc++/95048, libstdc++/99327, libstdc++/104161,
+ libstdc++/104242, libstdc++/108178, libstdc++/111050,
+ libstdc++/111511, libstdc++/112314, libstdc++/112491,
+ middle-end/110200, middle-end/111699, middle-end/111818,
+ middle-end/112733, rtl-optimization/110237, sanitizer/112727,
+ target/96762, target/101177, target/101469, target/105325,
+ target/109800, target/109932, target/110011, target/110044,
+ target/110170, target/110309, target/110741, target/111001,
+ target/111340, target/111367, target/111408, target/111815,
+ target/112672, target/112816, target/112837, target/112845,
+ target/112891, testsuite/66005, tree-optimization/110298,
+ tree-optimization/110731, tree-optimization/110914,
+ tree-optimization/111015, tree-optimization/111614,
+ tree-optimization/111764, tree-optimization/111917
+
+* Mon Jun 5 2023 Jakub Jelinek 11.4.1-2
+- update from releases/gcc-11-branch
+ - PRs fortran/100607, libstdc++/109822, target/109954,
+ tree-optimization/109505
+
+* Mon May 29 2023 Jakub Jelinek 11.4.1-1
+- update from releases/gcc-11-branch
+ - GCC 11.4 release
+ - PRs bootstrap/90543, c++/53932, c++/69410, c++/92752, c++/98056,
+ c++/98821, c++/100295, c++/100474, c++/101118, c++/101869,
+ c++/102780, c++/103871, c++/104527, c++/105406, c++/105996,
+ c++/106188, c++/106675, c++/106713, c++/106740, c++/107065,
+ c++/107163, c++/107179, c++/107558, c++/107579, c++/107864,
+ c++/108138, c++/108180, c++/108365, c++/108468, c++/108474,
+ c++/108607, c++/108975, c++/108998, c++/109096, c++/109164, c/107127,
+ c/107465, c/109151, d/107592, d/108050, d/108877, d/109108,
+ debug/106719, debug/108573, debug/108716, debug/108967, driver/106624,
+ fortran/85877, fortran/95107, fortran/96024, fortran/96025,
+ fortran/99036, fortran/103259, fortran/104332, fortran/106209,
+ fortran/106945, fortran/107576, fortran/107872, fortran/108131,
+ fortran/108349, fortran/108420, fortran/108421, fortran/108451,
+ fortran/108453, fortran/108501, fortran/108502, fortran/108527,
+ fortran/108529, fortran/108609, fortran/108937, fortran/109186,
+ fortran/109511, fortran/109846, ipa/105685, ipa/106124, ipa/107944,
+ libquadmath/87204, libquadmath/94756, libstdc++/91456,
+ libstdc++/103934, libstdc++/104866, libstdc++/104875,
+ libstdc++/105844, libstdc++/106183, libstdc++/107801,
+ libstdc++/107814, libstdc++/108030, libstdc++/108118,
+ libstdc++/108265, libstdc++/108636, libstdc++/108856,
+ libstdc++/108952, libstdc++/109064, libstdc++/109261,
+ libstdc++/109949, lto/109263, middle-end/104450, middle-end/104464,
+ middle-end/106190, middle-end/107317, middle-end/108237,
+ middle-end/108264, middle-end/108435, middle-end/108459,
+ middle-end/108546, middle-end/108625, middle-end/108685,
+ middle-end/108854, other/108560, other/109306,
+ rtl-optimization/106751, rtl-optimization/107482,
+ rtl-optimization/108193, rtl-optimization/108596,
+ rtl-optimization/109585, target/70243, target/90458, target/96373,
+ target/98776, target/100758, target/104871, target/104921,
+ target/105554, target/105599, target/106736, target/106875,
+ target/107568, target/107714, target/107863, target/108272,
+ target/108348, target/108589, target/108699, target/108807,
+ target/108812, target/108881, target/109067, target/109140,
+ target/109276, testsuite/47334, testsuite/103823, testsuite/108151,
+ testsuite/108973, testsuite/108985, tree-optimization/105484,
+ tree-optimization/106809, tree-optimization/107107,
+ tree-optimization/107212, tree-optimization/107254,
+ tree-optimization/107323, tree-optimization/107451,
+ tree-optimization/107554, tree-optimization/107898,
+ tree-optimization/107997, tree-optimization/108068,
+ tree-optimization/108076, tree-optimization/108095,
+ tree-optimization/108199, tree-optimization/108498,
+ tree-optimization/108688, tree-optimization/108692,
+ tree-optimization/108821, tree-optimization/108950,
+ tree-optimization/109176, tree-optimization/109410,
+ tree-optimization/109473, tree-optimization/109491,
+ tree-optimization/109502, tree-optimization/109573,
+ tree-optimization/109724, tree-optimization/109778
+
+* Mon Nov 21 2022 Jakub Jelinek 11.3.1-4
+- update from releases/gcc-11-branch
+ - PRs analyzer/105252, analyzer/105365, analyzer/105366, c++/65211,
+ c++/82980, c++/86193, c++/90107, c++/97296, c++/101442, c++/101698,
+ c++/102071, c++/102177, c++/102300, c++/102307, c++/102479,
+ c++/102629, c++/104066, c++/104142, c++/104646, c++/104669,
+ c++/105245, c++/105265, c++/105289, c++/105304, c++/105321,
+ c++/105386, c++/105398, c++/105725, c++/105761, c++/105774,
+ c++/105795, c++/105852, c++/105925, c++/106024, c++/106361,
+ c++/107358, c/41041, c/106016, c/106981, c/107001, d/106139,
+ d/106638, debug/106261, fortran/82868, fortran/100029, fortran/100040,
+ fortran/100097, fortran/100098, fortran/100132, fortran/100136,
+ fortran/100245, fortran/103413, fortran/103504, fortran/103693,
+ fortran/103694, fortran/104313, fortran/104849, fortran/105012,
+ fortran/105230, fortran/105243, fortran/105310, fortran/105633,
+ fortran/105691, fortran/105813, fortran/105954, fortran/106121,
+ fortran/106817, fortran/106857, fortran/106985, fortran/106986,
+ fortran/107054, ipa/100413, ipa/105600, ipa/105739, libgomp/106045,
+ libstdc++/65018, libstdc++/84110, libstdc++/93602, libstdc++/96592,
+ libstdc++/99290, libstdc++/100823, libstdc++/101709, libstdc++/102447,
+ libstdc++/103664, libstdc++/103848, libstdc++/103853,
+ libstdc++/103911, libstdc++/103992, libstdc++/104217,
+ libstdc++/104443, libstdc++/104602, libstdc++/104731,
+ libstdc++/105128, libstdc++/105284, libstdc++/105375,
+ libstdc++/105502, libstdc++/105671, libstdc++/105915,
+ libstdc++/106162, libstdc++/106248, libstdc++/106320,
+ libstdc++/106607, libstdc++/106695, lto/106334, lto/106540,
+ middle-end/103193, middle-end/104869, middle-end/104966,
+ middle-end/105140, middle-end/105998, middle-end/106027,
+ middle-end/106030, middle-end/106144, middle-end/106331,
+ middle-end/106492, preprocessor/97498, preprocessor/105732,
+ rtl-optimization/104637, rtl-optimization/105041,
+ rtl-optimization/105333, rtl-optimization/105559,
+ rtl-optimization/106032, rtl-optimization/106187, sanitizer/105396,
+ sanitizer/105729, target/96072, target/99184, target/99685,
+ target/101322, target/101891, target/102059, target/102146,
+ target/103197, target/103353, target/104257, target/104829,
+ target/105147, target/105162, target/105209, target/105292,
+ target/105339, target/105349, target/105463, target/105472,
+ target/105854, target/105879, target/105970, target/105981,
+ target/106017, target/106091, target/106355, target/106491,
+ target/106721, target/107061, target/107064, target/107183,
+ target/107248, target/107304, target/107364, target/107748,
+ testsuite/105095, testsuite/105266, testsuite/105433,
+ testsuite/106345, tree-optimization/103116, tree-optimization/105148,
+ tree-optimization/105163, tree-optimization/105173,
+ tree-optimization/105250, tree-optimization/105263,
+ tree-optimization/105312, tree-optimization/105368,
+ tree-optimization/105431, tree-optimization/105437,
+ tree-optimization/105528, tree-optimization/105618,
+ tree-optimization/105726, tree-optimization/105860,
+ tree-optimization/106112, tree-optimization/106131,
+ tree-optimization/106189, tree-optimization/106513,
+ tree-optimization/106892, tree-optimization/106934
+
+* Wed Sep 07 2022 Kalev Lember 11.3.1-3
+- enable GDC on aarch64
+
+* Thu Apr 21 2022 Jakub Jelinek 11.3.1-2
+- update from releases/gcc-11-branch
+ - PRs debug/105203, gcov-profile/105282, libstdc++/105324, target/105257
+
+* Thu Apr 21 2022 Jakub Jelinek 11.3.1-1
+- update from releases/gcc-11-branch
+ - GCC 11.3 release
+ - PRs c++/98249, c++/99893, c++/100608, c++/101051, c++/101532, c++/101677,
+ c++/101717, c++/101894, c++/102869, c++/103105, c++/103328,
+ c++/103341, c++/103455, c++/103706, c++/103885, c++/103943,
+ c++/104008, c++/104079, c++/104225, c++/104507, c++/104565,
+ c++/105003, c++/105064, c++/105143, c++/105186, c++/105256, c/101585,
+ debug/105203, fortran/102992, fortran/104210, fortran/104228,
+ fortran/104570, fortran/105138, gcov-profile/105282, ipa/103083,
+ ipa/103432, jit/100613, libstdc++/90943, libstdc++/100516,
+ libstdc++/103630, libstdc++/103638, libstdc++/103650,
+ libstdc++/103955, libstdc++/104098, libstdc++/104301,
+ libstdc++/104542, libstdc++/104859, libstdc++/105021,
+ libstdc++/105027, middle-end/104497, middle-end/105165,
+ rtl-optimization/104985, rtl-optimization/105028,
+ rtl-optimization/105211, target/80556, target/100106, target/104117,
+ target/104474, target/104853, target/104894, target/105214,
+ target/105257, tree-optimization/99121, tree-optimization/104880,
+ tree-optimization/105053, tree-optimization/105070,
+ tree-optimization/105189, tree-optimization/105198,
+ tree-optimization/105226, tree-optimization/105232,
+ tree-optimization/105235
+- fix bogus -Wuninitialized warning on va_arg with complex types on x86_64
+ (PR target/105331)
+- remove bogus assertion in std::from_chars (PR libstdc++/105324)
+
+* Fri Apr 1 2022 Jakub Jelinek 11.2.1-10
+- update from releases/gcc-11-branch
+ - PRs ada/98724, ada/104258, ada/104767, ada/104861, c++/58646, c++/59950,
+ c++/61611, c++/95036, c++/100468, c++/101030, c++/101095, c++/101371,
+ c++/101515, c++/101767, c++/102045, c++/102123, c++/102538,
+ c++/102740, c++/102990, c++/103057, c++/103186, c++/103291,
+ c++/103299, c++/103337, c++/103711, c++/103769, c++/103968,
+ c++/104107, c++/104108, c++/104284, c++/104410, c++/104472,
+ c++/104513, c++/104568, c++/104667, c++/104806, c++/104847,
+ c++/104944, c++/104994, c++/105035, c++/105061, c/82283, c/84685,
+ c/104510, c/104711, d/104659, d/105004, debug/104337, debug/104517,
+ debug/104557, fortran/66193, fortran/99585, fortran/100337,
+ fortran/103790, fortran/104211, fortran/104311, fortran/104331,
+ fortran/104430, fortran/104619, fortran/104811, go/100537,
+ libgomp/104385, libstdc++/101231, libstdc++/102358, libstdc++/103904,
+ libstdc++/104442, lto/104237, lto/104333, lto/104617,
+ middle-end/95115, middle-end/99578, middle-end/100464,
+ middle-end/100680, middle-end/100775, middle-end/100786,
+ middle-end/104307, middle-end/104402, middle-end/104446,
+ middle-end/104786, middle-end/104971, middle-end/105032,
+ preprocessor/104147, rtl-optimization/104544, rtl-optimization/104589,
+ rtl-optimization/104777, rtl-optimization/104814, sanitizer/102656,
+ sanitizer/104449, sanitizer/105093, target/79754, target/87496,
+ target/99708, target/99754, target/100784, target/101324,
+ target/102140, target/102952, target/102957, target/103307,
+ target/103627, target/103925, target/104090, target/104208,
+ target/104219, target/104253, target/104362, target/104448,
+ target/104451, target/104453, target/104458, target/104462,
+ target/104469, target/104502, target/104674, target/104681,
+ target/104688, target/104775, target/104890, target/104910,
+ target/104923, target/104963, target/104998, target/105000,
+ target/105052, target/105058, target/105068, testsuite/103556,
+ testsuite/103586, testsuite/104730, testsuite/104759,
+ testsuite/105055, tree-optimization/45178, tree-optimization/100834,
+ tree-optimization/101636, tree-optimization/102819,
+ tree-optimization/102893, tree-optimization/103169,
+ tree-optimization/103361, tree-optimization/103489,
+ tree-optimization/103544, tree-optimization/103596,
+ tree-optimization/103641, tree-optimization/103864,
+ tree-optimization/104263, tree-optimization/104288,
+ tree-optimization/104511, tree-optimization/104601,
+ tree-optimization/104675, tree-optimization/104782,
+ tree-optimization/104931, tree-optimization/105094
+- fix x86 vector initialization expansion fallback (PR target/105123)
+
+* Thu Jan 25 2022 Jakub Jelinek 11.2.1-9
+- update from releases/gcc-11-branch
+ - PRs fortran/104127, fortran/104212, fortran/104227, target/101529
+- fix up va-opt-6.c testcase
+
+* Tue Jan 25 2022 Jakub Jelinek 11.2.1-8
+- update from releases/gcc-11-branch
+ - PRs ada/103538, analyzer/101962, bootstrap/103688, c++/85846, c++/95009,
+ c++/98394, c++/99911, c++/100493, c++/101715, c++/102229, c++/102933,
+ c++/103012, c++/103198, c++/103480, c++/103703, c++/103714,
+ c++/103758, c++/103783, c++/103831, c++/103912, c++/104055, c/97548,
+ c/101289, c/101537, c/103587, c/103881, d/103604, debug/103838,
+ debug/103874, fortran/67804, fortran/83079, fortran/101329,
+ fortran/101762, fortran/102332, fortran/102717, fortran/102787,
+ fortran/103411, fortran/103412, fortran/103418, fortran/103473,
+ fortran/103505, fortran/103588, fortran/103591, fortran/103606,
+ fortran/103607, fortran/103609, fortran/103610, fortran/103692,
+ fortran/103717, fortran/103718, fortran/103719, fortran/103776,
+ fortran/103777, fortran/103778, fortran/103782, fortran/103789,
+ ipa/101354, jit/103562, libfortran/103634, libstdc++/100017,
+ libstdc++/102994, libstdc++/103453, libstdc++/103501,
+ libstdc++/103549, libstdc++/103877, libstdc++/103919,
+ middle-end/101751, middle-end/102860, middle-end/103813, objc/103639,
+ preprocessor/89971, preprocessor/102432, rtl-optimization/102478,
+ rtl-optimization/103837, rtl-optimization/103860,
+ rtl-optimization/103908, sanitizer/102911, target/102347,
+ target/103465, target/103661, target/104172, target/104188,
+ tree-optimization/101615, tree-optimization/103523,
+ tree-optimization/103603, tree-optimization/103995
+
* Fri Dec 3 2021 Jakub Jelinek 11.2.1-7
- update from releases/gcc-11-branch
- PRs ada/100486, c++/70796, c++/92746, c++/93286, c++/94490, c++/102642,
diff --git a/gcc11-libgcc-link.patch b/gcc11-libgcc-link.patch
index 8551934..1904c4b 100644
--- a/gcc11-libgcc-link.patch
+++ b/gcc11-libgcc-link.patch
@@ -19,7 +19,6 @@ that also repeats later in the @multilib_flags@, which should be harmless.
2021-08-04 Jakub Jelinek
* config/t-slibgcc (SHLIB_LINK): Add $(LDFLAGS).
- * config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
* config/t-slibgcc-vms (SHLIB_LINK): Likewise.
--- libgcc/config/t-slibgcc
@@ -33,17 +32,6 @@ that also repeats later in the @multilib_flags@, which should be harmless.
-o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ \
$(SHLIB_OBJS) $(SHLIB_LC) && \
rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \
---- libgcc/config/t-slibgcc-darwin
-+++ libgcc/config/t-slibgcc-darwin
-@@ -15,7 +15,7 @@ SHLIB_LC = -lc
- # Note that this version is used for the loader, not the linker; the linker
- # uses the stub versions named by the versioned members of $(INSTALL_FILES).
-
--SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) -dynamiclib -nodefaultlibs \
-+SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) $(LDFLAGS) -dynamiclib -nodefaultlibs \
- -install_name @shlib_slibdir@/$(SHLIB_INSTALL_NAME) \
- -single_module -o $(SHLIB_DIR)/$(SHLIB_SONAME) \
- -Wl,-exported_symbols_list,$(SHLIB_MAP) \
--- libgcc/config/t-slibgcc-vms
+++ libgcc/config/t-slibgcc-vms
@@ -22,7 +22,7 @@ SHLIB_LINK = \
diff --git a/gcc11-libstdc++-docs.patch b/gcc11-libstdc++-docs.patch
index 4b4f9f8..b0f7deb 100644
--- a/gcc11-libstdc++-docs.patch
+++ b/gcc11-libstdc++-docs.patch
@@ -4,7 +4,7 @@
FSF
-+ Release 11.2.1
++ Release 11.5.0
+
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation
@@ -17,7 +17,7 @@
- The API documentation, rendered into HTML, can be viewed online
+ The API documentation, rendered into HTML, can be viewed locally
-+ for the 11.2.1 release,
++ for the 11.5.0 release,
+ online
for each GCC release
and
diff --git a/gcc11-stringify-__VA_OPT__-2.patch b/gcc11-stringify-__VA_OPT__-2.patch
index 987f738..5874bc1 100644
--- a/gcc11-stringify-__VA_OPT__-2.patch
+++ b/gcc11-stringify-__VA_OPT__-2.patch
@@ -33,7 +33,7 @@ gcc/testsuite/
--- libcpp/macro.c.jj
+++ libcpp/macro.c
-@@ -295,7 +295,7 @@ static cpp_context *next_context (cpp_reader *);
+@@ -295,7 +295,7 @@ static cpp_context *next_context (cpp_re
static const cpp_token *padding_token (cpp_reader *, const cpp_token *);
static const cpp_token *new_string_token (cpp_reader *, uchar *, unsigned int);
static const cpp_token *stringify_arg (cpp_reader *, const cpp_token **,
@@ -42,7 +42,7 @@ gcc/testsuite/
static void paste_all_tokens (cpp_reader *, const cpp_token *);
static bool paste_tokens (cpp_reader *, location_t,
const cpp_token **, const cpp_token *);
-@@ -834,8 +834,7 @@ cpp_quote_string (uchar *dest, const uchar *src, unsigned int len)
+@@ -826,8 +826,7 @@ cpp_quote_string (uchar *dest, const uch
/* Convert a token sequence FIRST to FIRST+COUNT-1 to a single string token
according to the rules of the ISO C #-operator. */
static const cpp_token *
@@ -52,7 +52,7 @@ gcc/testsuite/
{
unsigned char *dest;
unsigned int i, escape_it, backslash_count = 0;
-@@ -852,24 +851,6 @@ stringify_arg (cpp_reader *pfile, const cpp_token **first, unsigned int count,
+@@ -844,24 +843,6 @@ stringify_arg (cpp_reader *pfile, const
{
const cpp_token *token = first[i];
@@ -77,7 +77,7 @@ gcc/testsuite/
if (token->type == CPP_PADDING)
{
if (source == NULL
-@@ -1003,6 +984,7 @@ paste_tokens (cpp_reader *pfile, location_t location,
+@@ -995,6 +976,7 @@ paste_tokens (cpp_reader *pfile, locatio
return false;
}
@@ -85,7 +85,7 @@ gcc/testsuite/
*plhs = lhs;
_cpp_pop_buffer (pfile);
return true;
-@@ -1945,8 +1927,7 @@ replace_args (cpp_reader *pfile, cpp_hashnode *node, cpp_macro *macro,
+@@ -1937,8 +1919,7 @@ replace_args (cpp_reader *pfile, cpp_has
if (src->flags & STRINGIFY_ARG)
{
if (!arg->stringified)
@@ -95,7 +95,7 @@ gcc/testsuite/
}
else if ((src->flags & PASTE_LEFT)
|| (src != macro->exp.tokens && (src[-1].flags & PASTE_LEFT)))
-@@ -2066,11 +2047,46 @@ replace_args (cpp_reader *pfile, cpp_hashnode *node, cpp_macro *macro,
+@@ -2065,11 +2046,46 @@ replace_args (cpp_reader *pfile, cpp_has
{
unsigned int count
= start ? paste_flag - start : tokens_buff_count (buff);
diff --git a/gcc11-stringify-__VA_OPT__.patch b/gcc11-stringify-__VA_OPT__.patch
index 3a2a71f..101b026 100644
--- a/gcc11-stringify-__VA_OPT__.patch
+++ b/gcc11-stringify-__VA_OPT__.patch
@@ -66,7 +66,7 @@ gcc/testsuite/
/* The state variable:
0 means not parsing
-@@ -284,7 +294,8 @@ static _cpp_buff *collect_args (cpp_reader *, const cpp_hashnode *,
+@@ -284,7 +294,8 @@ static _cpp_buff *collect_args (cpp_read
static cpp_context *next_context (cpp_reader *);
static const cpp_token *padding_token (cpp_reader *, const cpp_token *);
static const cpp_token *new_string_token (cpp_reader *, uchar *, unsigned int);
@@ -76,7 +76,7 @@ gcc/testsuite/
static void paste_all_tokens (cpp_reader *, const cpp_token *);
static bool paste_tokens (cpp_reader *, location_t,
const cpp_token **, const cpp_token *);
-@@ -818,10 +829,11 @@ cpp_quote_string (uchar *dest, const uchar *src, unsigned int len)
+@@ -812,10 +823,11 @@ cpp_quote_string (uchar *dest, const uch
return dest;
}
@@ -91,7 +91,7 @@ gcc/testsuite/
{
unsigned char *dest;
unsigned int i, escape_it, backslash_count = 0;
-@@ -834,9 +846,27 @@ stringify_arg (cpp_reader *pfile, macro_arg *arg)
+@@ -828,9 +840,27 @@ stringify_arg (cpp_reader *pfile, macro_
*dest++ = '"';
/* Loop, reading in the argument's tokens. */
@@ -121,7 +121,7 @@ gcc/testsuite/
if (token->type == CPP_PADDING)
{
-@@ -923,7 +953,7 @@ paste_tokens (cpp_reader *pfile, location_t location,
+@@ -917,7 +947,7 @@ paste_tokens (cpp_reader *pfile, locatio
cpp_token *lhs;
unsigned int len;
@@ -130,7 +130,7 @@ gcc/testsuite/
buf = (unsigned char *) alloca (len);
end = lhsend = cpp_spell_token (pfile, *plhs, buf, true);
-@@ -949,8 +979,10 @@ paste_tokens (cpp_reader *pfile, location_t location,
+@@ -943,8 +973,10 @@ paste_tokens (cpp_reader *pfile, locatio
location_t saved_loc = lhs->src_loc;
_cpp_pop_buffer (pfile);
@@ -143,7 +143,7 @@ gcc/testsuite/
/* We have to remove the PASTE_LEFT flag from the old lhs, but
we want to keep the new location. */
-@@ -962,8 +994,10 @@ paste_tokens (cpp_reader *pfile, location_t location,
+@@ -956,8 +988,10 @@ paste_tokens (cpp_reader *pfile, locatio
/* Mandatory error for all apart from assembler. */
if (CPP_OPTION (pfile, lang) != CLK_ASM)
cpp_error_with_line (pfile, CPP_DL_ERROR, location, 0,
@@ -156,7 +156,7 @@ gcc/testsuite/
return false;
}
-@@ -1039,7 +1073,10 @@ paste_all_tokens (cpp_reader *pfile, const cpp_token *lhs)
+@@ -1033,7 +1067,10 @@ paste_all_tokens (cpp_reader *pfile, con
abort ();
}
if (!paste_tokens (pfile, virt_loc, &lhs, rhs))
@@ -168,7 +168,7 @@ gcc/testsuite/
}
while (rhs->flags & PASTE_LEFT);
-@@ -1906,7 +1943,8 @@ replace_args (cpp_reader *pfile, cpp_hashnode *node, cpp_macro *macro,
+@@ -1900,7 +1937,8 @@ replace_args (cpp_reader *pfile, cpp_has
if (src->flags & STRINGIFY_ARG)
{
if (!arg->stringified)
@@ -178,11 +178,10 @@ gcc/testsuite/
}
else if ((src->flags & PASTE_LEFT)
|| (src != macro->exp.tokens && (src[-1].flags & PASTE_LEFT)))
-@@ -2029,7 +2067,24 @@ replace_args (cpp_reader *pfile, cpp_hashnode *node, cpp_macro *macro,
+@@ -2023,6 +2061,24 @@ replace_args (cpp_reader *pfile, cpp_has
paste_flag = tokens_buff_last_token_ptr (buff);
}
-- if (src->flags & PASTE_LEFT)
+ if (vaopt_tracker.stringify ())
+ {
+ unsigned int count
@@ -199,12 +198,12 @@ gcc/testsuite/
+ tokens_buff_add_token (buff, virt_locs,
+ t, t->src_loc, t->src_loc,
+ NULL, 0);
++ continue;
+ }
-+ else if (src->flags & PASTE_LEFT)
- {
- /* With a non-empty __VA_OPT__ on the LHS of ##, the last
- token should be flagged PASTE_LEFT. */
-@@ -3585,7 +3640,10 @@ create_iso_definition (cpp_reader *pfile)
+ if (start && paste_flag == start && (*start)->flags & PASTE_LEFT)
+ /* If __VA_OPT__ expands to nothing (either because __VA_ARGS__
+ is empty or because it is __VA_OPT__() ), drop PASTE_LEFT
+@@ -3584,7 +3640,10 @@ create_iso_definition (cpp_reader *pfile
function-like macros when lexing the subsequent token. */
if (macro->count > 1 && token[-1].type == CPP_HASH && macro->fun_like)
{
diff --git a/sources b/sources
index a7e012b..6afe036 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-SHA512 (gcc-11.2.1-20211203.tar.xz) = 3cf64d3af541b9e80a2d5dd95a1257afefda554cfa16b757a7f861701e3da2d6917dbb1f4cd74301ffaf45e92c441642b8c589a10698a9103a216620f0849626
+SHA512 (gcc-11.5.0-20240719.tar.xz) = 8996ff2aaad765521303f0bde46e4c53992de266062ceabaef0b311ef68be6068e9b0002a57c036d898a6d58735f4d1884e6a7a152c567f941adb200d076fcd4
SHA512 (isl-0.18.tar.bz2) = 85d0b40f4dbf14cb99d17aa07048cdcab2dc3eb527d2fbb1e84c41b2de5f351025370e57448b63b2b8a8cf8a0843a089c3263f9baee1542d5c2e1cb37ed39d94
SHA512 (newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz) = 002a48a7b689a81abbf16161bcaec001a842e67dfbe372e9e109092703bfc666675f16198f60ca429370e8850d564547dc505df81bc3aaca4ce6defbc014ad6c
SHA512 (nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz) = f6d10db94fa1570ae0f94df073fa3c73c8e5ee16d59070b53d94f7db0de8a031bc44d7f3f1852533da04b625ce758e022263855ed43cfc6867e0708d001e53c7
diff --git a/update-gcc.sh b/update-gcc.sh
index 644b209..93160c9 100755
--- a/update-gcc.sh
+++ b/update-gcc.sh
@@ -1,7 +1,36 @@
#!/bin/sh
-[ -d gcc-dir.tmp ] && echo gcc-dir.tmp already exists && exit 1
-git clone --depth 1 git://gcc.gnu.org/git/gcc.git gcc-dir.tmp
-git --git-dir=gcc-dir.tmp/.git fetch --depth 1 origin $1
+if [ "$#" -eq 0 ]; then
+ echo "Usage: ./update-gcc.sh gcc/redhat/heads/gcc-NN-branch_commit_hash [git_reference_dir_to_speed_up]"
+ exit 1
+fi
+export LC_ALL=C
+if ! [ -f gcc.spec ]; then echo Must be run in the directory with gcc.spec file.; exit 1; fi
+if [ -d gcc-dir.tmp ]; then echo gcc-dir.tmp already exists.; exit 1; fi
+v=`sed -n 's/^%global gcc_version //p' gcc.spec`
+p=`sed -n 's/^%global gitrev //p' gcc.spec`
+h=$1
+if [ "$#" -ge 2 ]; then
+ git clone --dissociate --reference $2 git://gcc.gnu.org/git/gcc.git gcc-dir.tmp
+else
+ git clone git://gcc.gnu.org/git/gcc.git gcc-dir.tmp
+fi
+git --git-dir=gcc-dir.tmp/.git fetch origin $h
d=`date --iso | sed 's/-//g'`
-git --git-dir=gcc-dir.tmp/.git archive --prefix=gcc-11.2.1-$d/ $1 | xz -9e > gcc-11.2.1-$d.tar.xz
+cd gcc-dir.tmp
+git diff $p..$h > P1
+git log --format=%B `git log --format='%ae %H' $p..$h | awk '/^gccadmin@gcc.gnu.org/{print $2;exit 0}'`..$h > P2
+diff -up /dev/null P2 >> P1
+sed -n 's,^+[[:blank:]]\+PR \([a-z0-9+-]\+/[0-9]\+\)$,\1,p' P1 | sed 's/ - .*$//;s/[: ;.]//g' | LC_ALL=C sort -u -t / -k 1,1 -k 2,2n > P3
+> P4
+for i in `cat P3`; do if grep -F $i ../gcc.spec >/dev/null; then echo $i already recorded.; else echo $i >> P4; fi; done
+case "$v" in
+ *.0.*) echo "- update from trunk" > P5;;
+ *) echo "- update from releases/gcc-`echo $v | sed 's/\..*$//'` branch" > P5;;
+esac
+echo `cat P4` | sed 's/ /, /g' | fold -w 71 -s | sed '1s/^/ - PRs /;2,$s/^/ /;s/, $/,/' >> P5
+echo >> P5
+cd ..
+sed -i -e '/^%global gitrev /s/ [0-9a-f]\+$/ '$h'/;/^%global DATE /s/ [0-9]\+$/ '$d'/;/^%changelog$/r gcc-dir.tmp/P5' gcc.spec
+git --git-dir=gcc-dir.tmp/.git archive --prefix=gcc-$v-$d/ $h | xz -9e > gcc-$v-$d.tar.xz
rm -rf gcc-dir.tmp
+fedpkg new-sources gcc-$v-$d.tar.xz `sed 's/SHA512 (\(.*\)) = [0-9a-f]\+$/\1/' sources | grep -v '^gcc-'`