Oleg Endo [Tue, 3 Feb 2015 20:24:13 +0000 (20:24 +0000)]
re PR target/64660 ([SH] Convert atomic_fetch_<op> to atomic_<op>_fetch)
gcc/
PR target/64660
* config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
atomic_nand<mode>_soft_tcb): New insns.
(atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
(define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
Split into atomic_not_fetchsi_hard if operands[0] is unused.
(atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
(atomic_fetch_not<mode>_hard): Convert to insn_and_split. Split into
atomic_not<mode>_hard if operands[0] is unused.
(atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
insn_and_split. Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
if operands[0] is unused.
(atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split. Split
into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
(atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
unused.
(atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split. Split
into atomic_not<mode>_soft_tcb if operands[0] is unused.
(atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
insn_and_split. Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
if operands[0] is unused.
(atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split. Split
into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
(atomic_fetch_nandsi_hard): Convert to insn_and_split. Split into
atomic_nand_fetchsi_hard if operands[0] is unused.
(atomic_fetch_nand<mode>_hard): Convert to insn_and_split. Split into
atomic_nand<mode>_hard if operands[0] is unused.
(atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split. Split
into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
(atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split. Split
into atomic_nand<mode>_soft_tcb if operands[0] is unused.
(atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split. Split
into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
(atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
(atomic_not_fetch<mode>_hard): Convert to insn_and_split. Split into
atomic_not<mode>_hard if operands[0] is unused.
(atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
unused.
(atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split. Split
into atomic_not<mode>_soft_tcb if operands[0] is unused.
(atomic_nand_fetch<mode>_hard): Convert to insn_and_split. Split into
atomic_nand<mode>_hard if operands[0] is unused.
(atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split. Split
into atomic_nand<mode>_soft_tcb if operands[0] is unused.
gcc/testsuite/
PR target/64660
* gcc.target/sh/pr64660-0.h: New.
* gcc.target/sh/pr64660-1.c: New.
* gcc.target/sh/pr64660-2.c: New.
* gcc.target/sh/pr64660-3.c: New.
* gcc.target/sh/pr64660-4.c: New.
From-SVN: r220376
David Malcolm [Tue, 3 Feb 2015 19:28:24 +0000 (19:28 +0000)]
jit: option-logging
gcc/jit/ChangeLog:
* jit-logging.h (gcc::jit::log_user::log): Make const.
* jit-recording.c (gcc::jit::recording::context::set_str_option):
Log the new value of the option.
(gcc::jit::recording::context::set_int_option): Likewise.
(gcc::jit::recording::context::set_bool_option): Likewise.
(gcc::jit::recording::context::compile): Log the value of all
options.
(gcc::jit::recording::context::compile_to_file): Likewise.
(gcc::jit::recording::context::log_all_options): New function.
(gcc::jit::recording::context::log_str_option): New function.
(gcc::jit::recording::context::log_int_option): New function.
(gcc::jit::recording::context::log_bool_option): New function.
* jit-recording.h (gcc::jit::recording::context::log_all_options):
New function.
(gcc::jit::recording::context::log_str_option): New function.
(gcc::jit::recording::context::log_int_option): New function.
(gcc::jit::recording::context::log_bool_option): New function.
* docs/internals/test-hello-world.exe.log.txt: Update for above
changes.
From-SVN: r220375
Paolo Carlini [Tue, 3 Feb 2015 17:21:49 +0000 (17:21 +0000)]
re PR c++/64877 (strange warning message from -Waddress)
/cp
2015-02-03 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/64877
* typeck.c (cp_build_binary_op): Avoid spurious -Waddress warnings
for generated expressions.
/testsuite
2015-02-03 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/64877
* g++.dg/warn/Waddress-2.C: New.
From-SVN: r220374
David Malcolm [Tue, 3 Feb 2015 17:19:58 +0000 (17:19 +0000)]
PR jit/64810: driver, arm, jit: configure-time default options
gcc/ChangeLog:
PR jit/64810
* Makefile.in (GCC_OBJS): Add gcc-main.o.
* gcc-main.c: New file, containing "main" taken from gcc.c.
* gcc.c (do_self_spec): Free decoded_options.
(class driver): Move declaration to gcc.h.
(main): Move declaration and implementation to new file
gcc-main.c.
(driver_get_configure_time_options): New function.
* gcc.h (class driver): Move this declaration here, from
gcc.c.
(driver_get_configure_time_options): New declaration.
gcc/jit/ChangeLog:
PR jit/64810
* Make-lang.in (jit_OBJS): Add jit/jit-spec.o and gcc.o.
(LIBGCCJIT_FILENAME): Add EXTRA_GCC_OBJS.
* jit-playback.c: Include gcc.h.
(gcc::jit::playback::context::compile): Move mutex acquisition
to before the call to make_fake_args.
(append_arg_from_driver): New function.
(gcc::jit::playback::context::make_fake_args): On the first call,
call into driver_get_configure_time_options to get configure-time
default options and cache them. Add them to the args for
toplev::main.
* jit-spec.c: New source file.
* docs/internals/test-hello-world.exe.log.txt: Update to reflect
above changes.
From-SVN: r220373
Jan Hubicka [Tue, 3 Feb 2015 16:57:20 +0000 (17:57 +0100)]
ipa-inline-analysis.c (simple_edge_hints): Fix check for cross-module inlining.
* ipa-inline-analysis.c (simple_edge_hints): Fix check for
cross-module inlining.
* cgraph.h (cgraph_node): Add flag merged.
* ipa-icf.c (sem_function::merge): Maintain it.
* lto-symtab.c (lto_cgraph_replace_node): Maintain merged flag.
From-SVN: r220372
Richard Sandiford [Tue, 3 Feb 2015 14:18:38 +0000 (14:18 +0000)]
arm.c (thumb2_reorg): Test UNARY_P and BINARY_P instead of OBJECT_P.
gcc/
* config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
instead of OBJECT_P.
From-SVN: r220371
Segher Boessenkool [Tue, 3 Feb 2015 12:15:32 +0000 (13:15 +0100)]
re PR middle-end/61225 (Several new failures after r210458 on x86_64-*-* with -m32)
PR middle-end/61225
gcc.target/i386/pr49095.c: XFAIL for ia32.
From-SVN: r220370
Eric Botcazou [Tue, 3 Feb 2015 09:56:45 +0000 (09:56 +0000)]
re PR target/62631 (gcc.dg/tree-ssa/ivopts-lt-2.c FAILs)
PR target/62631
* config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
(TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
* config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
From-SVN: r220369
Jakub Jelinek [Tue, 3 Feb 2015 09:39:19 +0000 (10:39 +0100)]
re PR other/63504 (Issues found by --enable-checking=valgrind)
PR other/63504
* combine.c (reg_n_sets_max): New variable.
(can_change_dest_mode, reg_nonzero_bits_for_combine,
reg_num_sign_bit_copies_for_combine, get_last_value_validate,
get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
(try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
(rest_of_handle_combine): Initialize reg_n_sets_max.
From-SVN: r220368
Dodji Seketeli [Tue, 3 Feb 2015 09:26:46 +0000 (10:26 +0100)]
PR preprocessor/64803 - __LINE__ inside macro is not constant
Consider the example code mentionned in this PR:
$ cat -n test.c
1 #define C(a, b) a ## b
2 #define L(x) C(L, x)
3 #define M(a) goto L(__LINE__); __LINE__; L(__LINE__):
4 M(a /* --> this is the line of the expansion point of M. */
5 ); /* --> this is the line of the end of the invocation of M. */
$
"cc1 -quiet -E test.c" yields:
goto L5; 5; L4:
;
Notice how we have a 'L4' there, where it should be L5. That is the issue.
My understanding is that during the *second* expansion of __LINE__
(the one between the two L(__LINE__)), builtin_macro() is called by
enter_macro_context() with the location of the expansion point of M
(which is at line 4). Then _cpp_builtin_macro_text() expands __LINE__
into the line number of the location of the last token that has been
lexed, which is the location of the closing parenthesis of the
invocation of M, at line 5. So that invocation of __LINE__ is
expanded into 5.
Now let's see why the last invocation of __LINE__ is expanded into 4.
In builtin_macro(), we have this code at some point:
/* Set pfile->cur_token as required by _cpp_lex_direct. */
pfile->cur_token = _cpp_temp_token (pfile);
cpp_token *token = _cpp_lex_direct (pfile);
/* We should point to the expansion point of the builtin macro. */
token->src_loc = loc;
The first two statements insert a new token in the stream of lexed
token and pfile->cur_token[-1], is the "new" last token that has been
lexed. But the location of pfile->cur_token[-1] is the same location
as the location of the "previous" pfile->cur_token[-1], by courtesy of
_cpp_temp_token(). So normally, in subsequent invocations of
builtin_macro(), the location of pfile->cur_token[-1] should always be
the location of the closing parenthesis of the invocation of M at line
5. Except that that code in master now has the statement
"token->src_loc = loc;" on the next line. That statement actually
sets the location of pfile->cur_token[-1] to 'loc'. Which is the
location of the expansion point of M, which is on line 4.
So in the subsequent call to builtin_macro() (for the last expansion
of __LINE__ in L(__LINE__)), for _cpp_builtin_macro_text(),
pfile->cur_token[-1].src_loc is going to have a line number of 4.
I think the core issue here is that the location that is passed to
builtin_macro() from enter_macro_context() is not correct when we are
in presence of a top-most function-like macro invocation; in that
case, that location should be the location of the closing parenthesis
of the macro invocation. Otherwise, if we are in presence of a a
top-most object-like macro invocation then the location passed down
to builtin_macro should be the location of the expansion point of the
macro.
That way, in the particular case of the input code above, the location
received by builtin_macro() will always have line number 5.
Boostrapped and tested on x86_64-unknown-linux-gnu against trunk.
libcpp/ChangeLog:
* internal.h (cpp_reader::top_most_macro_node): New data member.
* macro.c (enter_macro_context): Pass the location of the end of
the top-most invocation of the function-like macro, or the
location of the expansion point of the top-most object-like macro.
(cpp_get_token_1): Store the top-most macro node in the new
pfile->top_most_macro_node data member.
(_cpp_pop_context): Clear the new cpp_reader::top_most_macro_node
data member.
gcc/testsuite/ChangeLog:
* gcc.dg/cpp/builtin-macro-1.c: New test case.
Signed-off-by: Dodji Seketeli <dodji@redhat.com>
From-SVN: r220367
Ian Lance Taylor [Tue, 3 Feb 2015 03:33:21 +0000 (03:33 +0000)]
re PR go/64836 (go.test/test/fixedbugs/issue4348.go FAILs)
PR go/64836
PR go/64838
compiler: Use int64_t for backend type size and alignment.
Fixes 32-bit host 64-bit target cross-compilation.
* go-gcc.cc (Gcc_backend::type_size): Change return type to
int64_t.
(Gcc_backend::type_alignment): Likewise.
(Gcc_backend::type_field_alignment): Likewise.
(Gcc_backend::type_field_offset): Likewise.
(Gcc_backend::implicit_variable): Change alignment parameter type
to int64_t.
From-SVN: r220364
Ville Voutilainen [Tue, 3 Feb 2015 02:49:42 +0000 (04:49 +0200)]
re PR c++/64901 (overriding final function defined out of line does not lead to an error)
PR c++/64901
* decl.c (duplicate_decls): Also duplicate DECL_FINAL_P and
DECL_OVERRIDE_P.
From-SVN: r220363
GCC Administrator [Tue, 3 Feb 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r220362
Jan Hubicka [Mon, 2 Feb 2015 23:46:31 +0000 (00:46 +0100)]
ipa-inline.c (early_inliner): Skip inlining only in always_inlined...
* ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
if some always_inline was inlined, apply changes before inlining
heuristically.
* g++.dg/ipa/devirt-37.C: Disable early inlining.
From-SVN: r220359
Bruno Loff [Mon, 2 Feb 2015 21:18:56 +0000 (21:18 +0000)]
c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks after processing enum declaration.
2015-02-02 Bruno Loff <bruno.loff@gmail.com>
* c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks after
processing enum declaration.
From-SVN: r220358
Jason Merrill [Mon, 2 Feb 2015 17:46:56 +0000 (12:46 -0500)]
* tree.c (handle_abi_tag_attribute): Diagnose invalid arguments.
From-SVN: r220356
Christophe Lyon [Mon, 2 Feb 2015 16:56:12 +0000 (16:56 +0000)]
[ARM/AArch64][testsuite] Add vmax, vmin, vhadd, vhsub and vrhadd tests.
2015-02-02 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h
(_ARM_FPSRC): Add DN and AHP fields.
(clean_results): Force DN=1 on AArch64.
* gcc.target/aarch64/advsimd-intrinsics/binary_op_no64.inc: New file.
* gcc.target/aarch64/advsimd-intrinsics/vhadd.c: New file.
* gcc.target/aarch64/advsimd-intrinsics/vhsub.c: New file.
* gcc.target/aarch64/advsimd-intrinsics/vmax.c: New file.
* gcc.target/aarch64/advsimd-intrinsics/vmin.c: New file.
* gcc.target/aarch64/advsimd-intrinsics/vrhadd.c: New file.
From-SVN: r220353
Janis Johnson [Mon, 2 Feb 2015 16:40:20 +0000 (16:40 +0000)]
MAINTAINERS (Various Maintainers: testsuite): Remove myself.
* MAINTAINERS (Various Maintainers: testsuite): Remove myself.
(Write After Approval): Update address.
From-SVN: r220352
David Malcolm [Mon, 2 Feb 2015 16:11:15 +0000 (16:11 +0000)]
PR jit/64810: fix for arm_option_override
gcc/ChangeLog:
PR jit/64810
* config/arm/arm.c (arm_option_override): Set
arm_selected_arch/cpu/tune to NULL on entry.
From-SVN: r220351
Joseph Myers [Mon, 2 Feb 2015 16:07:12 +0000 (16:07 +0000)]
Regenerate .pot files.
gcc/po:
* gcc.pot: Regenerate.
libcpp/po:
* cpplib.pot: Regenerate.
From-SVN: r220349
Tejas Belagod [Mon, 2 Feb 2015 15:54:59 +0000 (15:54 +0000)]
re PR target/64231 (SIGSEGV building glibc on aarch64-linux-gnu from r217852)
2015-02-02 Tejas Belagod <tejas.belagod@arm.com>
Andrew Pinski <pinskia@gcc.gnu.org>
Jakub Jelinek <jakub@gcc.gnu.org>
PR target/64231
* config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
integer typing for small model. Use IN_RANGE.
Co-Authored-By: Andrew Pinski <pinskia@gcc.gnu.org>
Co-Authored-By: Jakub Jelinek <jakub@gcc.gnu.org>
From-SVN: r220348
David Malcolm [Mon, 2 Feb 2015 15:21:16 +0000 (15:21 +0000)]
PR jit/64810: support DImode on arm
gcc/jit/ChangeLog:
PR jit/64810
* dummy-frontend.c (jit_langhook_type_for_mode): Support
TYPE_MODE (long_long_integer_type_node).
From-SVN: r220347
Richard Biener [Mon, 2 Feb 2015 15:01:28 +0000 (15:01 +0000)]
tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
2015-02-02 Richard Biener <rguenther@suse.de>
* tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
* tree-vrp.c (vrp_valueize_1): Likewise.
From-SVN: r220346
Andre Vehreschild [Mon, 2 Feb 2015 09:59:47 +0000 (10:59 +0100)]
trans-decl.c (gfc_get_symbol_decl): Removed duplicate code.
* trans-decl.c (gfc_get_symbol_decl): Removed duplicate code.
* trans-expr.c (gfc_conv_intrinsic_to_class): Fixed indentation.
Fixed datatype of charlen to be a 32-bit int.
From-SVN: r220345
Alan Modra [Mon, 2 Feb 2015 07:16:11 +0000 (17:46 +1030)]
rs6000.c (rs6000_call_aix): Use unspec rather than mem for toc_restore.
gcc/
* config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
than mem for toc_restore.
* config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
(call_indirect_aix, call_value_indirect_aix): Adjust to suit.
(call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
gcc/testsuite/
* gcc.target/powerpc/cprophard.c: New.
From-SVN: r220344
David Edelsohn [Mon, 2 Feb 2015 03:31:31 +0000 (03:31 +0000)]
re PR libgomp/64635 (darwin produces libgomp-plugin-host_nonshm.1.dylib but tries to load libgomp-plugin-host_nonshm.so.1)
PR libgomp/64635
* configure.tgt (*-*-aix*): Use standard posix plugin-suffix.h.
Link with -lpthread.
* config/aix/plugin-suffix.h: Delete.
From-SVN: r220341
David Edelsohn [Mon, 2 Feb 2015 00:59:00 +0000 (19:59 -0500)]
re PR target/64047 (ICE: Segmentation fault when compiling gcc.dg/torture/pr52429.c)
PR target/64047
* config/rs6000/rs6000.c (rs6000_set_current_function): Handle
explicit default options.
From-SVN: r220340
GCC Administrator [Mon, 2 Feb 2015 00:16:18 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r220339
Andreas Tobler [Sun, 1 Feb 2015 21:23:27 +0000 (22:23 +0100)]
enum_9.f90: Use arm_eabi instead of arm*-*-linux*.
2015-02-01 Andreas Tobler <andreast@gcc.gnu.org>
* gfortran.dg/enum_9.f90: Use arm_eabi instead of arm*-*-linux*.
* gfortran.dg/enum_10.f90: Likewise. Reorder dg-additional-sources.
From-SVN: r220330
Jan Hubicka [Sun, 1 Feb 2015 18:46:14 +0000 (19:46 +0100)]
re PR ipa/64872 (ICE: Segmentation fault during Chromium PGO build)
PR ipa/64872
* ipa-utils.c (ipa_merge_profiles): Add release argument.
* ipa-icf.c (sem_function::merge): Do not release body when merging.
* ipa-utils.h (ipa_merge_profiles): Update prototype.
From-SVN: r220329
Jakub Jelinek [Sun, 1 Feb 2015 17:26:17 +0000 (18:26 +0100)]
re PR debug/64817 (compilation hangs at -O3 with -g enabled on x86_64-linux-gnu)
PR debug/64817
* cfgexpand.c (deep_ter_debug_map): New variable.
(avoid_deep_ter_for_debug): New function.
(expand_debug_expr): If TERed SSA_NAME is in
deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
instead of trying to expand SSA_NAME's def stmt.
(expand_debug_locations): When expanding debug bind
of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
value.
(pass_expand::execute): Call avoid_deep_ter_for_debug on
all debug bind stmts. Delete deep_ter_debug_map after
expand_debug_location if non-NULL and clear it.
* gcc.dg/pr64817-1.c: New test.
* gcc.dg/pr64817-2.c: New test.
From-SVN: r220320
Jonathan Wakely [Sun, 1 Feb 2015 15:11:23 +0000 (15:11 +0000)]
* src/c++11/futex.cc: Do not define for gthr-single.h targets.
From-SVN: r220319
Jonathan Wakely [Sun, 1 Feb 2015 15:11:08 +0000 (15:11 +0000)]
re PR libstdc++/64883 (FAIL: 17_intro/headers/c++*/all_attributes.cc (test for excess errors) on x86_64-apple-darwin10)
PR libstdc++/64883
* include/c_global/cstdio (gets): Use __deprecated__ attribute instead
of deprecated.
* include/c_std/cstdio (gets): Likewise.
* testsuite/17_intro/headers/c++1998/all_attributes.cc: Avoid clashing
with attributes used in darwin headers.
From-SVN: r220318
Oleg Endo [Sun, 1 Feb 2015 11:12:47 +0000 (11:12 +0000)]
re PR target/64851 ([SH] Add atomic not)
gcc/
PR target/64851
* config/sh/sync.md (atomic_fetch_notsi_hard,
atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
atomic_not_fetch<mode>_soft_imask): New insns.
gcc/testsuite/
PR target/64851
* gcc.target/sh/pr64851-0.h: New
* gcc.target/sh/pr64851-1.c: New
* gcc.target/sh/pr64851-2.c: New
* gcc.target/sh/pr64851-3.c: New
* gcc.target/sh/pr64851-4.c: New
From-SVN: r220317
Maxim Kuvyrkov [Sun, 1 Feb 2015 07:29:35 +0000 (07:29 +0000)]
Fix scheduling undeterminism from sorting with DEBUG_INSNs
* haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
(rank_for_schedule_debug): Split from ...
(rank_for_schedule): ... this.
(ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
* sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
From-SVN: r220316
Sandra Loosemore [Sun, 1 Feb 2015 02:11:30 +0000 (21:11 -0500)]
md.texi (Machine Constraints): Alphabetize table by target.
2015-01-31 Sandra Loosemore <sandra@codesourcery.com>
gcc/
* doc/md.texi (Machine Constraints): Alphabetize table by target.
* doc/extend.texi (x86 Variable Attributes): Move section to
correct alphabetization after renaming.
(x86 Type Attributes): Likewise.
(Target Builtins): Re-alphabetize menu.
(x86 Built-in Functions): Move section to correct alphabetization
after renaming.
(x86 transactional memory intrinsics): Likewise.
* doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
and x86 Windows Options in table and menu.
(x86 Options): Move section to correct alphabetization after
renaming.
(x86 Windows Options): Likewise.
From-SVN: r220315
Sandra Loosemore [Sun, 1 Feb 2015 02:09:48 +0000 (21:09 -0500)]
Correct Changelog for r220309
From-SVN: r220314
Joseph Myers [Sun, 1 Feb 2015 00:29:54 +0000 (00:29 +0000)]
Always pass 0 or option number to gfc_warning*.
Similar to the issue with fatal_error that I fixed in
<https://gcc.gnu.org/ml/gcc-patches/2015-01/msg02690.html>, the
overloads of gfc_warning and gfc_warning_now (with and without a first
argument for an option number) also break gcc.pot regeneration because
xgettext expects the translated string argument to be in a fixed
position for a given function name. This patch applies the
corresponding fix of always passing a first argument (option number or
0), just like the core diagnostic functions warning and warning_at,
and removing the problem overloads without it.
Bootstrapped with no regressions on x86_64-unknown-linux-gnu.
* error.c (gfc_warning (const char *, ...), gfc_warning_now (const
char *, ...)): Remove functions.
* gfortran.h (gfc_warning (const char *, ...), gfc_warning_now
(const char *, ...)): Remove declarations.
* arith.c, check.c, data.c, decl.c, frontend-passes.c,
interface.c, intrinsic.c, io.c, matchexp.c, module.c, openmp.c,
options.c, parse.c, primary.c, resolve.c, scanner.c, symbol.c,
trans-common.c, trans-const.c, trans-stmt.c: All callers of
gfc_warning and gfc_warning_now changed to pass 0 or option number
as first argument.
From-SVN: r220313
GCC Administrator [Sun, 1 Feb 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r220312
Sandra Loosemore [Sat, 31 Jan 2015 23:47:13 +0000 (18:47 -0500)]
extend.texi: Use "x86"...
2015-01-31 Sandra Loosemore <sandra@codesourcery.com>
gcc/
* doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
preferred names of the architecture and its 32- and 64-bit
variants.
* doc/invoke.texi: Likewise.
* doc/md.texi: Likewise.
From-SVN: r220309
John David Anglin [Sat, 31 Jan 2015 19:45:53 +0000 (19:45 +0000)]
linux-atomic.c (__kernel_cmpxchg2): Change declaration of oldval and newval to const void *.
* config/pa/linux-atomic.c (__kernel_cmpxchg2): Change declaration of
oldval and newval to const void *. Fix typo.
(FETCH_AND_OP_2): Use __atomic_load_n to load value.
(FETCH_AND_OP_WORD): Likewise.
(OP_AND_FETCH_WORD): Likewise.
(COMPARE_AND_SWAP_2): Likewise.
(__sync_val_compare_and_swap_4): Likewise.
(__sync_lock_test_and_set_4): Likewise.
(SYNC_LOCK_RELEASE_2): Likewise.
Remove support for long long atomic operations.
From-SVN: r220307
Uros Bizjak [Sat, 31 Jan 2015 15:30:30 +0000 (16:30 +0100)]
re PR target/64882 (ICE on valid code at -O3 with -g enabled in simplify_subreg, at simplify-rtx.c:5681)
2015-01-31 Uros Bizjak <ubizjak@gmail.com>
PR target/64882
* config/i386/predicates.md (address_no_seg_operand): Reject
non-CONST_INT_P operands in invalid mode.
2015-01-31 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
address_operand 0. Rename from *prefetch_prefetchwt1_<mode>.
* config/i386/predicates.md (address_no_seg_operand): Call
address_operand with VOIDmode.
(vsib_address_operand): Ditto.
(address_mpx_no_base_operand): Ditto.
(address_mpx_no_index_operand): Ditto.
testsuite/ChangeLog:
2015-01-31 Uros Bizjak <ubizjak@gmail.com>
PR target/64882
* gcc.dg/torture/pr64882.c: New test.
From-SVN: r220306
David Edelsohn [Sat, 31 Jan 2015 14:57:43 +0000 (14:57 +0000)]
re PR target/64159 (FAIL: gcc.dg/tree-ssa/ssa-dom-cse-2.c scan-tree-dump optimized "return 28;")
PR target/64159
* gcc.dg/tree-ssa/ssa-dom-cse-2.c: Add XFAIL for powerpc*-*-* and
sparc*-*-*.
From-SVN: r220305
Uros Bizjak [Sat, 31 Jan 2015 13:14:56 +0000 (14:14 +0100)]
* fixincl.c (fix_applies) <case TT_CKSUM:>: Change C++ style comments.
From-SVN: r220304
Uros Bizjak [Sat, 31 Jan 2015 09:52:20 +0000 (10:52 +0100)]
pr64146.C (dg-final): Cleanup icf ipa dump.
* g++.dg/ipa/pr64146.C (dg-final): Cleanup icf ipa dump.
* gcc.target/i386/chkp-builtins-1.c (dg-final): Cleanup chkp tree dump.
* gcc.target/i386/chkp-builtins-2.c (dg-final): Ditto.
* gcc.target/i386/chkp-builtins-3.c (dg-final): Ditto.
* gcc.target/i386/chkp-builtins-4.c (dg-final): Ditto.
* gcc.target/i386/chkp-const-check-1.c (dg-final): Cleanup chkopt
tree dump.
* gcc.target/i386/chkp-lifetime-1.c (dg-final): Ditto.
* gcc.target/i386/chkp-remove-bndint-1.c (dg-final): Cleanup optimized
tree dump.
* gcc.target/i386/chkp-remove-bndint-2.c (dg-final): Ditto.
* gfortran.dg/goacc/private-1.f95 (dg-final): Cleanup omplower
tree dump.
From-SVN: r220303
Ian Lance Taylor [Sat, 31 Jan 2015 00:20:10 +0000 (00:20 +0000)]
compiler: Treat map index expressions as lvalues in range expressions.
Fixes golang/go#9695.
From-SVN: r220301
GCC Administrator [Sat, 31 Jan 2015 00:16:36 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r220300
Vladimir Makarov [Fri, 30 Jan 2015 22:22:58 +0000 (22:22 +0000)]
re PR rtl-optimization/64688 (internal compiler error: Max. number of generated reload insns per insn is achieved (90))
2015-01-30 Vladimir Makarov <vmakarov@redhat.com>
PR target/64688
* lra-constraints.c (original_subreg_reg_mode): New.
(simplify_operand_subreg): Try to simplify subreg of const. Use
original_subreg_reg_mode for it.
(swap_operands): Update original_subreg_reg_mode.
(curr_insn_transform): Set up original_subreg_reg_mode.
2015-01-30 Vladimir Makarov <vmakarov@redhat.com>
PR target/64688
* g++.dg/pr64688-2.C: New.
From-SVN: r220297
Uros Bizjak [Fri, 30 Jan 2015 19:50:06 +0000 (20:50 +0100)]
fuse-caller-save-rec.c: Require nonpic target.
* gcc.target/i386/fuse-caller-save-rec.c: Require nonpic target.
* gcc.target/i386/fuse-caller-save-xmm.c: Ditto.
* gcc.target/i386/fuse-caller-save.c: Ditto.
* gcc.target/i386/headmerge-1.c: Ditto.
* gcc.target/i386/headmerge-2.c: Ditto.
* gcc.target/i386/sibcall-6.c: Ditto.
From-SVN: r220296
Vladimir Makarov [Fri, 30 Jan 2015 17:47:44 +0000 (17:47 +0000)]
re PR target/64617 (ICE: Max. number of generated reload insns per insn is achieved (90) with -ftree-vectorize -mavx512bw -march=slm)
2015-01-30 Vladimir Makarov <vmakarov@redhat.com>
PR target/64617
* lra-constraints.c (prohibited_class_reg_set_mode_p): New
function.
(process_alt_operands): Use it.
(curr_insn_transform): Check the optional reload pseudo class is
ok for the mode.
2015-01-30 Vladimir Makarov <vmakarov@redhat.com>
PR target/64617
* gcc.target/i386/pr64617.c: New test.
From-SVN: r220294
Joseph Myers [Fri, 30 Jan 2015 16:15:00 +0000 (16:15 +0000)]
Always pass explicit location to fatal_error.
The patch <https://gcc.gnu.org/ml/gcc-patches/2014-11/msg00698.html>
adding an overload for fatal_error that passes an explicit location
broke gcc.pot regeneration because xgettext cannot handle function
overloads with the diagnostic string argument in different positions.
As the desired direction is for all diagnostics to have explicit
locations, this patch addresses the regression by removing the version
of fatal_error that does not pass a location, passing explicit
input_location everywhere (in the hope that those will incrementally
be changed to other locations, much as with the addition of a location
argument to pedwarn some time ago - a lot of cases aren't meaningfully
associated with a source file so UNKNOWN_LOCATION may be better).
Note that this patch does not attempt to fix any existing issues with
these diagnostics (such as wrongly starting with capital letters or
ending with '.' or '\n'); it just adds the input_location argument.
Bootstrapped with no regressions for x86_64-unknown-linux-gnu (Go
excluded).
gcc:
* diagnostic.c (fatal_error (const char *, ...)): Remove function.
* diagnostic-core.h (fatal_error (const char *, ...)): Remove
prototype.
* toplev.h (init_asm_output): Update comment on use of
UNKNOWN_LOCATION with fatal_error.
* cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
fatal_error changed to pass input_location as first argument.
gcc/c-family:
* c-opts.c, c-pch.c, cppspec.c: All callers of fatal_error changed
to pass input_location as first argument.
gcc/cp:
* class.c, except.c, parser.c, pt.c: All callers of fatal_error
changed to pass input_location as first argument.
gcc/fortran:
* f95-lang.c, gfortranspec.c, trans-const.c, trans-expr.c: All
callers of fatal_error changed to pass input_location as first
argument.
gcc/java:
* class.c, expr.c, jcf-parse.c, jvspec.c: All callers of
fatal_error changed to pass input_location as first argument.
gcc/lto:
* lto-object.c, lto-symtab.c, lto.c: All callers of fatal_error
changed to pass input_location as first argument.
libcc1:
* plugin.cc: All callers of fatal_error changed to pass
input_location as first argument.
From-SVN: r220293
Ian Lance Taylor [Fri, 30 Jan 2015 16:04:58 +0000 (16:04 +0000)]
compiler: Pass location to fatal_error.
The GCC function is changing.
The error functions need to move to a compiler-indepent
approach so that changes to the GCC functions are not a
concern here.
From-SVN: r220292
Ian Lance Taylor [Fri, 30 Jan 2015 15:57:59 +0000 (15:57 +0000)]
compiler: Add pkgpath symbol information to export data.
This adds the pkgpath symbol to the export data whenever it is
needed--whenever the pkgpath symbol is not the obvious
transformation of the pkgpath. This lets us determine the
correct symbol name for indirectly imported packages compiled
with -fgo-prefix.
From-SVN: r220291
Robert Dewar [Fri, 30 Jan 2015 15:31:01 +0000 (15:31 +0000)]
a-assert.adb: Minor reformatting.
2015-01-30 Robert Dewar <dewar@adacore.com>
* a-assert.adb: Minor reformatting.
* sem_ch13.adb: Minor comment clarification.
* types.ads: Minor comment update.
* sem_eval.adb (Real_Or_String_Static_Predicate_Matches): Avoid blow up
when we have a predicate that is nothing but an inherited dynamic
predicate.
From-SVN: r220290
Jerome Guitton [Fri, 30 Jan 2015 15:29:39 +0000 (15:29 +0000)]
Makefile.in (x86-vxworks): Update GCC_SPEC_FILES to include cert link spec.
2015-01-30 Jerome Guitton <guitton@adacore.com>
* gcc-interface/Makefile.in (x86-vxworks): Update GCC_SPEC_FILES to
include cert link spec.
From-SVN: r220289
Arnaud Charlet [Fri, 30 Jan 2015 15:25:38 +0000 (16:25 +0100)]
[multiple changes]
2015-01-30 Robert Dewar <dewar@adacore.com>
* einfo.ads: Minor comment fix.
* freeze.adb (Freeze_Profile): Add test for suspicious import
in pure unit.
* sem_prag.adb (Process_Import_Or_Interface): Test for suspicious
use in Pure unit is now moved to Freeze (to properly catch
Pure_Function exemption).
2015-01-30 Bob Duff <duff@adacore.com>
* sem_res.ads: Minor comment fix.
* sem_type.adb: sem_type.adb (Remove_Conversions): Need to
check both operands of an operator.
2015-01-30 Yannick Moy <moy@adacore.com>
* a-assert.ads, a-assert.adb: Mark package spec in SPARK. Set assertion
policy for Pre to Ignore.
(Assert): Add precondition.
From-SVN: r220288
Robert Dewar [Fri, 30 Jan 2015 15:23:22 +0000 (15:23 +0000)]
sem_prag.adb (Process_Import_Or_Interface): Warn if used in Pure unit.
2015-01-30 Robert Dewar <dewar@adacore.com>
* sem_prag.adb (Process_Import_Or_Interface): Warn if used in
Pure unit.
* s-valllu.ads (Scan_Raw_Long_Long_Unsigned): Clarify
documentation for some special cases of invalid attempts at
based integers.
From-SVN: r220287
Arnaud Charlet [Fri, 30 Jan 2015 15:15:45 +0000 (16:15 +0100)]
[multiple changes]
2015-01-30 Gary Dismukes <dismukes@adacore.com>
* errout.ads: Minor reformatting.
2015-01-30 Yannick Moy <moy@adacore.com>
* inline.adb (Process_Formals): Use the sloc of
the inlined node instead of the sloc of the actual parameter,
when replacing formal parameters by the actual one.
2015-01-30 Arnaud Charlet <charlet@adacore.com>
* g-expect.adb (Get_Command_Output): Use infinite timeout when
calling Expect.
2015-01-30 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Analyze_Associations): If an in-parameter is
defaulted in an instantiation, add an entry in the list of actuals
to indicate the default value of the formal (as is already done
for defaulted subprograms).
2015-01-30 Javier Miranda <miranda@adacore.com>
* errout.adb (Error_Msg_PT): Minor error phrasing update.
2015-01-30 Robert Dewar <dewar@adacore.com>
* sem_warn.adb (Warn_On_Known_Condition): Improve error message
for object case.
2015-01-30 Pierre-Marie de Rodat <derodat@adacore.com>
* exp_dbug.adb (Get_Encoded_Name): When
-fgnat-encodings=minimal, do not generate names for biased types.
From-SVN: r220286
Tristan Gingold [Fri, 30 Jan 2015 15:13:15 +0000 (15:13 +0000)]
re PR ada/64349 (Bootstrapping Ada fails on darwin(9|10).)
2015-01-30 Tristan Gingold <gingold@adacore.com>
PR ada/64349
* env.c: Move vxworks and darwin includes out of #ifdef IN_RTS.
From-SVN: r220285
Arnaud Charlet [Fri, 30 Jan 2015 15:06:14 +0000 (16:06 +0100)]
[multiple changes]
2015-01-30 Gary Dismukes <dismukes@adacore.com>
* freeze.adb: Minor reformatting.
2015-01-30 Javier Miranda <miranda@adacore.com>
* errout.ads (Error_Msg_PT): Replace Node_Id by Entity_Id and
improve its documentation.
* errout.adb (Error_Msg_PT): Improve the error message.
* sem_ch6.adb (Check_Conformance): Update call to Error_Msg_PT.
(Check_Synchronized_Overriding): Update call to Error_Msg_PT.
* sem_ch3.adb (Check_Abstract_Overriding): Code cleanup.
2015-01-30 Robert Dewar <dewar@adacore.com>
* sem_warn.adb (Warn_On_Known_Condition): Do special casing of
message for False case.
2015-01-30 Doug Rupp <rupp@adacore.com>
* s-vxwext-kernel.ads (Task_Cont): Remove imported subprogram body.
* s-vxwext-kernel.adb (Task_Cont): New subpprogram body specialized for
kernel.
From-SVN: r220284
Arnaud Charlet [Fri, 30 Jan 2015 15:02:09 +0000 (16:02 +0100)]
[multiple changes]
2015-01-30 Gary Dismukes <dismukes@adacore.com>
* sem_attr.adb (Declared_Within_Generic_Unit):
New function to test whether an entity is declared within the
declarative region of a given generic unit.
(Resolve_Attribute): For checking legality of subprogram'Access within
a generic unit, call new Boolean function Declared_Within_Generic_Unit
instead of simply comparing the results of Enclosing_Generic_Unit on
the prefix and access type. Correct minor comment typos.
2015-01-30 Robert Dewar <dewar@adacore.com>
* freeze.adb, exp_util.ads: Update comment.
* exp_util.adb, exp_ch3.adb: Minor code reorganization and reformatting.
* sem_util.adb: Minor: fix typo.
From-SVN: r220283
Arnaud Charlet [Fri, 30 Jan 2015 14:59:21 +0000 (15:59 +0100)]
[multiple changes]
2015-01-30 Hristian Kirtchev <kirtchev@adacore.com>
* sem_attr.adb (Analyze_Attribute): Ensure that
the check concerning Refined_Post takes precedence over the
other cases.
2015-01-30 Gary Dismukes <dismukes@adacore.com>
* sem_prag.adb: Minor typo fixes and reformatting.
From-SVN: r220282
Szabolcs Nagy [Fri, 30 Jan 2015 14:07:00 +0000 (14:07 +0000)]
[Patch/libcpp] Change __ARM_NEON__ to __ARM_NEON in lex.c
2015-01-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
* lex.c (search_line_fast): Change __ARM_NEON__ to __ARM_NEON.
From-SVN: r220281
Martin Liska [Fri, 30 Jan 2015 11:57:57 +0000 (12:57 +0100)]
Guard GCC version for a pragma ifdef.
* tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
in #pragma GCC diagnostic guards.
From-SVN: r220280
Arnaud Charlet [Fri, 30 Jan 2015 11:20:27 +0000 (12:20 +0100)]
[multiple changes]
2015-01-30 Yannick Moy <moy@adacore.com>
* sem_attr.adb: Code clean up.
2015-01-30 Robert Dewar <dewar@adacore.com>
* ali.adb (Scan_ALI): Set Serious_Errors flag in Unit record.
* ali.ads (Unit_Record): Add new field Serious_Errors.
* lib-writ.adb (Write_Unit_Information): Set SE (serious errors)
attribute in U line.
* lib-writ.ads: New attribute SE (serious erors) in unit line.
2015-01-30 Hristian Kirtchev <kirtchev@adacore.com>
* einfo.adb Update the usage of attributes Entry_Bodies_Array,
Lit_Indexes, Scale_Value, Storage_Size_Variable,
String_Literal_Low_Bound along associated routines and
Write_FieldX_Name.
(Pending_Access_Types): New routine.
(Set_Pending_Access_Types): New routine.
(Write_Field15_Name): Add an entry for Pending_Access_Types.
* einfo.ads Add new attribute Pending_Access_Types along
with usage in nodes. Update the usage of attributes
Entry_Bodies_Array, Lit_Indexes, Scale_Value,
Storage_Size_Variable, String_Literal_Low_Bound.
(Pending_Access_Types): New routine along with pragma Inline.
(Set_Pending_Access_Types): New routine along with pragma Inline.
* exp_ch3.adb (Expand_Freeze_Array_Type): Add new local variable
Ins_Node. Determine the insertion node for anonynous access type
that acts as a component type of an array. Update the call to
Build_Finalization_Master.
(Expand_Freeze_Record_Type): Update
the calls to Build_Finalization_Master.
(Freeze_Type): Remove
local variable RACW_Seen. Factor out the code that deals with
remote access-to-class-wide types. Create a finalization master
when the designated type contains a private component. Fully
initialize all pending access types.
(Process_RACW_Types): New routine.
(Process_Pending_Access_Types): New routine.
* exp_ch4.adb (Expand_Allocator_Expression): Allocation no longer
needs to set primitive Finalize_Address.
(Expand_N_Allocator): Allocation no longer sets primitive
Finalize_Address.
* exp_ch6.adb (Add_Finalization_Master_Actual_To_Build_In_Place_Call):
Update the call to Build_Finalization_Master.
(Make_Build_In_Place_Call_In_Allocator): Allocation no longer
needs to set primitive Finalize_Address.
* exp_ch7.adb (Add_Pending_Access_Type): New routine.
(Build_Finalization_Master): New parameter profile. Associate
primitive Finalize_Address with the finalization master if the
designated type has been frozen, otherwise treat the access
type as pending. Simplify the insertion of the master and
related initialization code.
(Make_Finalize_Address_Body): Allow Finalize_Address for class-wide
abstract types.
(Make_Set_Finalize_Address_Call): Remove forlam parameter Typ.
Simplify the implementation.
* exp_ch7.ads (Build_Finalization_Master): New parameter profile
along with comment on usage.
(Make_Set_Finalize_Address_Call): Remove formal parameter Typ. Update
the comment on usage.
* exp_util.adb (Build_Allocate_Deallocate_Proc): Use routine
Finalize_Address to retrieve the primitive.
(Finalize_Address): New routine.
(Find_Finalize_Address): Removed.
* exp_util.ads (Finalize_Address): New routine.
* freeze.adb (Freeze_All): Remove the generation of finalization
masters.
* sem_ch3.adb (Analyze_Full_Type_Declaration): Propagate any
pending access types from the partial to the full view.
From-SVN: r220279
Robert Dewar [Fri, 30 Jan 2015 11:02:18 +0000 (11:02 +0000)]
sem_disp.adb: Minor reformatting.
2015-01-30 Robert Dewar <dewar@adacore.com>
* sem_disp.adb: Minor reformatting.
* sem_disp.ads: Documentation update.
From-SVN: r220278
Uros Bizjak [Fri, 30 Jan 2015 10:53:53 +0000 (11:53 +0100)]
re PR target/15184 (Direct access to byte inside word not working with -march=pentiumpro)
PR target/15184
* gcc.target/i386/pr15184-1.c: Compile for ia32 target only.
(dg-options): Remove -m32.
(dg-final): Scan for "movb %al" only.
* gcc.target/i386/pr15184-2.c: Ditto.
From-SVN: r220277
Ed Schonberg [Fri, 30 Jan 2015 09:29:51 +0000 (09:29 +0000)]
sem_disp.adb (Is_Dynamically_Tagged): when applied to an entity or a function call, return True if type is class-wide.
2015-01-30 Ed Schonberg <schonberg@adacore.com>
* sem_disp.adb (Is_Dynamically_Tagged): when applied to an entity
or a function call, return True if type is class-wide.
* sem_res.adb (Resolve_Case_Expression, Resolve_If_Expression);
Apply RM 4.5.7 (17/3): all or none of the dependent expression
of a conditional expression must be dynamically tagged.
From-SVN: r220276
Richard Biener [Fri, 30 Jan 2015 09:22:17 +0000 (09:22 +0000)]
re PR tree-optimization/64829 ([ARM] ICE at -O3 in vect_get_vec_def_for_stmt_copy)
2015-01-30 Richard Biener <rguenther@suse.de>
PR tree-optimization/64829
* tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
not add a widening conversion pattern but hand off extra
widenings to callers.
(vect_recog_widen_mult_pattern): Handle extra widening produced
by vect_handle_widen_op_by_const.
(vect_recog_widen_shift_pattern): Likewise.
(vect_pattern_recog_1): Remove excess vertical space in dumping.
* tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
(vect_init_vector_1): Likewise.
(vect_get_vec_def_for_operand): Likewise.
(vect_finish_stmt_generation): Likewise.
(vectorizable_load): Likewise.
(vect_analyze_stmt): Likewise.
(vect_is_simple_use): Likewise.
* gcc.dg/vect/pr64829.c: New testcase.
From-SVN: r220275
Arnaud Charlet [Fri, 30 Jan 2015 09:00:10 +0000 (10:00 +0100)]
[multiple changes]
2015-01-30 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Analyze_Function_Return): In an extended return
statement, apply accessibility check to result object when there
is no initializing expression (Ada 2012 RM 6.5 (5.4/3))
2015-01-30 Robert Dewar <dewar@adacore.com>
* sem_ch4.adb (Analyze_If_Expression): Allow for non-standard
Boolean for case where ELSE is omitted.
* sem_res.adb: Minor reformatting.
From-SVN: r220274
Jeff Law [Fri, 30 Jan 2015 05:50:33 +0000 (22:50 -0700)]
* combine.c (try_combine): Fix typo in comment.
From-SVN: r220273
Segher Boessenkool [Fri, 30 Jan 2015 05:35:52 +0000 (06:35 +0100)]
re PR target/64580 (very high rs6000_stack_info() usage during LTO Firefox build on ppc64)
PR target/64580
* config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
(rs6000_stack_info): Add assert.
(rs6000_output_savres_externs): New function, split off from...
(rs6000_output_function_prologue): ... here. Do not call it for
thunks.
From-SVN: r220272
Ian Lance Taylor [Fri, 30 Jan 2015 00:35:44 +0000 (00:35 +0000)]
compiler: Fix -fgo-prefix handling.
There was bug in the fix for PR 61880: it only worked fully
correctly for code compiled with -fgo-pkgpath. For code that
used -fgo-prefix, or that used neither option, the '.'
separating the prefix and the package name was converted to an
underscore, which did not happen before. This broke SWIG and
any other code that expected specific symbol names.
Fortunately all code compiled in libgo and all code compiled
by the go tool uses -fgo-pkgpath, so this probably did not
affect very many people.
This is an incomplete fix that does not modify the package
file format, for use on both mainline and the GCC 4.9 branch.
A follow on patch will fully fix the problem.
From-SVN: r220268
GCC Administrator [Fri, 30 Jan 2015 00:18:08 +0000 (00:18 +0000)]
Daily bump.
From-SVN: r220267
Jack Howarth [Thu, 29 Jan 2015 22:09:16 +0000 (22:09 +0000)]
re PR libffi/64855 (FAIL: libffi.call/* -W -Wall -Wno-psabi -O0 -DABI_NUM=* -DABI_ATTR=* execution test on x86_64-apple-darwin*)
2015-01-29 Jack Howarth <howarth.at.gcc@gmail.com>
PR libffi/64855
* testsuite/lib/libffi.exp: Don't set targetabis on darwin.
From-SVN: r220264
Marek Polacek [Thu, 29 Jan 2015 21:02:21 +0000 (21:02 +0000)]
re PR c/64709 (Bogus -Wmissing-field-initializers warning)
PR c/64709
* c-typeck.c (pop_init_level): If constructor_elements has
exactly one element with integer_zerop value, set constructor_zeroinit
to 1. Remove braces around warning_init call.
* gcc.dg/pr64709.c: New test.
From-SVN: r220263
Jakub Jelinek [Thu, 29 Jan 2015 20:40:07 +0000 (21:40 +0100)]
re PR sanitizer/64717 (-fsanitize=vptr leads to warning: ‘<anonymous>’ may be used uninitialized in this function [-Wmaybe-uninitialized])
PR c++/64717
* cp-ubsan.c (cp_ubsan_instrument_vptr): Don't wrap vptr
into SAVE_EXPR.
* g++.dg/ubsan/pr64717-1.C: New test.
* g++.dg/ubsan/pr64717-2.C: New test.
From-SVN: r220262
Tobias Burnus [Thu, 29 Jan 2015 20:24:46 +0000 (21:24 +0100)]
intrinsic.texi (CO_BROADCAST): Correct argument description.
2015-01-29 Tobias Burnus <burnus@net-b.de>
* intrinsic.texi (CO_BROADCAST): Correct argument description.
From-SVN: r220261
Uros Bizjak [Thu, 29 Jan 2015 19:55:57 +0000 (20:55 +0100)]
pr64801.c: Fix scan-tree-dump-not directive.
* gcc.dg/tree-ssa/pr64801.c: Fix scan-tree-dump-not directive.
From-SVN: r220260
Jakub Jelinek [Thu, 29 Jan 2015 18:36:03 +0000 (19:36 +0100)]
acinclude.m4 (VTV_CYGMIN): Use x$vtv_cygmin = xyes instead of $vtv_cygmin = yes.
* acinclude.m4 (VTV_CYGMIN): Use x$vtv_cygmin = xyes instead of
$vtv_cygmin = yes. Initialize vtv_cygmin=no unconditionally first.
* configure: Regenerated.
From-SVN: r220259
H.J. Lu [Thu, 29 Jan 2015 18:21:33 +0000 (18:21 +0000)]
Define VTV_CYGMIN after vtv_cygmin is set
* acinclude.m4 (GLIBCXX_ENABLE_VTABLE_VERIFY): Define VTV_CYGMIN
after vtv_cygmin is set.
* configure: Regenerated.
From-SVN: r220258
Matthias Klose [Thu, 29 Jan 2015 18:12:29 +0000 (18:12 +0000)]
acinclude.m4 (GLIBCXX_ENABLE_VTABLE_VERIFY): Define VTV_CYGMIN unconditionally.
2015-01-29 Matthias Klose <doko@ubuntu.com>
* acinclude.m4 (GLIBCXX_ENABLE_VTABLE_VERIFY): Define VTV_CYGMIN
unconditionally.
* configure: Regenerate.
From-SVN: r220257
Caroline Tice [Thu, 29 Jan 2015 16:47:25 +0000 (08:47 -0800)]
Committing generated configure & Makefile.in pieces of VTV Cygwin patch (from Patrick Wollgast).
Committing generated configure & Makefile.in pieces of
VTV Cygwin patch (from Patrick Wollgast). Forgot to
commit these with the rest of the patch.
From-SVN: r220254
David Malcolm [Thu, 29 Jan 2015 16:25:14 +0000 (16:25 +0000)]
PR jit/64780: configure: --enable-host-shared and the jit
ChangeLog:
PR jit/64780
* configure.ac: Require the user to explicitly specify
--enable-host-shared if the jit is enabled.
* configure: Regenerate.
From-SVN: r220253
Jason Merrill [Thu, 29 Jan 2015 16:10:08 +0000 (11:10 -0500)]
re PR c++/49508 (Bogus "control reaches end of non-void function" warning)
PR c++/49508
* semantics.c (finish_return_stmt): Suppress -Wreturn-type on
erroneous return statement.
From-SVN: r220252
Jason Merrill [Thu, 29 Jan 2015 16:09:56 +0000 (11:09 -0500)]
re PR c++/64521 (ICE with -frepo)
PR c++/64521
* repo.c (repo_emit_p): It's OK for a clone to be extern at this
point.
From-SVN: r220251
Jeff Law [Thu, 29 Jan 2015 14:30:45 +0000 (07:30 -0700)]
re PR target/15184 (Direct access to byte inside word not working with -march=pentiumpro)
PR target/15184
* combine.c (try_combine): If I0 is a memory load and I3 a store
to a related address, increase the "goodness" of doing a 4-insn
combination with I0-I3.
(make_field_assignment): Handle SUBREGs in the ior+and case.
PR target/15184
* gcc.target/i386/pr15184-1.c: New test.
* gcc.target/i386/pr15184-2.c: New test.
From-SVN: r220249
Yuri Rumyantsev [Thu, 29 Jan 2015 13:52:28 +0000 (13:52 +0000)]
re PR tree-optimization/64746 (Loop with nested load/stores is not vectorized using aggressive if-conversion.)
gcc/
PR tree-optimization/64746
* tree-if-conv.c (mask_exists): New function.
(predicate_mem_writes): Save created mask with given size for further
use.
(stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
(ifcvt_repair_bool_pattern): Collect all statements that are root
of bool pattern and use iterative algorithm to remove multiple uses
of predicates, display number of required iterations.
gcc/testsuite/
PR tree-optimization/64746
* gcc.target/i386/avx2-vect-aggressive-1.c: New test.
From-SVN: r220248
Richard Biener [Thu, 29 Jan 2015 13:50:37 +0000 (13:50 +0000)]
re PR tree-optimization/64853 (wrong code at -Os and above on x86_64-linux-gnu)
2015-01-29 Richard Biener <rguenther@suse.de>
PR tree-optimization/64853
* tree-vrp.c (vrp_valueize_1): Do not return anything if the
stmt will get simulated again.
* tree-ssa-ccp.c (valueize_op_1): Likewise.
* gcc.dg/torture/pr64853.c: New testcase.
From-SVN: r220247
Kyrylo Tkachov [Thu, 29 Jan 2015 13:36:22 +0000 (13:36 +0000)]
[ARM][cleanup] Simplify some expressions in some epilogue-related functions
* config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
return_in_pc. Remove redundant assignments.
(thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
(arm_expand_epilogue): Don't compare boolean with true in if condition.
From-SVN: r220246
Uros Bizjak [Thu, 29 Jan 2015 13:16:35 +0000 (14:16 +0100)]
i386.c (ix86_mode_after): Make static.
* config/i386/i386.c (ix86_mode_after): Make static.
From-SVN: r220245
Richard Biener [Thu, 29 Jan 2015 12:53:39 +0000 (12:53 +0000)]
re PR target/64844 (Vectorization inhibited in gcc5 when loop starts with elem[1], aarch64 perf regression from 4.9.1)
2015-01-29 Richard Biener <rguenther@suse.de>
PR tree-optimization/64844
* tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
dump cost model analysis.
* tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
Do not register adjusted load/store costs here.
* gcc.dg/vect/pr64844.c: New testcase.
From-SVN: r220244
Jonathan Wakely [Thu, 29 Jan 2015 12:47:20 +0000 (12:47 +0000)]
atomic_base.h: Use __always_inline__ instead of always_inline.
* include/bits/atomic_base.h: Use __always_inline__ instead of
always_inline.
* include/bits/atomic_futex.h: Likewise.
* include/bits/c++config: Use __abi_tag__ instead of abi_tag.
* include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp: Use
__packed__ instead of packed.
* include/std/shared_mutex: Use __unused__ instead of unused.
* testsuite/17_intro/headers/c++1998/all_attributes.cc: New.
* testsuite/17_intro/headers/c++200x/all_attributes.cc: New.
* testsuite/17_intro/headers/c++2014/all_attributes.cc: New.
From-SVN: r220243
Ilya Enkovich [Thu, 29 Jan 2015 12:24:06 +0000 (12:24 +0000)]
i386-protos.h (ix86_use_pseudo_pic_reg): New.
* config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
* config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
using x86_use_pseudo_pic_reg.
* config/i386/i386.c (ix86_conditional_register_usage): Remove
support for fixed PIC register.
(ix86_use_pseudo_pic_reg): Not static any more.
Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>
From-SVN: r220242
Yuri Rumyantsev [Thu, 29 Jan 2015 12:20:55 +0000 (12:20 +0000)]
re PR middle-end/64809 (ICE at -O3 with -g enabled on x86_64-linux-gnu (in 32-bit mode))
gcc/testsuite/
PR middle-end/64809
* gcc.dg/pr64809.c: Delete.
From-SVN: r220241
Ilya Enkovich [Thu, 29 Jan 2015 11:03:02 +0000 (11:03 +0000)]
re PR middle-end/64805 (Specific use of __attribute ((always_inline)) breaks MPX functionality with -fcheck-pointer-bounds -mmpx)
gcc/
PR middle-end/64805
* ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
to avoid error in cgraph node verification.
gcc/testsuite/
PR middle-end/64805
* gcc.target/i386/pr64805.c: New.
From-SVN: r220240
Rainer Orth [Thu, 29 Jan 2015 10:12:14 +0000 (10:12 +0000)]
Run guality tests on Solaris
* gcc.dg/guality/guality.h (main): Add argv[0] to
guality_gdb_command.
From-SVN: r220237
Marek Polacek [Thu, 29 Jan 2015 10:01:38 +0000 (10:01 +0000)]
* doc/standards.texi: Reflect that the default for C is gnu11.
From-SVN: r220236
Kaz Kojima [Thu, 29 Jan 2015 08:36:38 +0000 (08:36 +0000)]
reorg.c (relax_delay_slots): Take account of NOTE_INSN_SWITCH_TEXT_SECTIONS and targetm.can_follow_jump.
* reorg.c (relax_delay_slots): Take account of NOTE_INSN_SWITCH_TEXT_SECTIONS
and targetm.can_follow_jump.
From-SVN: r220235
Caroline Tice [Thu, 29 Jan 2015 08:03:56 +0000 (00:03 -0800)]
Committing VTV Cygwin patch for Patrick Wollgast
* gcc/config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
if -fvtable-verify=preinit/std is used.
* gcc/config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
* gcc/config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
* gcc/config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
if -fvtable-verify=preinit/std is used.
* gcc/config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
* gcc/config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
if -fvtable-verify=preinit/std is used.
* gcc/config/i386/mingw-w64.h (LIB_SPEC): Likewise.
* gcc/config/i386/mingw32.h (LIB_SPEC): Likewise.
* gcc/cp/vtable-class-hierarchy.c (vtv_generate_init_routine): Add
check for not TARGET_PECOFF at the VTV_PREINIT_PRIORITY checks.
* gcc/varasm.c (assemble_variable): Add code to properly set the comdat
section and name for the .vtable_map_vars section in case the
target is PE or COFF.
* libgcc/Makefile.in: Move rules to build vtv_*.o out of the check
for CUSTOM_CRTSTUFF.
* libgcc/config.host (i[34567]86-*-cygwin*, x86_64-*-cygwin*, i[34567]86-*-mingw*)
(x86_64-*-mingw*): Only add vtv_*.o to extra_parts if enable_vtable_verify.
* libstdc++-v3/acinclude.m4: Define VTV_CYGMIN.
* libstdc++-v3/configure: Regenerate.
* libstdc++-v3/libsupc++/Makefile.am: Add vtv_sources only to
libsupc___la_SOURCES and libsupc__convenience_la_SOURCES if VTV_CYGMIN is
not set.
* libstdc++-v3/libsupc++/Makefile.in: Regenerated.
* libstdc++-v3/libsupc++/vtv_stubs.cc: Add none weak declaration of every
function for Cygwin and MinGW.
* libstdc++-v3/src/Makefile.am: Add libvtv.la to toolexeclib_LTLIBRARIES,
if VTV_CYGMIN is set. Define libvtv_la_SOURCES, libvtv_la_LDFLAGS,
libvtv_la_AM_CXXFLAGS and libvtv_la_LINK if VTV_CYGMIN is set.
* libstdc++-v3/src/Makefile.in: Regenerate.
* libvtv/Makefile.am : Add libvtv.la to toolexeclib_LTLIBRARIES, if VTV_CYGMIN
is set. Define libvtv_la_LIBADD, libvtv_la_LDFLAGS, libvtv_stubs_la_LDFLAGS
and libvtv_stubs_la_SOURCES if VTV_CYGMIN is set. Add obstac.c to
libvtv_la_SOURCES if VTV_CYGMIN is set.
* libvtv/Makefile.in : Regenerate.
* libvtv/aclocal.m4 : Regenerate.
* libvtv/configure : Regenerate.
* libvtv/configure.ac : Add ACX_LT_HOST_FLAGS. Define VTV_CYGMIN.
* libvtv/configure.tgt : (x86_64-*-cygwin*, i?86-*-cygwin*, x86_64-*-mingw*)
(i?86-*-mingw*): Add to supported targets.
* libvtv/vtv_fail.cc : Skip inclusion of execinfo.h on Cygwin and MinGW.
(log_error_message): Skip calls to backtrace and backtrace_symbols_fd on Cygwin
and MinGW.
* libvtv/vtv_malloc.cc : Include windows.h and skip sys/mman.h inclusion on
Cygwin and MinGW. Add sysconf port on Cygwin and MinGW.
(obstack_chunk_alloc): Exchange call to mmap with call to VirtualAlloc on Cygwin
and MinGW.
(__vtv_malloc_init): Exchange call to sysconf with call to port of sysconf on
Cygwin and MinGW.
* libvtv/vtv_malloc.h : Declare mprotect and define PROT_READ and PROT_WRITE on
Cygwin and MinGW.
* libvtv/map.h : Include stdint.h on MinGW.
* libvtv/rts.cc : Include windows.h, winternl.h and psapi.h, skip include of
execinfo.h, sys/mman.h and link.h on Cygwin and MinGW.
Add port of __fortify_fail on Cygwin and MinGW.
Change ElfW (Addr) to uintptr_t on Cygwin and MinGW.
(read_section_offset_and_length): Add port for Cygwin and MinGW
(iterate_modules): New function.
(vtv_unprotect_vtable_vars): Use iterate_modules instead of dl_iterate_phdr on
Cygwin and MinGW.
(vtv_protect_vtable_vars): Likewise.
(count_all_pages): Likewise.
(dl_iterate_phdr_count_pages): Don't build on Cygwin and MinGW.
* libvtv/utils.cc : Include windows.h and skip execinfo.h inclusion on
Cygwin and MinGW.
(__vtv_open_log): Exchange call to getuid and getpid with GetCurrentProcessId and
adjust call to snprintf accordingly on Cygwin and MinGW.
Adjust calls to mkdir on MinGW.
Adjust call to open on Cygwin and MinGW.
(__vtv_add_to_log): Adjust call to snprintf on Cygwin and MinGW.
(__vtv_log_verification_failure): Don't generate a backtrace on Cygwin and MinGW.
From-SVN: r220232