6.0.0-0.7.fc24
This commit is contained in:
parent
d85626def8
commit
bd1b81e9ec
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,2 +1,3 @@
|
|||||||
/gcc-6.0.0-20160127.tar.bz2
|
/gcc-6.0.0-20160127.tar.bz2
|
||||||
/gcc-6.0.0-20160128.tar.bz2
|
/gcc-6.0.0-20160128.tar.bz2
|
||||||
|
/gcc-6.0.0-20160129.tar.bz2
|
||||||
|
27
gcc.spec
27
gcc.spec
@ -1,9 +1,9 @@
|
|||||||
%global DATE 20160128
|
%global DATE 20160129
|
||||||
%global SVNREV 232948
|
%global SVNREV 232999
|
||||||
%global gcc_version 6.0.0
|
%global gcc_version 6.0.0
|
||||||
# Note, gcc_release must be integer, if you want to add suffixes to
|
# Note, gcc_release must be integer, if you want to add suffixes to
|
||||||
# %{release}, append them after %{gcc_release} on Release: line.
|
# %{release}, append them after %{gcc_release} on Release: line.
|
||||||
%global gcc_release 0.6
|
%global gcc_release 0.7
|
||||||
%global _unpackaged_files_terminate_build 0
|
%global _unpackaged_files_terminate_build 0
|
||||||
%global _performance_build 1
|
%global _performance_build 1
|
||||||
# Hardening slows the compiler way too much.
|
# Hardening slows the compiler way too much.
|
||||||
@ -119,7 +119,7 @@ BuildRequires: texinfo, texinfo-tex, /usr/bin/pod2man
|
|||||||
BuildRequires: systemtap-sdt-devel >= 1.3
|
BuildRequires: systemtap-sdt-devel >= 1.3
|
||||||
BuildRequires: gmp-devel >= 4.1.2-8, mpfr-devel >= 2.2.1, libmpc-devel >= 0.8.1
|
BuildRequires: gmp-devel >= 4.1.2-8, mpfr-devel >= 2.2.1, libmpc-devel >= 0.8.1
|
||||||
%if %{build_go}
|
%if %{build_go}
|
||||||
BuildRequires: hostname
|
BuildRequires: hostname, procps
|
||||||
%endif
|
%endif
|
||||||
# For VTA guality testing
|
# For VTA guality testing
|
||||||
BuildRequires: gdb
|
BuildRequires: gdb
|
||||||
@ -206,8 +206,8 @@ Patch10: gcc6-no-add-needed.patch
|
|||||||
Patch11: gcc6-libgo-p224.patch
|
Patch11: gcc6-libgo-p224.patch
|
||||||
Patch12: gcc6-aarch64-async-unw-tables.patch
|
Patch12: gcc6-aarch64-async-unw-tables.patch
|
||||||
Patch13: gcc6-libsanitize-aarch64-va42.patch
|
Patch13: gcc6-libsanitize-aarch64-va42.patch
|
||||||
Patch14: gcc6-pr66869.patch
|
Patch14: gcc6-pr69546.patch
|
||||||
Patch15: gcc6-pr69126-revert.patch
|
Patch15: gcc6-pr69558.patch
|
||||||
|
|
||||||
# On ARM EABI systems, we do want -gnueabi to be part of the
|
# On ARM EABI systems, we do want -gnueabi to be part of the
|
||||||
# target triple.
|
# target triple.
|
||||||
@ -772,8 +772,8 @@ package or when debugging this package.
|
|||||||
rm -f libgo/go/crypto/elliptic/p224{,_test}.go
|
rm -f libgo/go/crypto/elliptic/p224{,_test}.go
|
||||||
%patch12 -p0 -b .aarch64-async-unw-tables~
|
%patch12 -p0 -b .aarch64-async-unw-tables~
|
||||||
%patch13 -p0 -b .libsanitize-aarch64-va42~
|
%patch13 -p0 -b .libsanitize-aarch64-va42~
|
||||||
%patch14 -p0 -b .pr66869~
|
%patch14 -p0 -b .pr69546~
|
||||||
%patch15 -p0 -b .pr69126-revert~
|
%patch15 -p0 -b .pr69558~
|
||||||
|
|
||||||
%if 0%{?_enable_debug_packages}
|
%if 0%{?_enable_debug_packages}
|
||||||
mkdir dwz-wrapper
|
mkdir dwz-wrapper
|
||||||
@ -3066,6 +3066,17 @@ fi
|
|||||||
%doc rpm.doc/changelogs/libcc1/ChangeLog*
|
%doc rpm.doc/changelogs/libcc1/ChangeLog*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Jan 29 2016 Jakub Jelinek <jakub@redhat.com> 6.0.0-0.7
|
||||||
|
- update from the trunk
|
||||||
|
- PRs c++/69462, c++/69509, c++/69516, debug/69518, libstdc++/69506,
|
||||||
|
middle-end/69537, other/69006, pch/68176, target/17381, target/65604,
|
||||||
|
target/66137, target/68400, target/69299, target/69459, target/69530,
|
||||||
|
target/69551, tree-optimization/69378, tree-optimization/69547
|
||||||
|
- buildrequire procps for go testing
|
||||||
|
- fix __uint128_t division (PR tree-optimization/69546)
|
||||||
|
- restore old behavior of _Pragma GCC diagnostics in macros
|
||||||
|
(PR preprocessor/69543, PR c/69558)
|
||||||
|
|
||||||
* Thu Jan 28 2016 Jakub Jelinek <jakub@redhat.com> 6.0.0-0.6
|
* Thu Jan 28 2016 Jakub Jelinek <jakub@redhat.com> 6.0.0-0.6
|
||||||
- update from the trunk
|
- update from the trunk
|
||||||
- PRs ada/69488, c++/24208, c++/67407, c++/69317, c++/69379, c++/69496,
|
- PRs ada/69488, c++/24208, c++/67407, c++/69317, c++/69379, c++/69496,
|
||||||
|
@ -1,44 +0,0 @@
|
|||||||
2016-01-28 Jakub Jelinek <jakub@redhat.com>
|
|
||||||
|
|
||||||
PR debug/66869
|
|
||||||
* decl.c (wrapup_globals_for_namespace): Warn about unused static
|
|
||||||
function declarations.
|
|
||||||
|
|
||||||
* g++.dg/warn/Wunused-function2.C: New test.
|
|
||||||
|
|
||||||
--- gcc/cp/decl.c.jj 2016-01-25 09:31:01.000000000 +0100
|
|
||||||
+++ gcc/cp/decl.c 2016-01-28 13:14:10.783286136 +0100
|
|
||||||
@@ -879,6 +879,24 @@ wrapup_globals_for_namespace (tree name_
|
|
||||||
tree *vec = statics->address ();
|
|
||||||
int len = statics->length ();
|
|
||||||
|
|
||||||
+ if (warn_unused_function)
|
|
||||||
+ {
|
|
||||||
+ tree decl;
|
|
||||||
+ unsigned int i;
|
|
||||||
+ FOR_EACH_VEC_SAFE_ELT (statics, i, decl)
|
|
||||||
+ if (TREE_CODE (decl) == FUNCTION_DECL
|
|
||||||
+ && DECL_INITIAL (decl) == 0
|
|
||||||
+ && DECL_EXTERNAL (decl)
|
|
||||||
+ && !TREE_PUBLIC (decl)
|
|
||||||
+ && !DECL_ARTIFICIAL (decl)
|
|
||||||
+ && !TREE_NO_WARNING (decl))
|
|
||||||
+ {
|
|
||||||
+ warning (OPT_Wunused_function,
|
|
||||||
+ "%q+F declared %<static%> but never defined", decl);
|
|
||||||
+ TREE_NO_WARNING (decl) = 1;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
/* Write out any globals that need to be output. */
|
|
||||||
return wrapup_global_declarations (vec, len);
|
|
||||||
}
|
|
||||||
--- gcc/testsuite/g++.dg/warn/Wunused-function2.C.jj 2016-01-28 13:40:10.201053364 +0100
|
|
||||||
+++ gcc/testsuite/g++.dg/warn/Wunused-function2.C 2016-01-28 13:41:43.006788487 +0100
|
|
||||||
@@ -0,0 +1,6 @@
|
|
||||||
+// PR debug/66869
|
|
||||||
+// { dg-do compile }
|
|
||||||
+// { dg-options "-Wunused-function" }
|
|
||||||
+
|
|
||||||
+static void test (void); // { dg-warning "'void test..' declared 'static' but never defined" }
|
|
||||||
+int i;
|
|
@ -1,91 +0,0 @@
|
|||||||
Revert:
|
|
||||||
2016-01-28 Jakub Jelinek <jakub@redhat.com>
|
|
||||||
|
|
||||||
* directives.c (destringize_and_run): Adjust prototype.
|
|
||||||
|
|
||||||
2016-01-27 David Malcolm <dmalcolm@redhat.com>
|
|
||||||
|
|
||||||
PR preprocessor/69126
|
|
||||||
* directives.c (destringize_and_run): Add expansion_loc param; use
|
|
||||||
it when handling unexpanded pragmas to fixup the locations of the
|
|
||||||
synthesized tokens.
|
|
||||||
(_cpp_do__Pragma): Add expansion_loc param and use it when calling
|
|
||||||
destringize_and_run.
|
|
||||||
* internal.h (_cpp_do__Pragma): Add expansion_loc param.
|
|
||||||
* macro.c (builtin_macro): Pass expansion location of _Pragma to
|
|
||||||
_cpp_do__Pragma.
|
|
||||||
|
|
||||||
--- libcpp/macro.c (revision 232893)
|
|
||||||
+++ libcpp/macro.c (revision 232892)
|
|
||||||
@@ -430,7 +430,7 @@ builtin_macro (cpp_reader *pfile, cpp_ha
|
|
||||||
if (pfile->state.in_directive)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
- return _cpp_do__Pragma (pfile, loc);
|
|
||||||
+ return _cpp_do__Pragma (pfile);
|
|
||||||
}
|
|
||||||
|
|
||||||
buf = _cpp_builtin_macro_text (pfile, node);
|
|
||||||
--- libcpp/directives.c (revision 232928)
|
|
||||||
+++ libcpp/directives.c (revision 232892)
|
|
||||||
@@ -122,8 +122,7 @@ static void do_pragma_error (cpp_reader
|
|
||||||
static void do_linemarker (cpp_reader *);
|
|
||||||
static const cpp_token *get_token_no_padding (cpp_reader *);
|
|
||||||
static const cpp_token *get__Pragma_string (cpp_reader *);
|
|
||||||
-static void destringize_and_run (cpp_reader *, const cpp_string *,
|
|
||||||
- source_location);
|
|
||||||
+static void destringize_and_run (cpp_reader *, const cpp_string *);
|
|
||||||
static int parse_answer (cpp_reader *, struct answer **, int, source_location);
|
|
||||||
static cpp_hashnode *parse_assertion (cpp_reader *, struct answer **, int);
|
|
||||||
static struct answer ** find_answer (cpp_hashnode *, const struct answer *);
|
|
||||||
@@ -1753,8 +1752,7 @@ get__Pragma_string (cpp_reader *pfile)
|
|
||||||
/* Destringize IN into a temporary buffer, by removing the first \ of
|
|
||||||
\" and \\ sequences, and process the result as a #pragma directive. */
|
|
||||||
static void
|
|
||||||
-destringize_and_run (cpp_reader *pfile, const cpp_string *in,
|
|
||||||
- source_location expansion_loc)
|
|
||||||
+destringize_and_run (cpp_reader *pfile, const cpp_string *in)
|
|
||||||
{
|
|
||||||
const unsigned char *src, *limit;
|
|
||||||
char *dest, *result;
|
|
||||||
@@ -1834,12 +1832,6 @@ destringize_and_run (cpp_reader *pfile,
|
|
||||||
toks = XRESIZEVEC (cpp_token, toks, maxcount);
|
|
||||||
}
|
|
||||||
toks[count] = *cpp_get_token (pfile);
|
|
||||||
- /* _Pragma is a builtin, so we're not within a macro-map, and so
|
|
||||||
- the token locations are set to bogus ordinary locations
|
|
||||||
- near to, but after that of the "_Pragma".
|
|
||||||
- Paper over this by setting them equal to the location of the
|
|
||||||
- _Pragma itself (PR preprocessor/69126). */
|
|
||||||
- toks[count].src_loc = expansion_loc;
|
|
||||||
/* Macros have been already expanded by cpp_get_token
|
|
||||||
if the pragma allowed expansion. */
|
|
||||||
toks[count++].flags |= NO_EXPAND;
|
|
||||||
@@ -1874,14 +1866,14 @@ destringize_and_run (cpp_reader *pfile,
|
|
||||||
|
|
||||||
/* Handle the _Pragma operator. Return 0 on error, 1 if ok. */
|
|
||||||
int
|
|
||||||
-_cpp_do__Pragma (cpp_reader *pfile, source_location expansion_loc)
|
|
||||||
+_cpp_do__Pragma (cpp_reader *pfile)
|
|
||||||
{
|
|
||||||
const cpp_token *string = get__Pragma_string (pfile);
|
|
||||||
pfile->directive_result.type = CPP_PADDING;
|
|
||||||
|
|
||||||
if (string)
|
|
||||||
{
|
|
||||||
- destringize_and_run (pfile, &string->val.str, expansion_loc);
|
|
||||||
+ destringize_and_run (pfile, &string->val.str);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
cpp_error (pfile, CPP_DL_ERROR,
|
|
||||||
--- libcpp/internal.h (revision 232893)
|
|
||||||
+++ libcpp/internal.h (revision 232892)
|
|
||||||
@@ -688,7 +688,7 @@ extern int _cpp_handle_directive (cpp_re
|
|
||||||
extern void _cpp_define_builtin (cpp_reader *, const char *);
|
|
||||||
extern char ** _cpp_save_pragma_names (cpp_reader *);
|
|
||||||
extern void _cpp_restore_pragma_names (cpp_reader *, char **);
|
|
||||||
-extern int _cpp_do__Pragma (cpp_reader *, source_location);
|
|
||||||
+extern int _cpp_do__Pragma (cpp_reader *);
|
|
||||||
extern void _cpp_init_directives (cpp_reader *);
|
|
||||||
extern void _cpp_init_internal_pragmas (cpp_reader *);
|
|
||||||
extern void _cpp_do_file_change (cpp_reader *, enum lc_reason, const char *,
|
|
69
gcc6-pr69546.patch
Normal file
69
gcc6-pr69546.patch
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
2016-01-29 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR tree-optimization/69546
|
||||||
|
* wide-int.cc (wi::divmod_internal): For unsigned division
|
||||||
|
where both operands fit into uhwi, if o1 is 1 and o0 has
|
||||||
|
msb set, if divident_prec is larger than bits per hwi,
|
||||||
|
clear another quotient word and return 2 instead of 1.
|
||||||
|
|
||||||
|
* gcc.dg/torture/pr69546.c: New test.
|
||||||
|
|
||||||
|
--- gcc/wide-int.cc.jj 2016-01-26 11:46:39.000000000 +0100
|
||||||
|
+++ gcc/wide-int.cc 2016-01-29 11:59:33.348852003 +0100
|
||||||
|
@@ -1788,15 +1788,25 @@ wi::divmod_internal (HOST_WIDE_INT *quot
|
||||||
|
{
|
||||||
|
unsigned HOST_WIDE_INT o0 = dividend.to_uhwi ();
|
||||||
|
unsigned HOST_WIDE_INT o1 = divisor.to_uhwi ();
|
||||||
|
+ unsigned int quotient_len = 1;
|
||||||
|
|
||||||
|
if (quotient)
|
||||||
|
- quotient[0] = o0 / o1;
|
||||||
|
+ {
|
||||||
|
+ quotient[0] = o0 / o1;
|
||||||
|
+ if (o1 == 1
|
||||||
|
+ && (HOST_WIDE_INT) o0 < 0
|
||||||
|
+ && dividend_prec > HOST_BITS_PER_WIDE_INT)
|
||||||
|
+ {
|
||||||
|
+ quotient[1] = 0;
|
||||||
|
+ quotient_len = 2;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
if (remainder)
|
||||||
|
{
|
||||||
|
remainder[0] = o0 % o1;
|
||||||
|
*remainder_len = 1;
|
||||||
|
}
|
||||||
|
- return 1;
|
||||||
|
+ return quotient_len;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Make the divisor and dividend positive and remember what we
|
||||||
|
--- gcc/testsuite/gcc.dg/torture/pr69546.c.jj 2016-01-29 12:06:03.148516651 +0100
|
||||||
|
+++ gcc/testsuite/gcc.dg/torture/pr69546.c 2016-01-29 12:08:17.847672967 +0100
|
||||||
|
@@ -0,0 +1,26 @@
|
||||||
|
+/* PR tree-optimization/69546 */
|
||||||
|
+/* { dg-do run { target int128 } } */
|
||||||
|
+
|
||||||
|
+unsigned __int128 __attribute__ ((noinline, noclone))
|
||||||
|
+foo (unsigned long long x)
|
||||||
|
+{
|
||||||
|
+ unsigned __int128 y = ~0ULL;
|
||||||
|
+ x >>= 63;
|
||||||
|
+ return y / (x | 1);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+unsigned __int128 __attribute__ ((noinline, noclone))
|
||||||
|
+bar (unsigned long long x)
|
||||||
|
+{
|
||||||
|
+ unsigned __int128 y = ~33ULL;
|
||||||
|
+ x >>= 63;
|
||||||
|
+ return y / (x | 1);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int
|
||||||
|
+main ()
|
||||||
|
+{
|
||||||
|
+ if (foo (1) != ~0ULL || bar (17) != ~33ULL)
|
||||||
|
+ __builtin_abort ();
|
||||||
|
+ return 0;
|
||||||
|
+}
|
62
gcc6-pr69558.patch
Normal file
62
gcc6-pr69558.patch
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
2016-01-29 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR preprocessor/69543
|
||||||
|
PR c/69558
|
||||||
|
* c-pragma.c (handle_pragma_diagnostic): Pass input_location
|
||||||
|
instead of loc to control_warning_option.
|
||||||
|
|
||||||
|
* gcc.dg/pr69543.c: New test.
|
||||||
|
* gcc.dg/pr69558.c: New test.
|
||||||
|
|
||||||
|
--- gcc/c-family/c-pragma.c.jj 2016-01-15 21:57:00.000000000 +0100
|
||||||
|
+++ gcc/c-family/c-pragma.c 2016-01-29 18:34:51.743943283 +0100
|
||||||
|
@@ -819,7 +819,7 @@ handle_pragma_diagnostic(cpp_reader *ARG
|
||||||
|
arg = option_string + 1 + cl_options[option_index].opt_len;
|
||||||
|
control_warning_option (option_index, (int) kind,
|
||||||
|
arg, kind != DK_IGNORED,
|
||||||
|
- loc, lang_mask, &handlers,
|
||||||
|
+ input_location, lang_mask, &handlers,
|
||||||
|
&global_options, &global_options_set,
|
||||||
|
global_dc);
|
||||||
|
}
|
||||||
|
--- gcc/testsuite/gcc.dg/pr69558.c.jj 2016-01-29 18:43:32.191665058 +0100
|
||||||
|
+++ gcc/testsuite/gcc.dg/pr69558.c 2016-01-29 18:40:05.000000000 +0100
|
||||||
|
@@ -0,0 +1,17 @@
|
||||||
|
+/* PR c/69558 */
|
||||||
|
+/* { dg-do compile } */
|
||||||
|
+/* { dg-options "-Wdeprecated-declarations" } */
|
||||||
|
+
|
||||||
|
+#define A \
|
||||||
|
+ _Pragma ("GCC diagnostic push") \
|
||||||
|
+ _Pragma ("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
|
||||||
|
+#define B \
|
||||||
|
+ _Pragma ("GCC diagnostic pop")
|
||||||
|
+#define C(x) \
|
||||||
|
+ A \
|
||||||
|
+ static inline void bar (void) { x (); } \
|
||||||
|
+ B
|
||||||
|
+
|
||||||
|
+__attribute__((deprecated)) void foo (void); /* { dg-bogus "declared here" } */
|
||||||
|
+
|
||||||
|
+C (foo) /* { dg-bogus "is deprecated" } */
|
||||||
|
--- gcc/testsuite/gcc.dg/pr69543.c.jj 2016-01-29 18:45:09.520323395 +0100
|
||||||
|
+++ gcc/testsuite/gcc.dg/pr69543.c 2016-01-29 18:44:56.000000000 +0100
|
||||||
|
@@ -0,0 +1,18 @@
|
||||||
|
+/* PR preprocessor/69543 */
|
||||||
|
+/* { dg-do compile } */
|
||||||
|
+/* { dg-options "-O2 -Wuninitialized" } */
|
||||||
|
+
|
||||||
|
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
|
||||||
|
+ _Pragma ("GCC diagnostic push") \
|
||||||
|
+ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
|
||||||
|
+ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
|
||||||
|
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
|
||||||
|
+ _Pragma ("GCC diagnostic pop")
|
||||||
|
+
|
||||||
|
+void test (char yylval)
|
||||||
|
+{
|
||||||
|
+ char *yyvsp;
|
||||||
|
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
|
||||||
|
+ *++yyvsp = yylval;
|
||||||
|
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
|
||||||
|
+}
|
Loading…
Reference in New Issue
Block a user