4.8.0-0.12
This commit is contained in:
parent
b471196219
commit
218acd09ac
1
.gitignore
vendored
1
.gitignore
vendored
@ -60,3 +60,4 @@
|
|||||||
/gcc-4.8.0-20130206.tar.bz2
|
/gcc-4.8.0-20130206.tar.bz2
|
||||||
/gcc-4.8.0-20130208.tar.bz2
|
/gcc-4.8.0-20130208.tar.bz2
|
||||||
/gcc-4.8.0-20130211.tar.bz2
|
/gcc-4.8.0-20130211.tar.bz2
|
||||||
|
/gcc-4.8.0-20130213.tar.bz2
|
||||||
|
26
gcc.spec
26
gcc.spec
@ -1,9 +1,9 @@
|
|||||||
%global DATE 20130211
|
%global DATE 20130213
|
||||||
%global SVNREV 195954
|
%global SVNREV 196031
|
||||||
%global gcc_version 4.8.0
|
%global gcc_version 4.8.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.11
|
%global gcc_release 0.12
|
||||||
%global _unpackaged_files_terminate_build 0
|
%global _unpackaged_files_terminate_build 0
|
||||||
%global multilib_64_archs sparc64 ppc64 s390x x86_64
|
%global multilib_64_archs sparc64 ppc64 s390x x86_64
|
||||||
%ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha
|
%ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha
|
||||||
@ -194,7 +194,10 @@ Patch10: gcc48-pr38757.patch
|
|||||||
Patch11: gcc48-libstdc++-docs.patch
|
Patch11: gcc48-libstdc++-docs.patch
|
||||||
Patch12: gcc48-no-add-needed.patch
|
Patch12: gcc48-no-add-needed.patch
|
||||||
Patch13: gcc48-pr55608.patch
|
Patch13: gcc48-pr55608.patch
|
||||||
Patch14: gcc48-pr56151.patch
|
Patch14: gcc48-asan-fix.patch
|
||||||
|
Patch15: gcc48-pr54117.patch
|
||||||
|
Patch16: gcc48-pr56111.patch
|
||||||
|
Patch17: gcc48-pr56224.patch
|
||||||
|
|
||||||
Patch1000: fastjar-0.97-segfault.patch
|
Patch1000: fastjar-0.97-segfault.patch
|
||||||
Patch1001: fastjar-0.97-len1.patch
|
Patch1001: fastjar-0.97-len1.patch
|
||||||
@ -747,7 +750,10 @@ package or when debugging this package.
|
|||||||
%endif
|
%endif
|
||||||
%patch12 -p0 -b .no-add-needed~
|
%patch12 -p0 -b .no-add-needed~
|
||||||
%patch13 -p0 -b .pr55608~
|
%patch13 -p0 -b .pr55608~
|
||||||
%patch14 -p0 -b .pr56151~
|
%patch14 -p0 -b .asan-fix~
|
||||||
|
%patch15 -p0 -b .pr54117~
|
||||||
|
%patch16 -p0 -b .pr56111~
|
||||||
|
%patch17 -p0 -b .pr56224~
|
||||||
|
|
||||||
%if 0%{?_enable_debug_packages}
|
%if 0%{?_enable_debug_packages}
|
||||||
cat > split-debuginfo.sh <<\EOF
|
cat > split-debuginfo.sh <<\EOF
|
||||||
@ -2971,6 +2977,16 @@ fi
|
|||||||
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
|
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Feb 13 2013 Jakub Jelinek <jakub@redhat.com> 4.8.0-0.12
|
||||||
|
- updated from trunk
|
||||||
|
- PRs c++/55710, c++/55879, c++/55993, c++/56135, c++/56155, c++/56285,
|
||||||
|
c++/56291, c/44938, fortran/46952, fortran/56204, inline-asm/56148,
|
||||||
|
libitm/55693, lto/56295, lto/56297, middle-end/56288,
|
||||||
|
sanitizer/56128, target/52122, testsuite/56082
|
||||||
|
- fix IRA bug that caused reload ICE on ARM (#910153, target/56184)
|
||||||
|
- attempt harder to fold "n" constrainted asm input operands in C++
|
||||||
|
with -O0 (#910421, c++/56302)
|
||||||
|
|
||||||
* Mon Feb 11 2013 Jakub Jelinek <jakub@redhat.com> 4.8.0-0.11
|
* Mon Feb 11 2013 Jakub Jelinek <jakub@redhat.com> 4.8.0-0.11
|
||||||
- updated from trunk
|
- updated from trunk
|
||||||
- PRs c++/56238, c++/56247, c++/56268, fortran/55362, libstdc++/56267,
|
- PRs c++/56238, c++/56247, c++/56268, fortran/55362, libstdc++/56267,
|
||||||
|
31
gcc48-asan-fix.patch
Normal file
31
gcc48-asan-fix.patch
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
2013-02-12 Dodji Seketeli <dodji@redhat.com>
|
||||||
|
|
||||||
|
* asan.c (instrument_builtin_call): Really put the length of the
|
||||||
|
second source argument into src1_len.
|
||||||
|
|
||||||
|
* c-c++-common/asan/memcmp-2.c: New test.
|
||||||
|
|
||||||
|
--- gcc/asan.c
|
||||||
|
+++ gcc/asan.c
|
||||||
|
@@ -1764,7 +1764,7 @@ instrument_builtin_call (gimple_stmt_iterator *iter)
|
||||||
|
|
||||||
|
if (get_mem_refs_of_builtin_call (call,
|
||||||
|
&src0, &src0_len, &src0_is_store,
|
||||||
|
- &src1, &src0_len, &src1_is_store,
|
||||||
|
+ &src1, &src1_len, &src1_is_store,
|
||||||
|
&dest, &dest_len, &dest_is_store,
|
||||||
|
&dest_is_deref))
|
||||||
|
{
|
||||||
|
--- gcc/testsuite/c-c++-common/asan/memcmp-2.c
|
||||||
|
+++ gcc/testsuite/c-c++-common/asan/memcmp-2.c
|
||||||
|
@@ -0,0 +1,10 @@
|
||||||
|
+/* { dg-do compile } */
|
||||||
|
+
|
||||||
|
+int
|
||||||
|
+foo ()
|
||||||
|
+{
|
||||||
|
+ char s0[5] = {0};
|
||||||
|
+ char s1[5] = {1};
|
||||||
|
+
|
||||||
|
+ return __builtin_memcmp (s0, s1, 2);
|
||||||
|
+}
|
263
gcc48-pr54117.patch
Normal file
263
gcc48-pr54117.patch
Normal file
@ -0,0 +1,263 @@
|
|||||||
|
2013-02-13 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR pch/54117
|
||||||
|
Revert
|
||||||
|
2012-07-14 Steven Bosscher <steven@gcc.gnu.org>
|
||||||
|
|
||||||
|
* toplev.c (init_asm_output): Open asm_out_file in 'w' mode.
|
||||||
|
|
||||||
|
* c-pch.c (CHECK_NO_ASM_OUT_DURING_PCH): Do not define.
|
||||||
|
Remove code conditional on it.
|
||||||
|
|
||||||
|
2012-07-01 Uros Bizjak <ubizjak@gmail.com>
|
||||||
|
|
||||||
|
* c-pch.c (c_common_write_pch): Remove unused variables.
|
||||||
|
|
||||||
|
2012-06-21 Steven Bosscher <steven@gcc.gnu.org>
|
||||||
|
|
||||||
|
* c-common.h (c_common_print_pch_checksum): Remove.
|
||||||
|
* c-pch.c: Do not include output.h.
|
||||||
|
(CHECK_NO_ASM_OUT_DURING_PCH): Define and add FIXME.
|
||||||
|
(asm_out_file): Define iff CHECK_NO_ASM_OUT_DURING_PCH isdefined.
|
||||||
|
(asm_file_startpos): Define iff CHECK_NO_ASM_OUT_DURING_PCH is defined.
|
||||||
|
(struct c_pch_header): Remove.
|
||||||
|
(get_ident): Update gpch version.
|
||||||
|
(pch_init): Do not print executable_checksum to asm_out_file.
|
||||||
|
Do not fail if there is no asm_out_file to read back from. Set
|
||||||
|
asm_file_startpos only if CHECK_NO_ASM_OUT_DURING_PCH is defined.
|
||||||
|
(c_common_write_pch): Verify that nothing was written to asm_out_file
|
||||||
|
since pch_init was called. Do not write a c_pch_header, and do not
|
||||||
|
copy from asm_out_file to the PCH.
|
||||||
|
(c_common_read_pch): Do not read a c_pch_header, and do not restore
|
||||||
|
the content of asm_out_file from the PCH.
|
||||||
|
(c_common_print_pch_checksum): Remove.
|
||||||
|
* c-opts.c (c_common_init): Print out executable_checksum directly.
|
||||||
|
|
||||||
|
--- gcc/toplev.c.jj 2013-02-13 09:29:16.197757222 +0100
|
||||||
|
+++ gcc/toplev.c 2013-02-13 11:34:38.855800182 +0100
|
||||||
|
@@ -912,7 +912,7 @@ init_asm_output (const char *name)
|
||||||
|
if (!strcmp (asm_file_name, "-"))
|
||||||
|
asm_out_file = stdout;
|
||||||
|
else
|
||||||
|
- asm_out_file = fopen (asm_file_name, "w");
|
||||||
|
+ asm_out_file = fopen (asm_file_name, "w+b");
|
||||||
|
if (asm_out_file == 0)
|
||||||
|
fatal_error ("can%'t open %s for writing: %m", asm_file_name);
|
||||||
|
}
|
||||||
|
--- gcc/c-family/c-pch.c.jj 2013-02-13 09:29:16.065757956 +0100
|
||||||
|
+++ gcc/c-family/c-pch.c 2013-02-13 11:34:45.552761549 +0100
|
||||||
|
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3.
|
||||||
|
#include "tree.h"
|
||||||
|
#include "flags.h"
|
||||||
|
#include "c-common.h"
|
||||||
|
+#include "output.h" /* for asm_out_file */
|
||||||
|
#include "debug.h"
|
||||||
|
#include "c-pragma.h"
|
||||||
|
#include "ggc.h"
|
||||||
|
@@ -67,11 +68,19 @@ struct c_pch_validity
|
||||||
|
size_t target_data_length;
|
||||||
|
};
|
||||||
|
|
||||||
|
+struct c_pch_header
|
||||||
|
+{
|
||||||
|
+ unsigned long asm_size;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
#define IDENT_LENGTH 8
|
||||||
|
|
||||||
|
/* The file we'll be writing the PCH to. */
|
||||||
|
static FILE *pch_outfile;
|
||||||
|
|
||||||
|
+/* The position in the assembler output file when pch_init was called. */
|
||||||
|
+static long asm_file_startpos;
|
||||||
|
+
|
||||||
|
static const char *get_ident (void);
|
||||||
|
|
||||||
|
/* Compute an appropriate 8-byte magic number for the PCH file, so that
|
||||||
|
@@ -83,7 +92,7 @@ static const char *
|
||||||
|
get_ident (void)
|
||||||
|
{
|
||||||
|
static char result[IDENT_LENGTH];
|
||||||
|
- static const char templ[] = "gpch.014";
|
||||||
|
+ static const char templ[] = "gpch.013";
|
||||||
|
static const char c_language_chars[] = "Co+O";
|
||||||
|
|
||||||
|
memcpy (result, templ, IDENT_LENGTH);
|
||||||
|
@@ -97,7 +106,9 @@ get_ident (void)
|
||||||
|
static bool pch_ready_to_save_cpp_state = false;
|
||||||
|
|
||||||
|
/* Prepare to write a PCH file, if one is being written. This is
|
||||||
|
- called at the start of compilation. */
|
||||||
|
+ called at the start of compilation.
|
||||||
|
+
|
||||||
|
+ Also, print out the executable checksum if -fverbose-asm is in effect. */
|
||||||
|
|
||||||
|
void
|
||||||
|
pch_init (void)
|
||||||
|
@@ -107,6 +118,15 @@ pch_init (void)
|
||||||
|
void *target_validity;
|
||||||
|
static const char partial_pch[] = "gpcWrite";
|
||||||
|
|
||||||
|
+#ifdef ASM_COMMENT_START
|
||||||
|
+ if (flag_verbose_asm)
|
||||||
|
+ {
|
||||||
|
+ fprintf (asm_out_file, "%s ", ASM_COMMENT_START);
|
||||||
|
+ c_common_print_pch_checksum (asm_out_file);
|
||||||
|
+ fputc ('\n', asm_out_file);
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
if (!pch_file)
|
||||||
|
return;
|
||||||
|
|
||||||
|
@@ -136,6 +156,14 @@ pch_init (void)
|
||||||
|
|| fwrite (target_validity, v.target_data_length, 1, f) != 1)
|
||||||
|
fatal_error ("can%'t write to %s: %m", pch_file);
|
||||||
|
|
||||||
|
+ /* We need to be able to re-read the output. */
|
||||||
|
+ /* The driver always provides a valid -o option. */
|
||||||
|
+ if (asm_file_name == NULL
|
||||||
|
+ || strcmp (asm_file_name, "-") == 0)
|
||||||
|
+ fatal_error ("%qs is not a valid output file", asm_file_name);
|
||||||
|
+
|
||||||
|
+ asm_file_startpos = ftell (asm_out_file);
|
||||||
|
+
|
||||||
|
/* Let the debugging format deal with the PCHness. */
|
||||||
|
(*debug_hooks->handle_pch) (0);
|
||||||
|
|
||||||
|
@@ -172,6 +200,11 @@ pch_cpp_save_state (void)
|
||||||
|
void
|
||||||
|
c_common_write_pch (void)
|
||||||
|
{
|
||||||
|
+ char *buf;
|
||||||
|
+ long asm_file_end;
|
||||||
|
+ long written;
|
||||||
|
+ struct c_pch_header h;
|
||||||
|
+
|
||||||
|
timevar_push (TV_PCH_SAVE);
|
||||||
|
|
||||||
|
targetm.prepare_pch_save ();
|
||||||
|
@@ -180,6 +213,34 @@ c_common_write_pch (void)
|
||||||
|
|
||||||
|
cpp_write_pch_deps (parse_in, pch_outfile);
|
||||||
|
|
||||||
|
+ asm_file_end = ftell (asm_out_file);
|
||||||
|
+ h.asm_size = asm_file_end - asm_file_startpos;
|
||||||
|
+
|
||||||
|
+ if (fwrite (&h, sizeof (h), 1, pch_outfile) != 1)
|
||||||
|
+ fatal_error ("can%'t write %s: %m", pch_file);
|
||||||
|
+
|
||||||
|
+ buf = XNEWVEC (char, 16384);
|
||||||
|
+
|
||||||
|
+ if (fseek (asm_out_file, asm_file_startpos, SEEK_SET) != 0)
|
||||||
|
+ fatal_error ("can%'t seek in %s: %m", asm_file_name);
|
||||||
|
+
|
||||||
|
+ for (written = asm_file_startpos; written < asm_file_end; )
|
||||||
|
+ {
|
||||||
|
+ long size = asm_file_end - written;
|
||||||
|
+ if (size > 16384)
|
||||||
|
+ size = 16384;
|
||||||
|
+ if (fread (buf, size, 1, asm_out_file) != 1)
|
||||||
|
+ fatal_error ("can%'t read %s: %m", asm_file_name);
|
||||||
|
+ if (fwrite (buf, size, 1, pch_outfile) != 1)
|
||||||
|
+ fatal_error ("can%'t write %s: %m", pch_file);
|
||||||
|
+ written += size;
|
||||||
|
+ }
|
||||||
|
+ free (buf);
|
||||||
|
+ /* asm_out_file can be written afterwards, so fseek to clear
|
||||||
|
+ _IOREAD flag. */
|
||||||
|
+ if (fseek (asm_out_file, 0, SEEK_END) != 0)
|
||||||
|
+ fatal_error ("can%'t seek in %s: %m", asm_file_name);
|
||||||
|
+
|
||||||
|
gt_pch_save (pch_outfile);
|
||||||
|
|
||||||
|
timevar_push (TV_PCH_CPP_SAVE);
|
||||||
|
@@ -341,6 +402,7 @@ c_common_read_pch (cpp_reader *pfile, co
|
||||||
|
int fd, const char *orig_name ATTRIBUTE_UNUSED)
|
||||||
|
{
|
||||||
|
FILE *f;
|
||||||
|
+ struct c_pch_header h;
|
||||||
|
struct save_macro_data *smd;
|
||||||
|
expanded_location saved_loc;
|
||||||
|
bool saved_trace_includes;
|
||||||
|
@@ -357,6 +419,38 @@ c_common_read_pch (cpp_reader *pfile, co
|
||||||
|
|
||||||
|
cpp_get_callbacks (parse_in)->valid_pch = NULL;
|
||||||
|
|
||||||
|
+ if (fread (&h, sizeof (h), 1, f) != 1)
|
||||||
|
+ {
|
||||||
|
+ cpp_errno (pfile, CPP_DL_ERROR, "reading");
|
||||||
|
+ fclose (f);
|
||||||
|
+ goto end;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (!flag_preprocess_only)
|
||||||
|
+ {
|
||||||
|
+ unsigned long written;
|
||||||
|
+ char * buf = XNEWVEC (char, 16384);
|
||||||
|
+
|
||||||
|
+ for (written = 0; written < h.asm_size; )
|
||||||
|
+ {
|
||||||
|
+ long size = h.asm_size - written;
|
||||||
|
+ if (size > 16384)
|
||||||
|
+ size = 16384;
|
||||||
|
+ if (fread (buf, size, 1, f) != 1
|
||||||
|
+ || fwrite (buf, size, 1, asm_out_file) != 1)
|
||||||
|
+ cpp_errno (pfile, CPP_DL_ERROR, "reading");
|
||||||
|
+ written += size;
|
||||||
|
+ }
|
||||||
|
+ free (buf);
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ /* If we're preprocessing, don't write to a NULL
|
||||||
|
+ asm_out_file. */
|
||||||
|
+ if (fseek (f, h.asm_size, SEEK_CUR) != 0)
|
||||||
|
+ cpp_errno (pfile, CPP_DL_ERROR, "seeking");
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/* Save the location and then restore it after reading the PCH. */
|
||||||
|
saved_loc = expand_location (line_table->highest_line);
|
||||||
|
saved_trace_includes = line_table->trace_includes;
|
||||||
|
@@ -435,3 +529,14 @@ c_common_pch_pragma (cpp_reader *pfile,
|
||||||
|
close (fd);
|
||||||
|
}
|
||||||
|
|
||||||
|
+/* Print out executable_checksum[]. */
|
||||||
|
+
|
||||||
|
+void
|
||||||
|
+c_common_print_pch_checksum (FILE *f)
|
||||||
|
+{
|
||||||
|
+ int i;
|
||||||
|
+ fputs ("Compiler executable checksum: ", f);
|
||||||
|
+ for (i = 0; i < 16; i++)
|
||||||
|
+ fprintf (f, "%02x", executable_checksum[i]);
|
||||||
|
+ putc ('\n', f);
|
||||||
|
+}
|
||||||
|
--- gcc/c-family/c-opts.c.jj 2013-02-13 09:29:16.110757723 +0100
|
||||||
|
+++ gcc/c-family/c-opts.c 2013-02-13 11:34:45.551761562 +0100
|
||||||
|
@@ -999,13 +999,7 @@ c_common_init (void)
|
||||||
|
cpp_init_iconv (parse_in);
|
||||||
|
|
||||||
|
if (version_flag)
|
||||||
|
- {
|
||||||
|
- int i;
|
||||||
|
- fputs ("Compiler executable checksum: ", stderr);
|
||||||
|
- for (i = 0; i < 16; i++)
|
||||||
|
- fprintf (stderr, "%02x", executable_checksum[i]);
|
||||||
|
- putc ('\n', stderr);
|
||||||
|
- }
|
||||||
|
+ c_common_print_pch_checksum (stderr);
|
||||||
|
|
||||||
|
/* Has to wait until now so that cpplib has its hash table. */
|
||||||
|
init_pragma ();
|
||||||
|
--- gcc/c-family/c-common.h.jj 2013-02-13 09:29:16.152757462 +0100
|
||||||
|
+++ gcc/c-family/c-common.h 2013-02-13 11:34:45.551761562 +0100
|
||||||
|
@@ -1011,6 +1011,7 @@ extern void c_common_read_pch (cpp_reade
|
||||||
|
extern void c_common_write_pch (void);
|
||||||
|
extern void c_common_no_more_pch (void);
|
||||||
|
extern void c_common_pch_pragma (cpp_reader *pfile, const char *);
|
||||||
|
+extern void c_common_print_pch_checksum (FILE *f);
|
||||||
|
|
||||||
|
/* In *-checksum.c */
|
||||||
|
extern const unsigned char executable_checksum[16];
|
97
gcc48-pr56111.patch
Normal file
97
gcc48-pr56111.patch
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
2013-02-13 Marc Glisse <marc.glisse@inria.fr>
|
||||||
|
|
||||||
|
PR libstdc++/56111
|
||||||
|
* include/std/complex (complex): Undefine.
|
||||||
|
* include/c_compatibility/complex.h (complex): Only undefine if
|
||||||
|
<complex> has been included.
|
||||||
|
* testsuite/26_numerics/complex/56111.cc: New testcase.
|
||||||
|
|
||||||
|
--- libstdc++-v3/include/std/complex (revision 196018)
|
||||||
|
+++ libstdc++-v3/include/std/complex (working copy)
|
||||||
|
@@ -37,20 +37,23 @@
|
||||||
|
#define _GLIBCXX_COMPLEX 1
|
||||||
|
|
||||||
|
#pragma GCC system_header
|
||||||
|
|
||||||
|
#include <bits/c++config.h>
|
||||||
|
#include <bits/cpp_type_traits.h>
|
||||||
|
#include <ext/type_traits.h>
|
||||||
|
#include <cmath>
|
||||||
|
#include <sstream>
|
||||||
|
|
||||||
|
+// Get rid of a macro possibly defined in <complex.h>
|
||||||
|
+#undef complex
|
||||||
|
+
|
||||||
|
namespace std _GLIBCXX_VISIBILITY(default)
|
||||||
|
{
|
||||||
|
_GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @defgroup complex_numbers Complex Numbers
|
||||||
|
* @ingroup numerics
|
||||||
|
*
|
||||||
|
* Classes and functions for complex numbers.
|
||||||
|
* @{
|
||||||
|
--- libstdc++-v3/include/c_compatibility/complex.h (revision 196018)
|
||||||
|
+++ libstdc++-v3/include/c_compatibility/complex.h (working copy)
|
||||||
|
@@ -27,17 +27,20 @@
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <bits/c++config.h>
|
||||||
|
|
||||||
|
#if __cplusplus >= 201103L
|
||||||
|
# include <ccomplex>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if _GLIBCXX_HAVE_COMPLEX_H
|
||||||
|
# include_next <complex.h>
|
||||||
|
-# undef complex
|
||||||
|
+# ifdef _GLIBCXX_COMPLEX
|
||||||
|
+// See PR56111, keep the macro in C++03 if possible.
|
||||||
|
+# undef complex
|
||||||
|
+# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef _GLIBCXX_COMPLEX_H
|
||||||
|
#define _GLIBCXX_COMPLEX_H 1
|
||||||
|
|
||||||
|
#endif
|
||||||
|
--- libstdc++-v3/testsuite/26_numerics/complex/56111.cc (revision 0)
|
||||||
|
+++ libstdc++-v3/testsuite/26_numerics/complex/56111.cc (revision 0)
|
||||||
|
@@ -0,0 +1,36 @@
|
||||||
|
+// { dg-do compile }
|
||||||
|
+// { dg-options "-std=c++98" }
|
||||||
|
+
|
||||||
|
+// Copyright (C) 2013 Free Software Foundation, Inc.
|
||||||
|
+//
|
||||||
|
+// This file is part of the GNU ISO C++ Library. This library is free
|
||||||
|
+// software; you can redistribute it and/or modify it under the
|
||||||
|
+// terms of the GNU General Public License as published by the
|
||||||
|
+// Free Software Foundation; either version 3, or (at your option)
|
||||||
|
+// any later version.
|
||||||
|
+
|
||||||
|
+// This library is distributed in the hope that it will be useful,
|
||||||
|
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
+// GNU General Public License for more details.
|
||||||
|
+
|
||||||
|
+// You should have received a copy of the GNU General Public License along
|
||||||
|
+// with this library; see the file COPYING3. If not see
|
||||||
|
+// <http://www.gnu.org/licenses/>.
|
||||||
|
+
|
||||||
|
+// libstdc++/56111
|
||||||
|
+// In C++03, we try to keep the macro "complex" as long as it does not
|
||||||
|
+// conflict (std::complex).
|
||||||
|
+#include <bits/c++config.h>
|
||||||
|
+#if _GLIBCXX_HAVE_COMPLEX_H
|
||||||
|
+# include <complex.h>
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+int main()
|
||||||
|
+{
|
||||||
|
+#if _GLIBCXX_HAVE_COMPLEX_H
|
||||||
|
+ double complex x = .5;
|
||||||
|
+ double complex y = cacos (x);
|
||||||
|
+ (void)y;
|
||||||
|
+#endif
|
||||||
|
+}
|
@ -1,73 +0,0 @@
|
|||||||
2013-02-11 Jakub Jelinek <jakub@redhat.com>
|
|
||||||
Steven Bosscher <steven@gcc.gnu.org>
|
|
||||||
|
|
||||||
PR rtl-optimization/56151
|
|
||||||
* optabs.c (add_equal_note): Don't return 0 if target is a MEM,
|
|
||||||
equal to op0 or op1, and last_insn pattern is CODE operation
|
|
||||||
with MEM dest and one of the operands matches that MEM.
|
|
||||||
|
|
||||||
* gcc.target/i386/pr56151.c: New test.
|
|
||||||
|
|
||||||
--- gcc/optabs.c.jj 2013-01-16 08:30:10.000000000 +0100
|
|
||||||
+++ gcc/optabs.c 2013-02-11 15:28:16.543839881 +0100
|
|
||||||
@@ -190,17 +190,34 @@ add_equal_note (rtx insns, rtx target, e
|
|
||||||
if (GET_CODE (target) == ZERO_EXTRACT)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
- /* If TARGET is in OP0 or OP1, punt. We'd end up with a note referencing
|
|
||||||
- a value changing in the insn, so the note would be invalid for CSE. */
|
|
||||||
- if (reg_overlap_mentioned_p (target, op0)
|
|
||||||
- || (op1 && reg_overlap_mentioned_p (target, op1)))
|
|
||||||
- return 0;
|
|
||||||
-
|
|
||||||
for (last_insn = insns;
|
|
||||||
NEXT_INSN (last_insn) != NULL_RTX;
|
|
||||||
last_insn = NEXT_INSN (last_insn))
|
|
||||||
;
|
|
||||||
|
|
||||||
+ /* If TARGET is in OP0 or OP1, punt. We'd end up with a note referencing
|
|
||||||
+ a value changing in the insn, so the note would be invalid for CSE. */
|
|
||||||
+ if (reg_overlap_mentioned_p (target, op0)
|
|
||||||
+ || (op1 && reg_overlap_mentioned_p (target, op1)))
|
|
||||||
+ {
|
|
||||||
+ if (MEM_P (target)
|
|
||||||
+ && (rtx_equal_p (target, op0)
|
|
||||||
+ || (op1 && rtx_equal_p (target, op1))))
|
|
||||||
+ {
|
|
||||||
+ /* For MEM target, with MEM = MEM op X, prefer no REG_EQUAL note
|
|
||||||
+ over expanding it as temp = MEM op X, MEM = temp. See PR56151. */
|
|
||||||
+ set = single_set (last_insn);
|
|
||||||
+ if (set
|
|
||||||
+ && GET_CODE (SET_SRC (set)) == code
|
|
||||||
+ && MEM_P (SET_DEST (set))
|
|
||||||
+ && (rtx_equal_p (SET_DEST (set), XEXP (SET_SRC (set), 0))
|
|
||||||
+ || (op1 && rtx_equal_p (SET_DEST (set),
|
|
||||||
+ XEXP (SET_SRC (set), 1)))))
|
|
||||||
+ return 1;
|
|
||||||
+ }
|
|
||||||
+ return 0;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
set = single_set (last_insn);
|
|
||||||
if (set == NULL_RTX)
|
|
||||||
return 1;
|
|
||||||
--- gcc/testsuite/gcc.target/i386/pr56151.c.jj 2013-02-11 16:20:51.459752951 +0100
|
|
||||||
+++ gcc/testsuite/gcc.target/i386/pr56151.c 2013-02-11 16:23:10.590964710 +0100
|
|
||||||
@@ -0,0 +1,17 @@
|
|
||||||
+/* PR rtl-optimization/56151 */
|
|
||||||
+/* { dg-do compile } */
|
|
||||||
+/* { dg-options "-O2" } */
|
|
||||||
+
|
|
||||||
+int vara, varb;
|
|
||||||
+
|
|
||||||
+void
|
|
||||||
+foo (int i, int j)
|
|
||||||
+{
|
|
||||||
+ vara = varb | vara;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* Verify the above is compiled into movl varb, %reg; orl %reg, vara instead
|
|
||||||
+ of longer movl vara, %reg; orl varb, %reg; movl %reg, vara. */
|
|
||||||
+/* { dg-final { scan-assembler-not "mov\[^\n\r]*vara" { target nonpic } } } */
|
|
||||||
+/* { dg-final { scan-assembler-times "mov\[^\n\r]*varb" 1 { target nonpic } } } */
|
|
||||||
+/* { dg-final { scan-assembler-times "or\[^\n\r]*vara" 1 { target nonpic } } } */
|
|
81
gcc48-pr56224.patch
Normal file
81
gcc48-pr56224.patch
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
2013-02-09 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||||
|
|
||||||
|
PR fortran/56224
|
||||||
|
* gfortran.h (gfc_add_include_path): Add boolean argument for warn.
|
||||||
|
* scanner.c (gfc_add_include_path): Pass along warn argument
|
||||||
|
to add_path_to_list.
|
||||||
|
* options.c (gfc_post_options): Add true warn argument to
|
||||||
|
gfc_add_include_path.
|
||||||
|
(gfc_handle_module_path_options): Likewise.
|
||||||
|
(gfc_handle_option): Also gfc_add_include_path for intrinsic
|
||||||
|
modules, without warning.
|
||||||
|
|
||||||
|
--- gcc/fortran/gfortran.h (Revision 195686)
|
||||||
|
+++ gcc/fortran/gfortran.h (Arbeitskopie)
|
||||||
|
@@ -2378,7 +2378,7 @@ match gfc_match_char_spec (gfc_typespec *);
|
||||||
|
void gfc_scanner_done_1 (void);
|
||||||
|
void gfc_scanner_init_1 (void);
|
||||||
|
|
||||||
|
-void gfc_add_include_path (const char *, bool, bool);
|
||||||
|
+void gfc_add_include_path (const char *, bool, bool, bool);
|
||||||
|
void gfc_add_intrinsic_modules_path (const char *);
|
||||||
|
void gfc_release_include_path (void);
|
||||||
|
FILE *gfc_open_included_file (const char *, bool, bool);
|
||||||
|
--- gcc/fortran/scanner.c (Revision 195686)
|
||||||
|
+++ gcc/fortran/scanner.c (Arbeitskopie)
|
||||||
|
@@ -375,9 +375,10 @@ add_path_to_list (gfc_directorylist **list, const
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
-gfc_add_include_path (const char *path, bool use_for_modules, bool file_dir)
|
||||||
|
+gfc_add_include_path (const char *path, bool use_for_modules, bool file_dir,
|
||||||
|
+ bool warn)
|
||||||
|
{
|
||||||
|
- add_path_to_list (&include_dirs, path, use_for_modules, file_dir, true);
|
||||||
|
+ add_path_to_list (&include_dirs, path, use_for_modules, file_dir, warn);
|
||||||
|
|
||||||
|
/* For '#include "..."' these directories are automatically searched. */
|
||||||
|
if (!file_dir)
|
||||||
|
--- gcc/fortran/options.c (Revision 195686)
|
||||||
|
+++ gcc/fortran/options.c (Arbeitskopie)
|
||||||
|
@@ -337,10 +337,10 @@ gfc_post_options (const char **pfilename)
|
||||||
|
source_path = (char *) alloca (i + 1);
|
||||||
|
memcpy (source_path, canon_source_file, i);
|
||||||
|
source_path[i] = 0;
|
||||||
|
- gfc_add_include_path (source_path, true, true);
|
||||||
|
+ gfc_add_include_path (source_path, true, true, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
- gfc_add_include_path (".", true, true);
|
||||||
|
+ gfc_add_include_path (".", true, true, true);
|
||||||
|
|
||||||
|
if (canon_source_file != gfc_source_file)
|
||||||
|
free (CONST_CAST (char *, canon_source_file));
|
||||||
|
@@ -498,7 +498,7 @@ gfc_handle_module_path_options (const char *arg)
|
||||||
|
gfc_option.module_dir = XCNEWVEC (char, strlen (arg) + 2);
|
||||||
|
strcpy (gfc_option.module_dir, arg);
|
||||||
|
|
||||||
|
- gfc_add_include_path (gfc_option.module_dir, true, false);
|
||||||
|
+ gfc_add_include_path (gfc_option.module_dir, true, false, true);
|
||||||
|
|
||||||
|
strcat (gfc_option.module_dir, "/");
|
||||||
|
}
|
||||||
|
@@ -844,6 +844,9 @@ gfc_handle_option (size_t scode, const char *arg,
|
||||||
|
|
||||||
|
case OPT_fintrinsic_modules_path:
|
||||||
|
case OPT_fintrinsic_modules_path_:
|
||||||
|
+
|
||||||
|
+ gfc_add_include_path (arg, false, false, false);
|
||||||
|
+
|
||||||
|
gfc_add_intrinsic_modules_path (arg);
|
||||||
|
break;
|
||||||
|
|
||||||
|
@@ -978,7 +983,7 @@ gfc_handle_option (size_t scode, const char *arg,
|
||||||
|
break;
|
||||||
|
|
||||||
|
case OPT_I:
|
||||||
|
- gfc_add_include_path (arg, true, false);
|
||||||
|
+ gfc_add_include_path (arg, true, false, true);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case OPT_J:
|
2
sources
2
sources
@ -1,4 +1,4 @@
|
|||||||
be78a47bd82523250eb3e91646db5b3d cloog-0.18.0.tar.gz
|
be78a47bd82523250eb3e91646db5b3d cloog-0.18.0.tar.gz
|
||||||
2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz
|
2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz
|
||||||
bce1586384d8635a76d2f017fb067cd2 isl-0.11.1.tar.bz2
|
bce1586384d8635a76d2f017fb067cd2 isl-0.11.1.tar.bz2
|
||||||
ab39481e50bd55b5efdf8bbcdfda63e3 gcc-4.8.0-20130211.tar.bz2
|
b69a343c57e805bd5e3c94fdcd7d45b7 gcc-4.8.0-20130213.tar.bz2
|
||||||
|
Loading…
Reference in New Issue
Block a user