diff --git a/.gcc.metadata b/.gcc.metadata
index 03b4cd9..1b620d3 100644
--- a/.gcc.metadata
+++ b/.gcc.metadata
@@ -1,3 +1,3 @@
-8ee669ee60997110e6251c72dac66bf69bbe13c7 SOURCES/gcc-8.3.1-20190507.tar.xz
+e83739fffae5c3bbb1784cadb72ead8384de74e0 SOURCES/gcc-8.3.1-20191121.tar.xz
3bdb3cc01fa7690a0e20ea5cfffcbe690f7665eb SOURCES/nvptx-newlib-aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24.tar.xz
ce8eb83be0ac37fb5d5388df455a980fe37b4f13 SOURCES/nvptx-tools-c28050f60193b3b95a18866a96f03334e874e78f.tar.xz
diff --git a/.gitignore b/.gitignore
index fb2c952..fd61c9b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,3 @@
-SOURCES/gcc-8.3.1-20190507.tar.xz
+SOURCES/gcc-8.3.1-20191121.tar.xz
SOURCES/nvptx-newlib-aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24.tar.xz
SOURCES/nvptx-tools-c28050f60193b3b95a18866a96f03334e874e78f.tar.xz
diff --git a/SOURCES/gcc8-libstdc++-docs.patch b/SOURCES/gcc8-libstdc++-docs.patch
index 594ce19..5f6a2ae 100644
--- a/SOURCES/gcc8-libstdc++-docs.patch
+++ b/SOURCES/gcc8-libstdc++-docs.patch
@@ -4,7 +4,7 @@
FSF
-+ Release 8.1.1
++ Release 8.3.1
+
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 8.1.1 release,
++ for the 8.3.1 release,
+ online
for each GCC release
and
diff --git a/SOURCES/gcc8-pr85400.patch b/SOURCES/gcc8-pr85400.patch
deleted file mode 100644
index 0c0d887..0000000
--- a/SOURCES/gcc8-pr85400.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-2018-05-10 Eric Botcazou
-
- PR c++/85400
- * c-attribs.c (handle_visibility_attribute): Do not set no_add_attrs.
-
- * decl2.c (adjust_var_decl_tls_model): New static function.
- (comdat_linkage): Call it on a variable.
- (maybe_make_one_only): Likewise.
-
---- gcc/c-family/c-attribs.c
-+++ gcc/c-family/c-attribs.c
-@@ -2299,14 +2299,13 @@ handle_visibility_attribute (tree *node, tree name, tree args,
-
- static tree
- handle_tls_model_attribute (tree *node, tree name, tree args,
-- int ARG_UNUSED (flags), bool *no_add_attrs)
-+ int ARG_UNUSED (flags),
-+ bool *ARG_UNUSED (no_add_attrs))
- {
- tree id;
- tree decl = *node;
- enum tls_model kind;
-
-- *no_add_attrs = true;
--
- if (!VAR_P (decl) || !DECL_THREAD_LOCAL_P (decl))
- {
- warning (OPT_Wattributes, "%qE attribute ignored", name);
---- gcc/cp/decl2.c
-+++ gcc/cp/decl2.c
-@@ -1838,6 +1838,17 @@ mark_vtable_entries (tree decl)
- }
- }
-
-+/* Adjust the TLS model on variable DECL if need be, typically after
-+ the linkage of DECL has been modified. */
-+
-+static void
-+adjust_var_decl_tls_model (tree decl)
-+{
-+ if (CP_DECL_THREAD_LOCAL_P (decl)
-+ && !lookup_attribute ("tls_model", DECL_ATTRIBUTES (decl)))
-+ set_decl_tls_model (decl, decl_default_tls_model (decl));
-+}
-+
- /* Set DECL up to have the closest approximation of "initialized common"
- linkage available. */
-
-@@ -1888,6 +1899,9 @@ comdat_linkage (tree decl)
-
- if (TREE_PUBLIC (decl))
- DECL_COMDAT (decl) = 1;
-+
-+ if (VAR_P (decl))
-+ adjust_var_decl_tls_model (decl);
- }
-
- /* For win32 we also want to put explicit instantiations in
-@@ -1926,6 +1940,8 @@ maybe_make_one_only (tree decl)
- /* Mark it needed so we don't forget to emit it. */
- node->forced_by_abi = true;
- TREE_USED (decl) = 1;
-+
-+ adjust_var_decl_tls_model (decl);
- }
- }
- }
---- /dev/null
-+++ gcc/testsuite/g++.dg/tls/pr85400.C
-@@ -0,0 +1,24 @@
-+// PR c++/85400
-+// Testcase by Brian Vandenberg
-+
-+// { dg-do link { target c++11 } }
-+// { dg-require-effective-target fpic }
-+// { dg-require-effective-target shared }
-+// { dg-require-effective-target tls }
-+// { dg-options "-shared -fPIC -O" }
-+// { dg-add-options tls }
-+
-+struct Test
-+{
-+ int blah (int y)
-+ {
-+ thread_local int mything = 3;
-+ mything = y > 0 ? y : mything;
-+ return mything;
-+ }
-+};
-+
-+int stuff (Test& test, int y)
-+{
-+ return test.blah(y);
-+}
diff --git a/SOURCES/gcc8-pr86098.patch b/SOURCES/gcc8-pr86098.patch
deleted file mode 100644
index 5f5a651..0000000
--- a/SOURCES/gcc8-pr86098.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-2018-06-12 Jason Merrill
-
- PR c++/86098 - ICE with template placeholder for TTP.
- * typeck.c (structural_comptypes) [TEMPLATE_TYPE_PARM]: Check
- CLASS_PLACEHOLDER_TEMPLATE.
-
---- gcc/cp/typeck.c
-+++ gcc/cp/typeck.c
-@@ -1375,6 +1375,11 @@ structural_comptypes (tree t1, tree t2, int strict)
- template parameters set, they can't be equal. */
- if (!comp_template_parms_position (t1, t2))
- return false;
-+ /* If T1 and T2 don't represent the same class template deduction,
-+ they aren't equal. */
-+ if (CLASS_PLACEHOLDER_TEMPLATE (t1)
-+ != CLASS_PLACEHOLDER_TEMPLATE (t2))
-+ return false;
- /* Constrained 'auto's are distinct from parms that don't have the same
- constraints. */
- if (!equivalent_placeholder_constraints (t1, t2))
---- /dev/null
-+++ gcc/testsuite/g++.dg/cpp1z/class-deduction58.C
-@@ -0,0 +1,16 @@
-+// PR c++/86098
-+// { dg-additional-options -std=c++17 }
-+
-+template class future;
-+template T&& declval();
-+
-+template class T>
-+struct construct_deduced {
-+ template
-+ using deduced_t = decltype(T{declval()...});
-+ template
-+ deduced_t operator()(AN&&... an) const;
-+};
-+
-+template
-+future future_from(T singleSender);
diff --git a/SOURCES/gcc8-pr90139.patch b/SOURCES/gcc8-pr90139.patch
deleted file mode 100644
index e7a5958..0000000
--- a/SOURCES/gcc8-pr90139.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-2019-04-19 Jakub Jelinek
-
- PR middle-end/90139
- * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
- assign_temp instead of gen_reg_rtx.
-
---- /dev/null
-+++ gcc/testsuite/gcc.c-torture/compile/pr90139.c
-@@ -0,0 +1,20 @@
-+/* PR middle-end/90139 */
-+
-+typedef float __attribute__((vector_size (sizeof (float)))) V;
-+void bar (int, V *);
-+int l;
-+
-+void
-+foo (void)
-+{
-+ V n, b, o;
-+ while (1)
-+ switch (l)
-+ {
-+ case 0:
-+ o = n;
-+ n = b;
-+ b = o;
-+ bar (1, &o);
-+ }
-+}
---- gcc/tree-outof-ssa.c
-+++ gcc/tree-outof-ssa.c
-@@ -653,6 +653,8 @@ get_temp_reg (tree name)
- tree type = TREE_TYPE (name);
- int unsignedp;
- machine_mode reg_mode = promote_ssa_mode (name, &unsignedp);
-+ if (reg_mode == BLKmode)
-+ return assign_temp (type, 0, 0);
- rtx x = gen_reg_rtx (reg_mode);
- if (POINTER_TYPE_P (type))
- mark_reg_pointer (x, TYPE_ALIGN (TREE_TYPE (type)));
diff --git a/SOURCES/gcc8-pr90756.patch b/SOURCES/gcc8-pr90756.patch
deleted file mode 100644
index c43fb18..0000000
--- a/SOURCES/gcc8-pr90756.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-2019-07-04 Jakub Jelinek
-
- PR rtl-optimization/90756
- * explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it
- for VECTOR_TYPE_P.
-
---- gcc/explow.c
-+++ gcc/explow.c
-@@ -892,16 +892,7 @@ promote_ssa_mode (const_tree name, int *punsignedp)
-
- tree type = TREE_TYPE (name);
- int unsignedp = TYPE_UNSIGNED (type);
-- machine_mode mode = TYPE_MODE (type);
--
-- /* Bypass TYPE_MODE when it maps vector modes to BLKmode. */
-- if (mode == BLKmode)
-- {
-- gcc_assert (VECTOR_TYPE_P (type));
-- mode = type->type_common.mode;
-- }
--
-- machine_mode pmode = promote_mode (type, mode, &unsignedp);
-+ machine_mode pmode = promote_mode (type, TYPE_MODE (type), &unsignedp);
- if (punsignedp)
- *punsignedp = unsignedp;
-
---- /dev/null
-+++ gcc/testsuite/gcc.dg/pr90756.c
-@@ -0,0 +1,26 @@
-+/* PR rtl-optimization/90756 */
-+/* { dg-do compile } */
-+/* { dg-options "-O2 -Wno-psabi" } */
-+/* { dg-additional-options "-mno-sse" { target ia32 } } */
-+
-+typedef float B __attribute__((vector_size(4 * sizeof (float))));
-+typedef unsigned long long C __attribute__((vector_size(4 * sizeof (long long))));
-+typedef short D __attribute__((vector_size(4 * sizeof (short))));
-+B z;
-+void foo (C);
-+C bar (D);
-+B baz ();
-+D qux (B);
-+
-+void
-+quux (int x)
-+{
-+ B n = z, b = z;
-+ while (1)
-+ switch (x)
-+ {
-+ case 0: n = baz (); /* FALLTHRU */
-+ case 1: { B o = n; n = b; b = o; } /* FALLTHRU */
-+ case 2: { D u = qux (b); C v = bar (u); foo (v); }
-+ }
-+}
diff --git a/SOURCES/gcc8-rh1711346.patch b/SOURCES/gcc8-rh1711346.patch
deleted file mode 100644
index 0d9017a..0000000
--- a/SOURCES/gcc8-rh1711346.patch
+++ /dev/null
@@ -1,279 +0,0 @@
-2019-05-29 Jakub Jelinek
-
- PR fortran/90329
- * lto-streamer.h (LTO_minor_version): Bump to 2.
-
- Backported from mainline
- 2019-05-16 Jakub Jelinek
-
- PR fortran/90329
- * tree-core.h (struct tree_decl_common): Document
- decl_nonshareable_flag for PARM_DECLs.
- * tree.h (DECL_HIDDEN_STRING_LENGTH): Define.
- * calls.c (expand_call): Don't try tail call if caller
- has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be
- passed on the stack and callee needs to pass any arguments on the
- stack.
- * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
- else if instead of series of mutually exclusive ifs. Handle
- DECL_HIDDEN_STRING_LENGTH for PARM_DECLs.
- * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
-
- * lang.opt (fbroken-callers): Remove.
- (ftail-call-workaround, ftail-call-workaround=): New options.
- * gfortran.h (struct gfc_namespace): Add implicit_interface_calls.
- * interface.c (gfc_procedure_use): Set implicit_interface_calls
- for calls to implicit interface procedures.
- * trans-decl.c (create_function_arglist): Use flag_tail_call_workaround
- instead of flag_broken_callers. If it is not 2, also require
- sym->ns->implicit_interface_calls.
- * invoke.texi (fbroken-callers): Remove documentation.
- (ftail-call-workaround, ftail-call-workaround=): Document.
-
- 2019-05-19 Thomas Koenig
-
- PR fortran/90329
- * invoke.texi: Document -fbroken-callers.
- * lang.opt: Add -fbroken-callers.
- * trans-decl.c (create_function_arglist): Only set
- DECL_HIDDEN_STRING_LENGTH if flag_broken_callers is set.
-
- 2019-05-16 Jakub Jelinek
-
- PR fortran/90329
- * trans-decl.c (create_function_arglist): Set
- DECL_HIDDEN_STRING_LENGTH on hidden string length PARM_DECLs if
- len is constant.
-
---- gcc/calls.c
-+++ gcc/calls.c
-@@ -3754,6 +3754,28 @@ expand_call (tree exp, rtx target, int ignore)
- || dbg_cnt (tail_call) == false)
- try_tail_call = 0;
-
-+ /* Workaround buggy C/C++ wrappers around Fortran routines with
-+ character(len=constant) arguments if the hidden string length arguments
-+ are passed on the stack; if the callers forget to pass those arguments,
-+ attempting to tail call in such routines leads to stack corruption.
-+ Avoid tail calls in functions where at least one such hidden string
-+ length argument is passed (partially or fully) on the stack in the
-+ caller and the callee needs to pass any arguments on the stack.
-+ See PR90329. */
-+ if (try_tail_call && maybe_ne (args_size.constant, 0))
-+ for (tree arg = DECL_ARGUMENTS (current_function_decl);
-+ arg; arg = DECL_CHAIN (arg))
-+ if (DECL_HIDDEN_STRING_LENGTH (arg) && DECL_INCOMING_RTL (arg))
-+ {
-+ subrtx_iterator::array_type array;
-+ FOR_EACH_SUBRTX (iter, array, DECL_INCOMING_RTL (arg), NONCONST)
-+ if (MEM_P (*iter))
-+ {
-+ try_tail_call = 0;
-+ break;
-+ }
-+ }
-+
- /* If the user has marked the function as requiring tail-call
- optimization, attempt it. */
- if (must_tail_call)
---- gcc/fortran/gfortran.h
-+++ gcc/fortran/gfortran.h
-@@ -1857,6 +1857,9 @@ typedef struct gfc_namespace
-
- /* Set to 1 for !$ACC ROUTINE namespaces. */
- unsigned oacc_routine:1;
-+
-+ /* Set to 1 if there are any calls to procedures with implicit interface. */
-+ unsigned implicit_interface_calls:1;
- }
- gfc_namespace;
-
---- gcc/fortran/interface.c
-+++ gcc/fortran/interface.c
-@@ -3657,6 +3657,7 @@ gfc_procedure_use (gfc_symbol *sym, gfc_actual_arglist **ap, locus *where)
- gfc_warning (OPT_Wimplicit_procedure,
- "Procedure %qs called at %L is not explicitly declared",
- sym->name, where);
-+ gfc_find_proc_namespace (sym->ns)->implicit_interface_calls = 1;
- }
-
- if (sym->attr.if_source == IFSRC_UNKNOWN)
---- gcc/fortran/invoke.texi
-+++ gcc/fortran/invoke.texi
-@@ -181,7 +181,8 @@ and warnings}.
- @item Code Generation Options
- @xref{Code Gen Options,,Options for code generation conventions}.
- @gccoptlist{-faggressive-function-elimination -fblas-matmul-limit=@var{n} @gol
---fbounds-check -fcheck-array-temporaries @gol
-+-fbounds-check -ftail-call-workaround -ftail-call-workaround=@var{n} @gol
-+-fcheck-array-temporaries @gol
- -fcheck=@var{} @gol
- -fcoarray=@var{} -fexternal-blas -ff2c
- -ffrontend-loop-interchange @gol
-@@ -1580,6 +1581,39 @@ warnings for generated array temporaries.
- @c Note: This option is also referred in gcc's manpage
- Deprecated alias for @option{-fcheck=bounds}.
-
-+@item -ftail-call-workaround
-+@itemx -ftail-call-workaround=@var{n}
-+@opindex @code{tail-call-workaround}
-+Some C interfaces to Fortran codes violate the gfortran ABI by
-+omitting the hidden character length arguments as described in
-+@xref{Argument passing conventions}. This can lead to crashes
-+because pushing arguments for tail calls can overflow the stack.
-+
-+To provide a workaround for existing binary packages, this option
-+disables tail call optimization for gfortran procedures with character
-+arguments. With @option{-ftail-call-workaround=2} tail call optimization
-+is disabled in all gfortran procedures with character arguments,
-+with @option{-ftail-call-workaround=1} or equivalent
-+@option{-ftail-call-workaround} only in gfortran procedures with character
-+arguments that call implicitly prototyped procedures.
-+
-+Using this option can lead to problems including crashes due to
-+insufficient stack space.
-+
-+It is @emph{very strongly} recommended to fix the code in question.
-+The @option{-fc-prototypes-external} option can be used to generate
-+prototypes which conform to gfortran's ABI, for inclusion in the
-+source code.
-+
-+Support for this option will likely be withdrawn in a future release
-+of gfortran.
-+
-+The negative form, @option{-fno-tail-call-workaround} or equivalent
-+@option{-ftail-call-workaround=0}, can be used to disable this option.
-+
-+Default is currently @option{-ftail-call-workaround}, this will change
-+in future releases.
-+
- @item -fcheck-array-temporaries
- @opindex @code{fcheck-array-temporaries}
- Deprecated alias for @option{-fcheck=array-temps}.
---- gcc/fortran/lang.opt
-+++ gcc/fortran/lang.opt
-@@ -742,6 +742,13 @@ fsign-zero
- Fortran Var(flag_sign_zero) Init(1)
- Apply negative sign to zero values.
-
-+ftail-call-workaround
-+Fortran Alias(ftail-call-workaround=,1,0)
-+
-+ftail-call-workaround=
-+Fortran RejectNegative Joined UInteger IntegerRange(0, 2) Var(flag_tail_call_workaround) Init(1)
-+Disallow tail call optimization when a calling routine may have omitted character lengths.
-+
- funderscoring
- Fortran Var(flag_underscoring) Init(1)
- Append underscores to externally visible names.
---- gcc/fortran/trans-decl.c
-+++ gcc/fortran/trans-decl.c
-@@ -2513,6 +2513,17 @@ create_function_arglist (gfc_symbol * sym)
- TREE_READONLY (length) = 1;
- gfc_finish_decl (length);
-
-+ /* Marking the length DECL_HIDDEN_STRING_LENGTH will lead
-+ to tail calls being disabled. Only do that if we
-+ potentially have broken callers. */
-+ if (flag_tail_call_workaround
-+ && f->sym->ts.u.cl
-+ && f->sym->ts.u.cl->length
-+ && f->sym->ts.u.cl->length->expr_type == EXPR_CONSTANT
-+ && (flag_tail_call_workaround == 2
-+ || f->sym->ns->implicit_interface_calls))
-+ DECL_HIDDEN_STRING_LENGTH (length) = 1;
-+
- /* Remember the passed value. */
- if (!f->sym->ts.u.cl || f->sym->ts.u.cl->passed_length)
- {
---- gcc/lto-streamer.h
-+++ gcc/lto-streamer.h
-@@ -121,7 +121,7 @@ along with GCC; see the file COPYING3. If not see
- form followed by the data for the string. */
-
- #define LTO_major_version 7
--#define LTO_minor_version 1
-+#define LTO_minor_version 2
-
- typedef unsigned char lto_decl_flags_t;
-
---- gcc/tree-core.h
-+++ gcc/tree-core.h
-@@ -1644,6 +1644,7 @@ struct GTY(()) tree_decl_common {
- /* In a VAR_DECL and PARM_DECL, this is DECL_READ_P. */
- unsigned decl_read_flag : 1;
- /* In a VAR_DECL or RESULT_DECL, this is DECL_NONSHAREABLE. */
-+ /* In a PARM_DECL, this is DECL_HIDDEN_STRING_LENGTH. */
- unsigned decl_nonshareable_flag : 1;
-
- /* DECL_OFFSET_ALIGN, used only for FIELD_DECLs. */
---- gcc/tree-streamer-in.c
-+++ gcc/tree-streamer-in.c
-@@ -252,7 +252,7 @@ unpack_ts_decl_common_value_fields (struct bitpack_d *bp, tree expr)
- LABEL_DECL_UID (expr) = -1;
- }
-
-- if (TREE_CODE (expr) == FIELD_DECL)
-+ else if (TREE_CODE (expr) == FIELD_DECL)
- {
- DECL_PACKED (expr) = (unsigned) bp_unpack_value (bp, 1);
- DECL_NONADDRESSABLE_P (expr) = (unsigned) bp_unpack_value (bp, 1);
-@@ -260,12 +260,15 @@ unpack_ts_decl_common_value_fields (struct bitpack_d *bp, tree expr)
- expr->decl_common.off_align = bp_unpack_value (bp, 8);
- }
-
-- if (VAR_P (expr))
-+ else if (VAR_P (expr))
- {
- DECL_HAS_DEBUG_EXPR_P (expr) = (unsigned) bp_unpack_value (bp, 1);
- DECL_NONLOCAL_FRAME (expr) = (unsigned) bp_unpack_value (bp, 1);
- }
-
-+ else if (TREE_CODE (expr) == PARM_DECL)
-+ DECL_HIDDEN_STRING_LENGTH (expr) = (unsigned) bp_unpack_value (bp, 1);
-+
- if (TREE_CODE (expr) == RESULT_DECL
- || TREE_CODE (expr) == PARM_DECL
- || VAR_P (expr))
---- gcc/tree-streamer-out.c
-+++ gcc/tree-streamer-out.c
-@@ -212,7 +212,7 @@ pack_ts_decl_common_value_fields (struct bitpack_d *bp, tree expr)
- bp_pack_var_len_unsigned (bp, EH_LANDING_PAD_NR (expr));
- }
-
-- if (TREE_CODE (expr) == FIELD_DECL)
-+ else if (TREE_CODE (expr) == FIELD_DECL)
- {
- bp_pack_value (bp, DECL_PACKED (expr), 1);
- bp_pack_value (bp, DECL_NONADDRESSABLE_P (expr), 1);
-@@ -220,12 +220,15 @@ pack_ts_decl_common_value_fields (struct bitpack_d *bp, tree expr)
- bp_pack_value (bp, expr->decl_common.off_align, 8);
- }
-
-- if (VAR_P (expr))
-+ else if (VAR_P (expr))
- {
- bp_pack_value (bp, DECL_HAS_DEBUG_EXPR_P (expr), 1);
- bp_pack_value (bp, DECL_NONLOCAL_FRAME (expr), 1);
- }
-
-+ else if (TREE_CODE (expr) == PARM_DECL)
-+ bp_pack_value (bp, DECL_HIDDEN_STRING_LENGTH (expr), 1);
-+
- if (TREE_CODE (expr) == RESULT_DECL
- || TREE_CODE (expr) == PARM_DECL
- || VAR_P (expr))
---- gcc/tree.h
-+++ gcc/tree.h
-@@ -909,6 +909,11 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int,
- (TREE_CHECK2 (NODE, VAR_DECL, \
- RESULT_DECL)->decl_common.decl_nonshareable_flag)
-
-+/* In a PARM_DECL, set for Fortran hidden string length arguments that some
-+ buggy callers don't pass to the callee. */
-+#define DECL_HIDDEN_STRING_LENGTH(NODE) \
-+ (TREE_CHECK (NODE, PARM_DECL)->decl_common.decl_nonshareable_flag)
-+
- /* In a CALL_EXPR, means that the call is the jump from a thunk to the
- thunked-to function. */
- #define CALL_FROM_THUNK_P(NODE) (CALL_EXPR_CHECK (NODE)->base.protected_flag)
diff --git a/SOURCES/gcc8-rh1730380.patch b/SOURCES/gcc8-rh1730380.patch
deleted file mode 100644
index 201a7ba..0000000
--- a/SOURCES/gcc8-rh1730380.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-2019-07-15 Andreas Krebbel
-
- Backport from mainline
- 2019-07-01 Andreas Krebbel
-
- * config/s390/vector.md: Fix shift count operand printing.
-
---- gcc/config/s390/vector.md
-+++ gcc/config/s390/vector.md
-@@ -944,7 +944,7 @@
- (VEC_SHIFTS:VI (match_operand:VI 1 "register_operand" "v")
- (match_operand:SI 2 "nonmemory_operand" "an")))]
- "TARGET_VX"
-- "\t%v0,%v1,%Y2"
-+ "\t%v0,%v1,"
- [(set_attr "op_type" "VRS")])
-
- ; Shift each element by corresponding vector element
---- /dev/null
-+++ gcc/testsuite/gcc.target/s390/vector/vec-shift-2.c
-@@ -0,0 +1,24 @@
-+/* { dg-do run } */
-+/* { dg-options "-O3 -mzarch -march=z13 --save-temps" } */
-+
-+/* { dg-final { scan-assembler-times "veslf" 1 } } */
-+
-+typedef __attribute__((vector_size(16))) signed int v4si;
-+
-+v4si __attribute__((noinline,noclone))
-+shift_left_by_scalar (v4si in, int shift_count)
-+{
-+ return in << (3 + shift_count);
-+}
-+
-+int
-+main ()
-+{
-+ v4si a = { 1, 2, 3, 4 };
-+ v4si result = shift_left_by_scalar (a, 1);
-+
-+ if (result[1] != 32)
-+ __builtin_abort ();
-+
-+ return 0;
-+}
diff --git a/SPECS/gcc.spec b/SPECS/gcc.spec
index 23a96e3..0f385fc 100644
--- a/SPECS/gcc.spec
+++ b/SPECS/gcc.spec
@@ -1,10 +1,10 @@
-%global DATE 20190507
-%global SVNREV 270976
+%global DATE 20191121
+%global SVNREV 278589
%global gcc_version 8.3.1
%global gcc_major 8
# 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 4
+%global gcc_release 5
%global nvptx_tools_gitrev c28050f60193b3b95a18866a96f03334e874e78f
%global nvptx_newlib_gitrev aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24
%global _unpackaged_files_terminate_build 0
@@ -104,7 +104,7 @@
Summary: Various compilers (C, C++, Objective-C, ...)
Name: gcc
Version: %{gcc_version}
-Release: %{gcc_release}.5%{?dist}
+Release: %{gcc_release}%{?dist}
# libgcc, libgfortran, libgomp, libstdc++ and crtstuff have
# GCC Runtime Exception.
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
@@ -269,15 +269,9 @@ Patch12: gcc8-mcet.patch
Patch13: gcc8-rh1574936.patch
Patch14: gcc8-libgcc-hardened.patch
Patch15: gcc8-rh1670535.patch
-Patch16: gcc8-pr85400.patch
Patch17: gcc8-libgomp-20190503.patch
Patch18: gcc8-pr86747.patch
Patch19: gcc8-libgomp-testsuite.patch
-Patch20: gcc8-rh1711346.patch
-Patch21: gcc8-rh1730380.patch
-Patch22: gcc8-pr86098.patch
-Patch23: gcc8-pr90139.patch
-Patch24: gcc8-pr90756.patch
Patch30: gcc8-rh1668903-1.patch
Patch31: gcc8-rh1668903-2.patch
@@ -852,15 +846,9 @@ to NVidia PTX capable devices if available.
%patch14 -p0 -b .libgcc-hardened~
%endif
%patch15 -p0 -b .rh1670535~
-%patch16 -p0 -b .pr85400~
%patch17 -p0 -b .libgomp-20190503~
%patch18 -p0 -b .pr86747~
%patch19 -p0 -b .libgomp-testsuite~
-%patch20 -p0 -b .rh1711346~
-%patch21 -p0 -b .rh1730380~
-%patch22 -p0 -b .pr86098~
-%patch23 -p0 -b .pr90139~
-%patch24 -p0 -b .pr90756~
%patch30 -p0 -b .rh1668903-1~
%patch31 -p0 -b .rh1668903-2~
@@ -3177,6 +3165,10 @@ fi
%endif
%changelog
+* Thu Nov 21 2019 Marek Polacek 8.3.1-5
+- update from Fedora gcc-8.3.1-5 (#1747157)
+- use unspec_volatile for darn (PR target/91481, #1760205, CVE-2019-15847)
+
* Tue Jul 16 2019 Marek Polacek 8.3.1-4.5
- fix shift count operand printing (#1730380)
- fix tree-outof-ssa.c ICE with vector types (PR middle-end/90139, #1730454)