This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Linaro gcc mirror + linaro-local branches".
The branch, hjl/pr35514 has been updated discards 2b5d716367e0fcfc71fe670be23f4e8dfe9ef6f1 (commit) via 643024b50a9f33f2841479e31484917378c13e20 (commit) via 8aec26f847bf0e62abd9edbe1a1a4afad44324e2 (commit) via 3c537ec79cfcf161cf699fd32af9d872eed58886 (commit) via 668de2f7109d29355d24e77e6528545c23e182cb (commit) via 44121e9f4bf1c8bc5cfabb675c60c450d9f71d35 (commit) via 381fe25ad46aab4b037db3f93de9166a1e193f8a (commit) via 01872b8791fe8eefec76e613475d209ae72fc2d9 (commit) via 82cbe1be27852e78cc89a39555903833cd2292f4 (commit) via ffe67beb46890413231059464b7e6b412f49a5d2 (commit) via 4f0e25cabe7dddbb8b66880519ef5d1598d758eb (commit) via 9e9379bd2244eeeee7bd93c630827e34e11e44dc (commit) via 83c60000092ee9c5ab8dd8c3c7ecd6b3d0140c9b (commit) via a21bc0fdfe3e09b8379b1bc896f6732e0a6a9d2b (commit) via 80b8a97a9aad4c8d8a4e23cc3d5911a2f81e699d (commit) via b127ad66d1c53f6713f72a4978db0d1bfa411f4d (commit) via 9a56363e14dfb9c83b950c5d1f6fe04bf227624b (commit) via 8697277d3818237717b7b73cd2445804d7a93a1d (commit) via 282b12fe58b0ea2e8bc10c8309691b8bf74247b1 (commit) via e7966fe9160bb22110f35c47c2c143745604787b (commit) via 7832d94be769e42c34451b6f93f21868d74a6a8d (commit) via 1caa6ab13b481da391da0a26ee16335a68077378 (commit) via 535b528ef4fc7a38674432519ee4ed4379f073cd (commit) via e3c1971eb7660ea34d5585814c0a9bd0bddc5a00 (commit) via a29fd1b863db71413b000e51dc545e564c139b6d (commit) via 61453505645d677fcfb33f8c4269e5a6a933ee14 (commit) via a7081fa00f9e4089a0f9f336ad85a86deaf3717c (commit) via 5c3c2309eec982ca268a43fdd831e52160bdb0dc (commit) via e2c4a09ac84838edd25dfe60c95218f30d346a8e (commit) via 0446c24409c82d7399e9a9d00553d4d902ace22d (commit)
This update added new revisions after undoing existing revisions. That is to say, the old revision is not a strict subset of the new revision. This situation occurs when you --force push a change and generate a repository containing something like this:
* -- * -- B -- O -- O -- O (2b5d716367e0fcfc71fe670be23f4e8dfe9ef6f1) \ N -- N -- N (643024b50a9f33f2841479e31484917378c13e20)
When this happens we assume that you've already had alert emails for all of the O revisions, and so we here report only the revisions in the N branch from the common base, B.
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit 643024b50a9f33f2841479e31484917378c13e20 Author: H.J. Lu hjl.tools@gmail.com Date: Mon Jul 6 14:01:44 2015 -0700
Add make_pattern_elf_type
diff --git a/gcc/testsuite/lib/scanasm.exp b/gcc/testsuite/lib/scanasm.exp index e6638c3..cf3c128 100644 --- a/gcc/testsuite/lib/scanasm.exp +++ b/gcc/testsuite/lib/scanasm.exp @@ -24,6 +24,15 @@ proc make_pattern_printable { pattern } { return [string map {\t \t \n \n \r \r \ \\} $pattern] }
+# Transform a symbol into its ELF .type directive pattern. +proc make_pattern_elf_type { pattern } { + if [string match "[a-zA-Z]*" $pattern] { + return ".type[^\n]*$pattern, (%|@)(function|object)" + } else { + return "$pattern" + } +} + # Scan the OUTPUT_FILE for a pattern. If it is present and POSITIVE # is non-zero, or it is not present and POSITIVE is zero, the test # passes. The ORIG_ARGS is the list of arguments provided by dg-final @@ -230,6 +239,7 @@ proc scan-assembler-times { args } {
set testcase [testname-for-summary] set pattern [lindex $args 0] + set pattern_elf_type [make_pattern_elf_type $pattern] set pp_pattern [make_pattern_printable $pattern]
# This must match the rule in gcc-dg.exp. @@ -246,7 +256,12 @@ proc scan-assembler-times { args } { set text [read $fd] close $fd
- if { [llength [regexp -inline -all -- $pattern $text]] == [lindex $args 1]} { + set total_lines [llength [regexp -inline -all -- $pattern $text]] + set elf_type_lines [llength [regexp -inline -all -- $pattern_elf_type $text]] + set lines [expr $total_lines - $elf_type_lines] + set expected_lines [lindex $args 1] + + if { $lines == $expected_lines } { pass "$testcase scan-assembler-times $pp_pattern [lindex $args 1]" } else { fail "$testcase scan-assembler-times $pp_pattern [lindex $args 1]"
commit 8aec26f847bf0e62abd9edbe1a1a4afad44324e2 Author: H.J. Lu hjl.tools@gmail.com Date: Sun Jul 5 08:58:28 2015 -0700
Output ELF symbol type for undefined symbols
Update default_elf_asm_output_external to also output symbol type to help ELF linker properly issue diagnostic message. We don't output symbol type for reference to external TLS symbol since assembler will generate TLS symbol type based on TLS relocation and Solaris assembler only supports the @tls_obj type directive, not the @tls_object type directive used by GNU assmbler, which doesn't understand the @tls_obj type directive.
gcc/
PR target/35514 * varasm.c (default_elf_asm_output_external): Also output symbol type.
gcc/testsuite/
PR target/35514 * lib/target-supports.exp (check_effective_target_elf): New. * gcc.dg/pr35514-1.c: New file. * gcc.dg/pr35514-2.c: Likewise.
diff --git a/gcc/testsuite/gcc.dg/pr35514-1.c b/gcc/testsuite/gcc.dg/pr35514-1.c new file mode 100644 index 0000000..43eeec4 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr35514-1.c @@ -0,0 +1,16 @@ +/* { dg-do compile { target { elf } } } */ +/* { dg-options "-O2" } */ +/* { dg-final { scan-assembler ".type[^\n]*object, (%|@)object" } } */ +/* { dg-final { scan-assembler ".type[^\n]*function, (%|@)function" } } */ + +/* Verify that we generate proper symbol types for external reference. */ + +extern int object; +void function (void); + +int +foo (void) +{ + function (); + return object; +} diff --git a/gcc/testsuite/gcc.dg/pr35514-2.c b/gcc/testsuite/gcc.dg/pr35514-2.c new file mode 100644 index 0000000..d915bf5 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr35514-2.c @@ -0,0 +1,14 @@ +/* { dg-do compile { target { elf } } } */ +/* { dg-require-effective-target tls } */ +/* { dg-options "-O2" } */ +/* { dg-final { scan-assembler-not ".type[^\n]*object, (%|@)object" } } */ + +/* Verify that we generate proper symbol types for external reference. */ + +extern __thread int object; + +int +foo (void) +{ + return object; +} diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index bf512e9..c3ec209 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -6349,3 +6349,23 @@ proc check_effective_target_comdat_group {} { int (*fn) () = foo; }] } + +# Returns 1 if the target is ELF. + +proc check_effective_target_elf { } { + global check_effective_target_elf_saved + global tool + + if [info exists check_effective_target_elf_saved] { + verbose "check_effective_target_elf returning saved $check_effective_target_elf_saved" 2 + } else { + set objformat [gcc_target_object_format] + if { $objformat == "elf" } { + set check_effective_target_elf_saved 1 + } else { + set check_effective_target_elf_saved 0 + } + verbose "check_effective_target_elf returning $check_effective_target_elf_saved" 2 + } + return $check_effective_target_elf_saved +} diff --git a/gcc/varasm.c b/gcc/varasm.c index 3e76032..12f36f3 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -7509,7 +7509,7 @@ elf_record_gcc_switches (print_switch_type type, const char * name) }
/* Emit text to declare externally defined symbols. It is needed to - properly support non-default visibility. */ + properly support non-default visibility and specify symbol type. */ void default_elf_asm_output_external (FILE *file ATTRIBUTE_UNUSED, tree decl, @@ -7518,10 +7518,22 @@ default_elf_asm_output_external (FILE *file ATTRIBUTE_UNUSED, /* We output the name if and only if TREE_SYMBOL_REFERENCED is set in order to avoid putting out names that are never really used. Always output visibility specified in the source. */ - if (TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl)) - && (DECL_VISIBILITY_SPECIFIED (decl) - || targetm.binds_local_p (decl))) - maybe_assemble_visibility (decl); + if (TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl))) + { + if (DECL_VISIBILITY_SPECIFIED (decl) + || targetm.binds_local_p (decl)) + maybe_assemble_visibility (decl); + +#ifdef ASM_OUTPUT_TYPE_DIRECTIVE + if (TREE_CODE (decl) == FUNCTION_DECL) + ASM_OUTPUT_TYPE_DIRECTIVE (file, name, "function"); + else if (TREE_CODE (decl) == VAR_DECL) + { + if (!DECL_THREAD_LOCAL_P (decl)) + ASM_OUTPUT_TYPE_DIRECTIVE (file, name, "object"); + } +#endif + } }
/* The default hook for TARGET_ASM_OUTPUT_SOURCE_FILENAME. */
-----------------------------------------------------------------------
Summary of changes: gcc/ChangeLog | 147 ++++++++++++ gcc/DATESTAMP | 2 +- gcc/config.gcc | 10 +- gcc/config/aarch64/aarch64.md | 10 + gcc/config/arm/arm.c | 19 +- gcc/config/arm/arm.md | 36 +++ gcc/config/bfin/bfin.c | 13 +- gcc/config/i386/i386-c.c | 5 + gcc/config/i386/i386.c | 85 ++++++- gcc/config/i386/i386.h | 1 + gcc/config/i386/i386.md | 201 +++++----------- gcc/config/i386/x86-tune.def | 36 +-- gcc/config/mips/mips.c | 26 +- gcc/config/mips/mips.h | 26 +- gcc/config/mips/mips.md | 265 +++++++++++++-------- gcc/config/mips/mips.opt | 4 - gcc/config/nios2/constraints.md | 3 +- gcc/config/nios2/nios2-protos.h | 2 +- gcc/config/nios2/nios2.c | 11 +- gcc/doc/fragments.texi | 2 +- gcc/doc/install.texi | 2 +- gcc/doc/invoke.texi | 3 + gcc/fortran/ChangeLog | 25 ++ gcc/fortran/io.c | 41 +++- gcc/fortran/resolve.c | 9 +- gcc/fortran/trans-decl.c | 52 +++- gcc/fortran/trans-expr.c | 20 +- gcc/fortran/trans.h | 3 + gcc/match.pd | 5 +- gcc/read-md.c | 4 +- gcc/testsuite/ChangeLog | 72 ++++++ gcc/testsuite/gcc.c-torture/execute/pr65956.c | 67 ++++++ gcc/testsuite/gcc.c-torture/execute/pr66757.c | 15 ++ gcc/testsuite/gcc.dg/pr35514-1.c | 4 +- gcc/testsuite/gcc.dg/pr35514-2.c | 2 +- gcc/testsuite/gcc.dg/torture/pr66733-1.c | 28 +++ gcc/testsuite/gcc.dg/torture/pr66733-2.c | 46 ++++ gcc/testsuite/gcc.dg/torture/pr66759.c | 11 + gcc/testsuite/gcc.dg/vect/pr48052.c | 6 +- gcc/testsuite/gcc.target/aarch64/fnmul-1.c | 16 ++ gcc/testsuite/gcc.target/aarch64/fnmul-2.c | 18 ++ gcc/testsuite/gcc.target/aarch64/fnmul-3.c | 16 ++ gcc/testsuite/gcc.target/aarch64/fnmul-4.c | 16 ++ gcc/testsuite/gcc.target/arm/aapcs/align1.c | 29 +++ gcc/testsuite/gcc.target/arm/aapcs/align2.c | 30 +++ gcc/testsuite/gcc.target/arm/aapcs/align3.c | 42 ++++ gcc/testsuite/gcc.target/arm/aapcs/align4.c | 29 +++ gcc/testsuite/gcc.target/arm/aapcs/align_rec1.c | 36 +++ gcc/testsuite/gcc.target/arm/aapcs/align_rec2.c | 41 ++++ gcc/testsuite/gcc.target/arm/aapcs/align_rec3.c | 43 ++++ gcc/testsuite/gcc.target/arm/aapcs/align_rec4.c | 33 +++ gcc/testsuite/gcc.target/arm/aapcs/align_vaarg1.c | 36 +++ gcc/testsuite/gcc.target/arm/aapcs/align_vaarg2.c | 30 +++ gcc/testsuite/gcc.target/i386/pr53383-1.c | 8 + gcc/testsuite/gcc.target/i386/pr53383-2.c | 8 + gcc/testsuite/gcc.target/i386/pr53383-3.c | 8 + .../gcc.target/i386/{addr-sel-1.c => pr66749.c} | 5 +- gcc/testsuite/gcc.target/mips/near-far-3.c | 2 +- gcc/testsuite/gcc.target/nios2/gprel-offset.c | 20 ++ gcc/testsuite/gfortran.dg/alloc_comp_class_3.f03 | 55 +++++ gcc/testsuite/gfortran.dg/alloc_comp_class_4.f03 | 105 ++++++++ gcc/testsuite/gfortran.dg/iomsg_2.f90 | 44 ++++ gcc/testsuite/lib/scanasm.exp | 17 +- gcc/tree-ssa-ccp.c | 17 ++ gcc/tree-vect-loop-manip.c | 2 +- libgfortran/ChangeLog | 7 + libgfortran/Makefile.am | 6 - libgfortran/Makefile.in | 81 ++----- libgfortran/fmain.c | 24 -- libgomp/ChangeLog | 4 + libgomp/libgomp.h | 3 + libstdc++-v3/ChangeLog | 7 + libstdc++-v3/include/bits/hashtable.h | 19 +- .../unordered_set/max_load_factor/robustness.cc | 34 +-- 74 files changed, 1740 insertions(+), 470 deletions(-) create mode 100644 gcc/testsuite/gcc.c-torture/execute/pr65956.c create mode 100644 gcc/testsuite/gcc.c-torture/execute/pr66757.c create mode 100644 gcc/testsuite/gcc.dg/torture/pr66733-1.c create mode 100644 gcc/testsuite/gcc.dg/torture/pr66733-2.c create mode 100644 gcc/testsuite/gcc.dg/torture/pr66759.c create mode 100644 gcc/testsuite/gcc.target/aarch64/fnmul-1.c create mode 100644 gcc/testsuite/gcc.target/aarch64/fnmul-2.c create mode 100644 gcc/testsuite/gcc.target/aarch64/fnmul-3.c create mode 100644 gcc/testsuite/gcc.target/aarch64/fnmul-4.c create mode 100644 gcc/testsuite/gcc.target/arm/aapcs/align1.c create mode 100644 gcc/testsuite/gcc.target/arm/aapcs/align2.c create mode 100644 gcc/testsuite/gcc.target/arm/aapcs/align3.c create mode 100644 gcc/testsuite/gcc.target/arm/aapcs/align4.c create mode 100644 gcc/testsuite/gcc.target/arm/aapcs/align_rec1.c create mode 100644 gcc/testsuite/gcc.target/arm/aapcs/align_rec2.c create mode 100644 gcc/testsuite/gcc.target/arm/aapcs/align_rec3.c create mode 100644 gcc/testsuite/gcc.target/arm/aapcs/align_rec4.c create mode 100644 gcc/testsuite/gcc.target/arm/aapcs/align_vaarg1.c create mode 100644 gcc/testsuite/gcc.target/arm/aapcs/align_vaarg2.c create mode 100644 gcc/testsuite/gcc.target/i386/pr53383-1.c create mode 100644 gcc/testsuite/gcc.target/i386/pr53383-2.c create mode 100644 gcc/testsuite/gcc.target/i386/pr53383-3.c copy gcc/testsuite/gcc.target/i386/{addr-sel-1.c => pr66749.c} (69%) create mode 100644 gcc/testsuite/gcc.target/nios2/gprel-offset.c create mode 100644 gcc/testsuite/gfortran.dg/alloc_comp_class_3.f03 create mode 100644 gcc/testsuite/gfortran.dg/alloc_comp_class_4.f03 create mode 100644 gcc/testsuite/gfortran.dg/iomsg_2.f90 delete mode 100644 libgfortran/fmain.c
hooks/post-receive