Jakub Jelinek [Mon, 8 Aug 2016 19:50:29 +0000 (21:50 +0200)]
re PR c++/58706 (ICE with lambda in OpenMP for-loop)
PR c++/58706
* parser.c: Include tree-iterator.h.
(cp_parser_omp_for_loop_init): Move lambda DECL_EXPRs from init
to FOR_BLOCK.
(cp_parser_omp_for_loop): Handle non-STATEMENT_LIST FOR_BLOCK
entries.
* testsuite/libgomp.c++/pr58706.C: New test.
From-SVN: r239251
Jakub Jelinek [Mon, 8 Aug 2016 19:48:48 +0000 (21:48 +0200)]
re PR fortran/72716 (ICE in gfc_resolve_omp_declare_simd, at fortran/openmp.c:5156)
PR fortran/72716
* openmp.c (gfc_match_omp_declare_simd): Don't stick anything into
BLOCK DATA ns, it will be rejected later.
* gfortran.dg/gomp/pr72716.f90: New test.
From-SVN: r239250
Jakub Jelinek [Mon, 8 Aug 2016 19:46:36 +0000 (21:46 +0200)]
re PR middle-end/72781 (-Wuninitialized false positives in OpenMP code)
PR middle-end/72781
* omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the
private vars for lastprivate and for linear iterator.
* gcc.dg/gomp/pr72781.c: New test.
From-SVN: r239249
Jakub Jelinek [Mon, 8 Aug 2016 19:45:53 +0000 (21:45 +0200)]
re PR middle-end/68762 (link error for inline function decorated with OpenMP declare simd)
PR middle-end/68762
* omp-simd-clone.c: Include varasm.h.
(simd_clone_create): Copy over DECL_COMDAT, DECL_WEAK, DECL_EXTERNAL,
DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_DLLIMPORT_P and for
DECL_ONE_ONLY call make_decl_one_only. Fix up spelling in comment and
update function name.
* g++.dg/vect/pr68762-1.cc: New test.
* g++.dg/vect/pr68762-2.cc: New test.
* g++.dg/vect/pr68762.h: New file.
From-SVN: r239248
David Malcolm [Mon, 8 Aug 2016 18:10:54 +0000 (18:10 +0000)]
c-format.c: cleanup of check_format_info_main
gcc/c-family/ChangeLog:
* c-format.c (class flag_chars_t): New class.
(struct length_modifier): New struct.
(class argument_parser): New class.
(flag_chars_t::flag_chars_t): New ctor.
(flag_chars_t::has_char_p): New method.
(flag_chars_t::add_char): New method.
(flag_chars_t::validate): New method.
(flag_chars_t::get_alloc_flag): New method.
(flag_chars_t::assignment_suppression_p): New method.
(argument_parser::argument_parser): New ctor.
(argument_parser::read_any_dollar): New method.
(argument_parser::read_format_flags): New method.
(argument_parser::read_any_format_width): New method.
(argument_parser::read_any_format_left_precision): New method.
(argument_parser::read_any_format_precision): New method.
(argument_parser::handle_alloc_chars): New method.
(argument_parser::read_any_length_modifier): New method.
(argument_parser::read_any_other_modifier): New method.
(argument_parser::find_format_char_info): New method.
(argument_parser::validate_flag_pairs): New method.
(argument_parser::give_y2k_warnings): New method.
(argument_parser::parse_any_scan_set): New method.
(argument_parser::handle_conversions): New method.
(argument_parser::check_argument_type): New method.
(check_format_info_main): Introduce classes argument_parser
and flag_chars_t, moving the code within the loop into methods
of these classes. Make various locals "const".
From-SVN: r239247
Pitchumani Sivanupandi [Mon, 8 Aug 2016 17:37:57 +0000 (17:37 +0000)]
driver-avr.c (specfiles_doc_url): Remove.
* config/avr/driver-avr.c (specfiles_doc_url): Remove.
(avr_diagnose_devicespecs_error): Remove.
(avr_devicespecs_file): Remove composing absolute path for specfile
and its verbose info. Remove conditions to check specs-file,
From-SVN: r239246
Martin Sebor [Mon, 8 Aug 2016 15:32:16 +0000 (15:32 +0000)]
PR testsuite/72838 - FAIL: g++.dg/cpp0x/constexpr-cast.C
gcc/testsuite/ChangeLog:
* gcc/testsuite/g++.dg/cpp0x/constexpr-cast.C: Correct target selector.
* gcc/testsuite/g++.dg/warn/overflow-warn-3.C: Same.
* gcc/testsuite/g++.dg/warn/overflow-warn-4.C: Same.
From-SVN: r239242
Jakub Jelinek [Mon, 8 Aug 2016 13:58:46 +0000 (15:58 +0200)]
re PR rtl-optimization/72821 (RTL check: expected elt 2 type 'B', have '0' (rtx barrier) in BLOCK_FOR_INSN, at rtl.h:1424)
PR rtl-optimization/72821
* lra-spills.c (regno_in_use_p): Don't use BLOCK_FOR_INSN on barriers,
just return false for them.
From-SVN: r239241
Alan Modra [Mon, 8 Aug 2016 12:05:11 +0000 (21:35 +0930)]
[RS6000] TOC refs generated during reload
The generic reload fix for pr72771 exposed a problem with recognizing
-mcmodel=medium/large TOC references generated during reload.
PR target/72771
* config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high))
toc refs created during reload. Update function comment.
From-SVN: r239240
Andre Vehreschild [Mon, 8 Aug 2016 09:58:21 +0000 (11:58 +0200)]
re PR fortran/71936 (ICE in wide_int_to_tree, at tree.c:1487)
gcc/fortran/ChangeLog:
2016-08-08 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/71936
* trans-array.c (gfc_array_allocate): When SOURCE= is a function
stick with the ref of the object to allocate.
gcc/testsuite/ChangeLog:
2016-08-08 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/71936
* gfortran.dg/allocate_with_source_21.f03: New test.
From-SVN: r239237
Andre Vehreschild [Mon, 8 Aug 2016 09:49:37 +0000 (11:49 +0200)]
re PR fortran/72698 (ICE in lhd_incomplete_type_error, at langhooks.c:205)
gcc/testsuite/ChangeLog:
2016-08-08 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/72698
* gfortran.dg/allocate_with_source_20.f03: New test.
gcc/fortran/ChangeLog:
2016-08-08 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/72698
* trans-stmt.c (gfc_trans_allocate): Prevent generating code for
copy of zero sized string and with it an ICE.
From-SVN: r239236
Alan Modra [Mon, 8 Aug 2016 09:06:49 +0000 (18:36 +0930)]
[RS6000] PR72802 part 2, reload ICE
After fixing the constraint problem, we hit an "insn does not satisfy
its constraints" with -mno-lra on the following insn, a vector load
from mem which has an invalid offset:
(insn 631 630 1122 12 (set (reg:SF 108 31 [orig:260 pretmp_44 ] [260])
(mem:SF (plus:DI (reg:DI 30 30 [orig:338 ivtmp.141 ] [338])
(const_int 2 [0x2])) [5 MEM[base: _1, offset: 2B]+0 S4 A32])) 470 {movsf_hardfloat}
(nil))
Here are the reload costs for the various alternatives of
movsf_hardfloat:
"=!r, !r, m, f, ww, ww, !r, f, wb, m, wY, wu, Z,?wn, ?r,*c*l, !r, *h"
"r, m, r, f, ww, j, j, m, wY, f, wb, Z, wu, r, wn, r, *h, 0"
617 609 17 17 8 8 617 9 8 17 17 8 17 23 23 17 617 17
Notice that the cost for a vector<-vector move (ww,ww) is the same as
the cost for a vector<-mem move (wb,wY or wu,Z). Since the
vector<-vector move comes first, it is chosen and the mem part of the
insn reloaded. That just gives another copy of insn 631.
PR target/72802
* config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
alternatives. Put loads first, then stores, and reg/reg moves
within same class later. Delete attr length.
testsuite/
* gcc.c-torture/compile/pr72802.c: New.
From-SVN: r239234
Alan Modra [Mon, 8 Aug 2016 09:05:16 +0000 (18:35 +0930)]
[RS6000] PR72802 part 1, fix constraints for lxssp/stxssp
We can't use "o" constraint for lsxxp/stxssp since those insns have a
DS-form offset field, ie. the bottom two bits of the offset must be 0.
So use "wY" instead, but that leads to finding another problem.
mem_operand_gpr is only suitable for gpr loads/stores since it does
not enforce multiple-of-4 offsets when -m32. So "wY" can't use
mem_operand_gpr, and the vsx tests in mem_operand_gpr are bogus.
I've deleted offsettable_mem_14bit_operand because it wasn't used
anywhere but in the wY constraint. Note also that the new wY
constraint doesn't use memory_operand because that is redundant in a
constraint, having already been tested in the predicate.
PR target/72802
* config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
(mem_operand_ds_form): New predicate.
* config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
* config/rs6000/constraints.md (wY): Use mem_operand_df_form.
* config/rs6000/predicates.md (offsettable_mem_14bit_operand): Delete.
* config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
(extendsfdf2_fpr): Replace o constraint with wY.
From-SVN: r239233
Andre Vehreschild [Mon, 8 Aug 2016 08:11:29 +0000 (10:11 +0200)]
re PR fortran/70524 (ICE when using -frepack-arrays -Warray-temporaries)
gcc/testsuite/ChangeLog:
2016-08-08 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/70524
* gfortran.dg/dependency_48.f90: New test.
gcc/fortran/ChangeLog:
2016-08-08 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/70524
* trans-array.c (gfc_trans_dummy_array_bias): Ensure that the
location information is correctly set.
* trans-decl.c (gfc_trans_deferred_vars): Set the locus of the
current construct early.
From-SVN: r239230
GCC Administrator [Mon, 8 Aug 2016 00:16:16 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r239228
Ian Lance Taylor [Sun, 7 Aug 2016 22:32:46 +0000 (22:32 +0000)]
internal/syscall/unix: fix syscalls for alpha, ia64, s390
Also change the configure script to set GOARCH correctly for ia64, and
add ia64 as a processor to match.sh and gotest.
Reviewed-on: https://go-review.googlesource.com/25549
From-SVN: r239225
Thomas Koenig [Sun, 7 Aug 2016 15:40:34 +0000 (15:40 +0000)]
re PR fortran/70040 (ICE in gimplify.c with deferred-length strings)
2016-08-07 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/70040
Corrected last ChangeLog entry.
From-SVN: r239222
Thomas Koenig [Sun, 7 Aug 2016 15:25:56 +0000 (15:25 +0000)]
re PR fortran/71961 (178.galgel in SPEC CPU 2000 is miscompiled)
2016-08-07 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/71961
* gfortran.dg/pr70040.f90: New testcase.
From-SVN: r239221
Thomas Koenig [Sun, 7 Aug 2016 13:24:32 +0000 (13:24 +0000)]
re PR fortran/71961 (178.galgel in SPEC CPU 2000 is miscompiled)
2016-08-07 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/71961
* gfortran.dg/matmul_10.f90: New testcase.
From-SVN: r239220
Jan Hubicka [Sun, 7 Aug 2016 10:50:16 +0000 (12:50 +0200)]
tree-ssa-threadbackward.c: Include tree-inline.h
* tree-ssa-threadbackward.c: Include tree-inline.h
(profitable_jump_thread_path): Use estimate_num_insns to estimate
size of copied block; for cold paths reduce duplication.
(find_jump_threads_backwards): Remove redundant tests.
(pass_thread_jumps::gate): Enable for -Os.
* gcc.dg/tree-ssa/ssa-dom-thread-7.c: Update testcase.
From-SVN: r239219
Jakub Jelinek [Sun, 7 Aug 2016 09:49:14 +0000 (11:49 +0200)]
re PR c/72816 (ICE on x86_64-linux-gnu (tree check: expected tree that contains ‘decl with RTL’ structure, have ‘field_decl’ in set_decl_rtl, at emit-rtl.c:1282))
PR c/72816
* stor-layout.c (layout_decl): Fix up formatting.
(relayout_decl): Allow DECL to be FIELD_DECL.
* gcc.dg/pr72816.c: New test.
From-SVN: r239218
Alan Modra [Sun, 7 Aug 2016 03:22:12 +0000 (12:52 +0930)]
[RS6000] Fix wrong mode reg
Fix thinko in rev 239011 (git
d1d05ab7).
* config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg.
From-SVN: r239217
GCC Administrator [Sun, 7 Aug 2016 00:16:12 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r239216
Kugan Vivekanandarajah [Sat, 6 Aug 2016 21:11:26 +0000 (21:11 +0000)]
data-streamer-in.c (streamer_read_wide_int): New.
gcc/ChangeLog:
2016-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
* data-streamer-in.c (streamer_read_wide_int): New.
(streamer_read_widest_int): Renamed function.
* data-streamer-out.c (streamer_write_wide_int): New
(streamer_write_widest_int): Renamed function.
* lto-streamer-in.c (streamer_read_wi): Renamed and moved to
data-stream-in.c.
(input_cfg): Call renamed function.
* lto-streamer-out.c (streamer_write_wi): Renamed and moved to
data-stream-out.c.
(output_cfg): Call renamed function.
* data-streamer.h: Add declarations.
From-SVN: r239213
Prathamesh Kulkarni [Sat, 6 Aug 2016 18:11:24 +0000 (18:11 +0000)]
tree-ssa-ccp.c (extend_mask): New param sgn.
2016-08-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
* tree-ssa-ccp.c (extend_mask): New param sgn.
Remove ORing with wi::mask.
(get_default_value): Adjust call to extend_mask to pass sign.
(evaluate_stmt): Likewise.
From-SVN: r239212
David Malcolm [Sat, 6 Aug 2016 18:06:30 +0000 (18:06 +0000)]
Fix crash in selftest::test_lexer_string_locations_ucn4 (PR bootstrap/72823)
libcpp/ChangeLog:
PR bootstrap/72823
* charset.c (_cpp_valid_ucn): Replace overzealous assert with one
that allows for char_range to be non-NULL when loc_reader is NULL.
From-SVN: r239211
Ian Lance Taylor [Sat, 6 Aug 2016 15:58:22 +0000 (15:58 +0000)]
libgo: fix getrandom build for 32-bit ppc
Add a ppc build constraint for internal/syscall/unix.
Reviewed-on: https://go-review.googlesource.com/25547
From-SVN: r239210
Jonathan Wakely [Sat, 6 Aug 2016 12:45:58 +0000 (13:45 +0100)]
Update C++17 library status table
* doc/xml/manual/status_cxx2017.xml: Update status table.
* doc/html/manual/status.html: Regenerate.
From-SVN: r239209
Jonathan Wakely [Sat, 6 Aug 2016 10:44:17 +0000 (11:44 +0100)]
* testsuite/lib/libstdc++.exp: Fix typo in comment.
From-SVN: r239193
Jakub Jelinek [Sat, 6 Aug 2016 10:30:49 +0000 (12:30 +0200)]
gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of INT64_MAX.
* gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of
INT64_MAX.
From-SVN: r239192
Jonathan Wakely [Sat, 6 Aug 2016 10:21:07 +0000 (11:21 +0100)]
Use ::new to avoid finding overloaded operator new
PR libstdc++/72820
* include/std/functional (_Function_base::_Base_manager::_M_clone):
Qualify new operator.
* testsuite/20_util/function/cons/72820.cc: New test.
From-SVN: r239191
Prathamesh Kulkarni [Sat, 6 Aug 2016 05:04:07 +0000 (05:04 +0000)]
match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable transform if operand's type is pointer to function or method.
2016-08-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
* match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable
transform if operand's type is pointer to function or method.
From-SVN: r239190
Ian Lance Taylor [Sat, 6 Aug 2016 00:36:33 +0000 (00:36 +0000)]
libgo: change build procedure to use build tags
Previously the libgo Makefile explicitly listed the set of files to
compile for each package. For packages that use build tags, this
required a lot of awkward automake conditionals in the Makefile.
This CL changes the build to look at the build tags in the files.
The new shell script libgo/match.sh does the matching. This required
adjusting a lot of build tags, and removing some files that are never
used. I verified that the exact same sets of files are compiled on
amd64 GNU/Linux. I also tested the build on i386 Solaris.
Writing match.sh revealed some bugs in the build tag handling that
already exists, in a slightly different form, in the gotest shell
script. This CL fixes those problems as well.
The old code used automake conditionals to handle systems that were
missing strerror_r and wait4. Rather than deal with those in Go, those
functions are now implemented in runtime/go-nosys.c when necessary, so
the Go code can simply assume that they exist.
The os testsuite looked for dir_unix.go, which was never built for gccgo
and has now been removed. I changed the testsuite to look for dir.go
instead.
Reviewed-on: https://go-review.googlesource.com/25546
From-SVN: r239189
GCC Administrator [Sat, 6 Aug 2016 00:16:14 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r239188
Jonathan Wakely [Sat, 6 Aug 2016 00:07:05 +0000 (01:07 +0100)]
Harmonize diagnostics for invalid reference binding
gcc/cp:
* call.c (convert_like_real): Harmonize diagnostics for invalid
reference binding.
gcc/testsuite:
* call.c (convert_like_real): Harmonize diagnostics for invalid
reference binding.
* g++.dg/conversion/pr16333.C: Adjust dg-error regexp.
* g++.dg/conversion/pr41426.C: Likewise.
* g++.dg/conversion/pr66211.C: Likewise.
* g++.dg/cpp1y/lambda-init9.C: Likewise.
* g++.dg/init/ref8.C: Likewise.
* g++.old-deja/g++.law/cvt20.C: Likewise.
* g++.old-deja/g++.mike/p9732c.C: Likewise.
From-SVN: r239184
Jonathan Wakely [Sat, 6 Aug 2016 00:06:02 +0000 (01:06 +0100)]
Add std::apply for C++17
* doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
* doc/html/manual/status.html: Regenerate.
* include/Makefile.am: Add new header.
* include/Makefile.in: Regenerate.
* include/bits/invoke.h: New header.
(__invoke): Make constexpr. Add && to types in exception specification.
* include/experimental/tuple (apply, __apply_impl): Fix non-reserved
names. Include <bits/invoke.h> and use std::__invoke.
* include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
new header.
(invoke): Add && to types in exception specification.
* include/std/tuple (apply, __apply_impl): Define for C++17.
* testsuite/20_util/tuple/apply/1.cc: New test.
* testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
lineno.
From-SVN: r239183
Patrick Palka [Fri, 5 Aug 2016 23:29:53 +0000 (23:29 +0000)]
Improve forward jump threading of switch statements (PR18046)
gcc/ChangeLog:
PR tree-optimization/18046
* tree-ssa-threadedge.c: Include cfganal.h.
(simplify_control_statement_condition): If simplifying a
GIMPLE_SWITCH, replace the index operand of the GIMPLE_SWITCH
with the dominating ASSERT_EXPR before handing it off to VRP.
Mention that a CASE_LABEL_EXPR may be returned.
(thread_around_empty_blocks): Adjust to handle
simplify_control_statement_condition() returning a
CASE_LABEL_EXPR.
(thread_through_normal_block): Likewise.
* tree-vrp.c (simplify_stmt_for_jump_threading): Simplify
a switch statement by trying to determine which case label
will be taken.
gcc/testsuite/ChangeLog:
PR tree-optimization/18046
* gcc.dg/tree-ssa/vrp105.c: New test.
* gcc.dg/tree-ssa/vrp106.c: New test.
From-SVN: r239181
Vladimir Makarov [Fri, 5 Aug 2016 21:31:31 +0000 (21:31 +0000)]
re PR rtl-optimization/69847 (Spec 2006 403.gcc slows down with -mlra vs. reload on PowerPC)
2016-08-05 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/69847
* lra-constraints.c (process_invariant_for_inheritance): Save
pattern instead of src.
(remove_inheritance_pseudos): Use the pattern. Add assert.
From-SVN: r239180
Ian Lance Taylor [Fri, 5 Aug 2016 20:11:30 +0000 (20:11 +0000)]
re PR go/72812 (reflect FAILs with Solaris as)
PR go/72812
* go-gcc.cc (char_needs_encoding): New static function.
(needs_encoding, fetch_utf8_char): New static functions.
(encode_id): New static function.
(Gcc_backend::global_variable): Set asm name if the name is not
simple ASCII.
(Gcc_backend::implicit_variable): Likewise.
(Gcc_backend::implicit_variable_reference): Likewise.
(Gcc_backend::immutable_struct): Likewise.
(Gcc_backend::immutable_struct_reference): Likewise.
(Gcc_backend::function): Likewise.
From-SVN: r239179
Martin Sebor [Fri, 5 Aug 2016 18:27:46 +0000 (18:27 +0000)]
constexpr.c (cxx_eval_store_expression): Remove hyphen from the spelling of "constant-expression" in diagnostic messages...
gcc/cp/ChangeLog:
* constexpr.c (cxx_eval_store_expression): Remove hyphen from
the spelling of "constant-expression" in diagnostic messages
for consistency.
(cxx_eval_constant_expression): Same.
(cxx_eval_outermost_constant_expr): Same.
(potential_constant_expression_1): Same.
gcc/testsuite/ChangeLog:
* g++.dg/cpp0x/constexpr-cast.C: Avoid assuming (void*)1 is spelled
1ul in diagnostics. Remove hyphen from "constant-expression."
* g++.dg/cpp0x/constexpr-50060.C: Adjust.
* g++.dg/cpp0x/static_assert3.C: Same.
* g++.dg/cpp1y/constexpr-throw.C: Same.
* g++.dg/template/nontype3.C: Same.
* g++.dg/warn/overflow-warn-1.C: Same.
* g++.dg/warn/overflow-warn-3.C: Same.
* g++.dg/warn/overflow-warn-4.C: Same.
From-SVN: r239176
David Malcolm [Fri, 5 Aug 2016 18:08:33 +0000 (18:08 +0000)]
On-demand locations within string-literals
gcc/c-family/ChangeLog:
* c-common.c: Include "substring-locations.h".
(get_cpp_ttype_from_string_type): New function.
(g_string_concat_db): New global.
(substring_loc::get_range): New method.
* c-common.h (g_string_concat_db): New declaration.
(class substring_loc): New class.
* c-lex.c (lex_string): When concatenating strings, capture the
locations of all tokens using a new obstack, and record the
concatenation locations within g_string_concat_db.
* c-opts.c (c_common_init_options): Construct g_string_concat_db
on the ggc-heap.
gcc/ChangeLog:
* input.c (string_concat::string_concat): New constructor.
(string_concat_db::string_concat_db): New constructor.
(string_concat_db::record_string_concatenation): New method.
(string_concat_db::get_string_concatenation): New method.
(string_concat_db::get_key_loc): New method.
(class auto_cpp_string_vec): New class.
(get_substring_ranges_for_loc): New function.
(get_source_range_for_substring): New function.
(get_num_source_ranges_for_substring): New function.
(class selftest::lexer_test_options): New class.
(struct selftest::lexer_test): New struct.
(class selftest::ebcdic_execution_charset): New class.
(selftest::ebcdic_execution_charset::s_singleton): New variable.
(selftest::lexer_test::lexer_test): New constructor.
(selftest::lexer_test::~lexer_test): New destructor.
(selftest::lexer_test::get_token): New method.
(selftest::assert_char_at_range): New function.
(ASSERT_CHAR_AT_RANGE): New macro.
(selftest::assert_num_substring_ranges): New function.
(ASSERT_NUM_SUBSTRING_RANGES): New macro.
(selftest::assert_has_no_substring_ranges): New function.
(ASSERT_HAS_NO_SUBSTRING_RANGES): New macro.
(selftest::test_lexer_string_locations_simple): New function.
(selftest::test_lexer_string_locations_ebcdic): New function.
(selftest::test_lexer_string_locations_hex): New function.
(selftest::test_lexer_string_locations_oct): New function.
(selftest::test_lexer_string_locations_letter_escape_1): New function.
(selftest::test_lexer_string_locations_letter_escape_2): New function.
(selftest::test_lexer_string_locations_ucn4): New function.
(selftest::test_lexer_string_locations_ucn8): New function.
(selftest::uint32_from_big_endian): New function.
(selftest::test_lexer_string_locations_wide_string): New function.
(selftest::uint16_from_big_endian): New function.
(selftest::test_lexer_string_locations_string16): New function.
(selftest::test_lexer_string_locations_string32): New function.
(selftest::test_lexer_string_locations_u8): New function.
(selftest::test_lexer_string_locations_utf8_source): New function.
(selftest::test_lexer_string_locations_concatenation_1): New
function.
(selftest::test_lexer_string_locations_concatenation_2): New
function.
(selftest::test_lexer_string_locations_concatenation_3): New
function.
(selftest::test_lexer_string_locations_macro): New function.
(selftest::test_lexer_string_locations_stringified_macro_argument):
New function.
(selftest::test_lexer_string_locations_non_string): New function.
(selftest::test_lexer_string_locations_long_line): New function.
(selftest::test_lexer_char_constants): New function.
(selftest::input_c_tests): Call the new test functions once per
case within the line_table test matrix.
* input.h (struct string_concat): New struct.
(struct location_hash): New struct.
(class string_concat_db): New class.
* substring-locations.h: New header.
gcc/testsuite/ChangeLog:
* gcc.dg/plugin/diagnostic-test-string-literals-1.c: New file.
* gcc.dg/plugin/diagnostic-test-string-literals-2.c: New file.
* gcc.dg/plugin/diagnostic_plugin_test_string_literals.c: New file.
* gcc.dg/plugin/plugin.exp (plugin_test_list): Add the above new files.
libcpp/ChangeLog:
* charset.c (cpp_substring_ranges::cpp_substring_ranges): New
constructor.
(cpp_substring_ranges::~cpp_substring_ranges): New destructor.
(cpp_substring_ranges::add_range): New method.
(cpp_substring_ranges::add_n_ranges): New method.
(_cpp_valid_ucn): Add "char_range" and "loc_reader" params; if
they are non-NULL, read position information from *loc_reader
and update char_range->m_finish accordingly.
(convert_ucn): Add "char_range", "loc_reader", and "ranges"
params. If loc_reader is non-NULL, read location information from
it, and update *ranges accordingly, using char_range.
Conditionalize the conversion into tbuf on tbuf being non-NULL.
(convert_hex): Likewise, conditionalizing the call to
emit_numeric_escape on tbuf.
(convert_oct): Likewise.
(convert_escape): Add params "loc_reader" and "ranges". If
loc_reader is non-NULL, read location information from it, and
update *ranges accordingly. Conditionalize the conversion into
tbuf on tbuf being non-NULL.
(cpp_interpret_string): Rename to...
(cpp_interpret_string_1): ...this, adding params "loc_readers" and
"out". Use "to" to conditionalize the initialization and usage of
"tbuf", such as running the converter. If "loc_readers" is
non-NULL, use the instances within it, reading location
information from them, and passing them to convert_escape; likewise
write to "out" if loc_readers is non-NULL. Check for leading
quote and issue an error if it is not present. Update boundary
check from "== limit" to ">= limit" to protect against erroneous
location values to calls that are not parsing string literals.
(cpp_interpret_string): Reimplement in terms to
cpp_interpret_string_1.
(noop_error_cb): New function.
(cpp_interpret_string_ranges): New function.
(cpp_string_location_reader::cpp_string_location_reader): New
constructor.
(cpp_string_location_reader::get_next): New method.
* include/cpplib.h (class cpp_string_location_reader): New class.
(class cpp_substring_ranges): New class.
(cpp_interpret_string_ranges): New prototype.
* internal.h (_cpp_valid_ucn): Add params "char_range" and
"loc_reader".
* lex.c (forms_identifier_p): Pass NULL for new params to
_cpp_valid_ucn.
From-SVN: r239175
Patrick Palka [Fri, 5 Aug 2016 17:21:00 +0000 (17:21 +0000)]
re PR tree-optimization/72810 (error: type mismatch for case label in switch statement)
Fix PR tree-optimization/72810
gcc/ChangeLog:
PR tree-optimization/72810
* tree-vrp.c (simplify_switch_using_ranges): Avoid changing
the type of the case labels when truncating.
gcc/testsuite/ChangeLog:
PR tree-optimization/72810
* gcc.dg/tree-ssa/vrp110.c: New test.
From-SVN: r239174
James Greenhalgh [Fri, 5 Aug 2016 16:08:24 +0000 (16:08 +0000)]
[AArch64] Handle HFAs of float16 types properly
Fix PR Target/72819.
gcc/
PR Target/72819
* config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
(aarch64_fp16_ptr_type_node): Likewise.
* config/aarch64/aarch64-simd-builtins.c
(aarch64_fp16_ptr_type_node): Define.
(aarch64_init_fp16_types): New, refactored out of...
(aarch64_init_builtins): ...here, update to call
aarch64_init_fp16_types.
* config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
HFmode.
(aapcs_vfp_sub_candidate): Likewise.
gcc/testsuite/
PR Target/72819
* gcc.target/aarch64/aapcs64/abitest-common.h: Define half-precision
registers.
* gcc.target/aarch64/aapcs64/abitest.S (dumpregs): Add assembly for
saving the half-precision registers.
* gcc.target/aarch64/aapcs64/func-ret-1.c: Test that an __fp16
value is returned in h0.
* gcc.target/aarch64/aapcs64/test_2.c: Check that __FP16 arguments
are passed in FP/SIMD registers.
* gcc.target/aarch64/aapcs64/test_27.c: New, test that __fp16 HFA
passing works corrcetly.
* gcc.target/aarch64/aapcs64/type-def.h (hfa_f16x1_t): New.
(hfa_f16x2_t): Likewise.
(hfa_f16x3_t): Likewise.
* gcc.target/aarch64/aapcs64/va_arg-1.c: Check that __fp16 values
are promoted to double and passed in a double register.
* gcc.target/aarch64/aapcs64/va_arg-2.c: Check that __fp16 values
are promoted to double and stacked.
* gcc.target/aarch64/aapcs64/va_arg-4.c: Check stacking of HFA of
__fp16 data types.
* gcc.target/aarch64/aapcs64/va_arg-5.c: Likewise.
* gcc.target/aarch64/aapcs64/va_arg-16.c: New, check HFAs of
__fp16 first get passed in FP/SIMD registers, then stacked.
From-SVN: r239173
Jonathan Wakely [Fri, 5 Aug 2016 13:57:30 +0000 (14:57 +0100)]
Correct status of __cpp_lib_enable_shared_from_this
* doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
* doc/html/manual/status.html: Regenerate.
From-SVN: r239171
Jonathan Wakely [Fri, 5 Aug 2016 13:52:59 +0000 (14:52 +0100)]
Implement C++17 rounding functions for std::chrono (P0092R1)
* include/std/chrono (floor, ceil, round, abs): New for C++17.
* testsuite/20_util/duration_cast/rounding.cc: New test.
* testsuite/20_util/time_point_cast/rounding.cc: New test.
* doc/xml/manual/status_cxx2017.xml: Update status table.
* doc/html/manual/status.html: Regenerate.
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
dg-error lineno.
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
* testsuite/20_util/duration/literals/range.cc: Likewise.
From-SVN: r239170
Martin Liska [Fri, 5 Aug 2016 13:50:49 +0000 (15:50 +0200)]
gcov tool: Implement Hawick's algorithm for cycle detection,
Joshua Cranmer <Pidgeot18@gmail.com>
* gcov.c (line_t::has_block): New function.
(enum loop_type): New enum.
(handle_cycle): New function.
(unblock): Likewise.
(circuit): Likewise.
(get_cycles_count): Likewise.
(accumulate_line_counts): Use new loop detection algorithm.
From-SVN: r239169
Martin Liska [Fri, 5 Aug 2016 13:50:02 +0000 (15:50 +0200)]
gcov: rename line_next to next_file_fn in function_info
* gcov.c (output_intermediate_file): Rename
function_info::line_next to next_file_fn.
(process_file): Likewise.
(read_graph_file): Likewise.
(accumulate_line_counts): Likewise.
(output_lines): Likewise.
From-SVN: r239168
Nathan Sidwell [Fri, 5 Aug 2016 12:21:46 +0000 (12:21 +0000)]
re PR c++/68724 (ice in unify, at cp/pt.c:19902)
PR c++/68724
* pt.c (unify): TRAIT_EXPR is an expr.
PR c++/68724
* g++.dg/cpp0x/pr68724.C: New.
From-SVN: r239167
Jonathan Wakely [Fri, 5 Aug 2016 09:00:34 +0000 (10:00 +0100)]
Use __invoke in std::function internals
* include/std/functional (__callable_functor): Remove.
(_Function_handler::_M_invoke): Use __invoke instead of
__callable_functor or mem_fn.
(function::_Callable): Use lvalue in result_of expression.
(function): Remove TODO comments about allocators.
* testsuite/20_util/function/cons/refqual.cc: New test.
From-SVN: r239166
Richard Biener [Fri, 5 Aug 2016 08:52:22 +0000 (08:52 +0000)]
ivopt_5.c: Make robust against edge swapping.
2016-08-05 Richard Biener <rguenther@suse.de>
* gcc.dg/tree-ssa/ivopt_5.c: Make robust against edge swapping.
From-SVN: r239165
Richard Biener [Fri, 5 Aug 2016 08:00:00 +0000 (08:00 +0000)]
tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary restriction on threading to a loop header.
2016-08-05 Richard Biener <rguenther@suse.de>
* tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary
restriction on threading to a loop header.
From-SVN: r239164
Richard Biener [Fri, 5 Aug 2016 07:41:45 +0000 (07:41 +0000)]
tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
2016-08-05 Richard Biener <rguenther@suse.de>
* tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
* cfghooks.c (force_nonfallthru): If we ended up splitting a latch
adjust loop info accordingly.
From-SVN: r239163
Kugan Vivekanandarajah [Fri, 5 Aug 2016 02:47:27 +0000 (02:47 +0000)]
tree-vrp.c (extract_range_basic): Check cfun->after_inlining before folding call to __builtin_constant_p with...
gcc/ChangeLog:
2016-08-05 Kugan Vivekanandarajah <kuganv@linaro.org>
* tree-vrp.c (extract_range_basic): Check cfun->after_inlining
before folding call to __builtin_constant_p with parameters to false.
From-SVN: r239162
Alan Modra [Fri, 5 Aug 2016 01:29:05 +0000 (10:59 +0930)]
[RS6000] rs6000_preferred_reload_class
* config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
code accidentally committed 2016-05-02 providing class when given
NO_REGS.
From-SVN: r239161
GCC Administrator [Fri, 5 Aug 2016 00:16:15 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r239160
Patrick Palka [Fri, 5 Aug 2016 00:07:16 +0000 (00:07 +0000)]
Teach VRP to truncate the case ranges of a switch
gcc/ChangeLog:
* tree-vrp.c (simplify_switch_using_ranges): Try to truncate
the case label ranges that partially overlap with OP's value
range.
gcc/testsuite/ChangeLog:
* gcc.dg/tree-ssa/vrp107.c: New test.
* gcc.dg/tree-ssa/vrp108.c: New test.
* gcc.dg/tree-ssa/vrp109.c: New test.
From-SVN: r239157
Uros Bizjak [Thu, 4 Aug 2016 21:14:39 +0000 (23:14 +0200)]
re PR target/72805 (AVX512: invalid code generation involving masks)
PR target/72805
* config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
Cast builtin function result to __mmask16 instead of __mmask8.
(_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
(_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
(_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
From-SVN: r239152
David Malcolm [Thu, 4 Aug 2016 21:12:52 +0000 (21:12 +0000)]
selftest.h: Add ASSERT_TRUE_AT and ASSERT_FALSE_AT
gcc/ChangeLog:
* selftest.h (ASSERT_TRUE): Reimplement in terms of...
(ASSERT_TRUE_AT): New macro.
(ASSERT_FALSE): Reimplement in terms of...
(ASSERT_FALSE_AT): New macro.
(ASSERT_STREQ_AT): Fix typo in comment.
From-SVN: r239151
Prathamesh Kulkarni [Thu, 4 Aug 2016 20:51:32 +0000 (20:51 +0000)]
pr70920-4.c: Move dg-require-effective-target before dg-options.
2016-08-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
testsuite/
* gcc.dg/pr70920-4.c: Move dg-require-effective-target before
dg-options.
From-SVN: r239150
Prathamesh Kulkarni [Thu, 4 Aug 2016 20:37:51 +0000 (20:37 +0000)]
pr71078-1.c: Remove double and long double test-cases.
2016-08-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
testsuite/
* gcc.dg/tree-ssa/pr71078-1.c: Remove double and long double
test-cases.
* gcc.dg/tree-ssa/pr71078-1-double.c: New test-case.
* gcc.dg/tree-ssa/pr71078-1-long-double.c: Likewise.
* gcc.dg/tree-ssa/pr71078-2.c: Remove double and long double
test-cases.
* gcc.dg/tree-ssa/pr71078-2-double.c: New test-case.
* gcc.dg/tree-ssa/pr71078-2-long-double.c: Likewise.
* gcc.dg/tree-ssa/pr71078-3.c: Add require-effective-check for
large_double.
From-SVN: r239149
Paolo Carlini [Thu, 4 Aug 2016 19:22:58 +0000 (19:22 +0000)]
re PR c++/72800 (ICE on invalid C++14 code with initialized lambda capture: tree check: expected class ‘type’, have ‘exceptional’ (error_mark) in add_capture, at cp/lambda.c:505)
/cp
2016-08-04 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/72800
* lambda.c (add_capture): Check lambda_capture_field_type return
value for error_mark_node.
/testsuite
2016-08-04 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/72800
* g++.dg/cpp1y/lambda-ice1.C: New.
From-SVN: r239148
Patrick Palka [Thu, 4 Aug 2016 19:14:32 +0000 (19:14 +0000)]
Fix ICE on invalid variable template instantiation (PR c++/72759)
gcc/cp/ChangeLog:
PR c++/72759
* pt.c (tsubst_qualified_id): Return error_mark_node if
template_args is error_mark_node.
gcc/testsuite/ChangeLog:
PR c++/72759
* g++.dg/cpp1y/pr72759.C: New test.
From-SVN: r239147
Patrick Palka [Thu, 4 Aug 2016 18:11:08 +0000 (18:11 +0000)]
Designate the widest case label to be the default label
gcc/ChangeLog:
* gimple.c (preprocess_case_label_vec_for_gimple): When the case
labels are exhaustive, designate the label with the widest
range to be the default label.
gcc/testsuite/ChangeLog:
* gcc.dg/switch-10.c: New test.
From-SVN: r239146
Jonathan Wakely [Thu, 4 Aug 2016 18:02:56 +0000 (19:02 +0100)]
Define std::is_callable and std::is_nothrow_callable
* doc/xml/manual/status_cxx2017.xml: Update status table.
* include/std/functional (__inv_unwrap): Move to <type_traits>.
(__invoke_impl): Remove exception specifications.
(__invoke, invoke): Add exception specifications using
__is_nothrow_callable.
* include/std/type_traits (__inv_unwrap): Move from <functional>.
(__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
(__is_callable, __is_nothrow_callable): New traits.
(is_callable, is_callable_v): New C++17 traits.
(is_nothrow_callable, is_nothrow_callable_v): Likewise.
* testsuite/20_util/is_callable/requirements/
explicit_instantiation.cc: New test.
* testsuite/20_util/is_callable/requirements/
explicit_instantiation_ext.cc: New test.
* testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
* testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
test.
* testsuite/20_util/is_callable/value.cc: New test.
* testsuite/20_util/is_callable/value_ext.cc: New test.
* testsuite/20_util/is_nothrow_callable/requirements/
explicit_instantiation.cc: New test.
* testsuite/20_util/is_nothrow_callable/requirements/
explicit_instantiation_ext.cc: New test.
* testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
New test.
* testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
New test.
* testsuite/20_util/is_nothrow_callable/value.cc: New test.
* testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
From-SVN: r239145
Ian Lance Taylor [Thu, 4 Aug 2016 17:21:23 +0000 (17:21 +0000)]
runtime: fix incorrectly commented out code in heapdump.c
Reviewed-on: https://go-review.googlesource.com/25490
From-SVN: r239144
Marcel Böhme [Thu, 4 Aug 2016 16:53:18 +0000 (16:53 +0000)]
re PR c++/71696 (Libiberty Demangler segfaults (6))
2016-08-04 Marcel Böhme <boehme.marcel@gmail.com>
PR c++/71696
* cplus-dem.c: Prevent infinite recursion when there is a cycle
in the referencing of remembered mangled types.
(work_stuff): New stack to keep track of the remembered mangled
types that are currently being processed.
(push_processed_type): New method to push currently processed
remembered type onto the stack.
(pop_processed_type): New method to pop currently processed
remembered type from the stack.
(work_stuff_copy_to_from): Copy values of new variables.
(delete_non_B_K_work_stuff): Free stack memory.
(demangle_args): Push/Pop currently processed remembered type.
(do_type): Do not demangle a cyclic reference and push/pop
referenced remembered type.
From-SVN: r239143
James Greenhalgh [Thu, 4 Aug 2016 16:48:34 +0000 (16:48 +0000)]
[Patch obvious testsuite] Remove duplicate body from pr70903.c
* gcc.c-torture/execute/pr70903.c: Remove duplicate body.
From-SVN: r239142
Ian Lance Taylor [Thu, 4 Aug 2016 16:48:28 +0000 (16:48 +0000)]
text/template: reduce maxExecDepth for gccgo
When using gccgo on systems without full support for split stacks a
recursive template can overrun the available stack space. Reduce the
limit from 100000 to 10000 to make this less likely. It's still high
enough that real uses will work.
Reviewed-on: https://go-review.googlesource.com/25467
From-SVN: r239141
Ian Lance Taylor [Thu, 4 Aug 2016 16:23:09 +0000 (16:23 +0000)]
compiler: include "go-system.h" in escape.cc
Patch from Rainer Orth.
Reviewed-on: https://go-review.googlesource.com/25466
From-SVN: r239140
Jason Merrill [Thu, 4 Aug 2016 16:06:22 +0000 (12:06 -0400)]
PR c++/72415 - member template with fold-expression constraint
* pt.c (tsubst_pack_expansion): Pull a single pack expansion out
of the TREE_VEC.
From-SVN: r239138
Jason Merrill [Thu, 4 Aug 2016 16:06:17 +0000 (12:06 -0400)]
Rename TYPE_ANONYMOUS_P to TYPE_UNNAMED_P.
* cp-tree.h (TYPE_UNNAMED_P): Rename from TYPE_ANONYMOUS_P.
(TYPE_WAS_UNNAMED): Rename from TYPE_WAS_ANONYMOUS.
* class.c, decl.c, decl2.c, error.c, lambda.c, mangle.c,
name-lookup.c, parser.c, pt.c, semantics.c, tree.c: Adjust.
From-SVN: r239137
Jason Merrill [Thu, 4 Aug 2016 16:06:09 +0000 (12:06 -0400)]
PR c++/72796 - wrong resolution of scoped method call.
* typeck.c (finish_class_member_access_expr): Avoid stripping
SCOPE_REF to dependent base.
From-SVN: r239136
Andrew Pinski [Thu, 4 Aug 2016 16:00:24 +0000 (16:00 +0000)]
aarch64.c (thunderx_vector_cost): New variable.
2016-08-04 Andrew Pinski <apinski@cavium.com>
* config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
(thunderx_tunings): Use thunderx_vector_cost instead of
generic_vector_cost.
From-SVN: r239135
Martin Liska [Thu, 4 Aug 2016 15:05:35 +0000 (17:05 +0200)]
Fix GNU coding style in gcov.c
* gcov.c (main): Fix GNU coding style.
(output_intermediate_file): Likewise.
(process_file): Likewise.
(generate_results): Likewise.
(release_structures): Likewise.
(create_file_names): Likewise.
(find_source): Likewise.
(read_graph_file): Likewise.
(find_exception_blocks): Likewise.
(canonicalize_name): Likewise.
(make_gcov_file_name): Likewise.
(mangle_name): Likewise.
(accumulate_line_counts): Likewise.
(output_branch_count): Likewise.
(read_line): Likewise.
From-SVN: r239134
Thomas Schwinge [Thu, 4 Aug 2016 13:35:30 +0000 (15:35 +0200)]
Rework C/C++ OpenACC routine parsing
gcc/c/
* c-parser.c (struct oacc_routine_data): Add error_seen and
fndecl_seen members.
(c_finish_oacc_routine): Use these.
(c_parser_declaration_or_fndef): Adjust.
(c_parser_oacc_routine): Likewise. Support more C language
constructs, and improve diagnostics. Move pragma context
checking...
(c_parser_pragma): ... here.
gcc/cp/
* parser.c (cp_ensure_no_oacc_routine): Improve diagnostics.
(cp_parser_late_parsing_cilk_simd_fn_info): Fix diagnostics.
(cp_parser_late_parsing_oacc_routine, cp_finalize_oacc_routine):
Simplify code, and improve diagnostics.
(cp_parser_oacc_routine): Likewise. Move pragma context
checking...
(cp_parser_pragma): ... here.
gcc/testsuite/
* c-c++-common/goacc/routine-5.c: Update.
From-SVN: r239128
Thomas Schwinge [Thu, 4 Aug 2016 13:35:19 +0000 (15:35 +0200)]
C/C++: Simplify handling of location information for OpenACC routine directives
gcc/c/
* c-parser.c (struct oacc_routine_data): New.
(c_parser_declaration_or_fndef, c_parser_oacc_routine): Use it.
Simplify code.
(c_finish_oacc_routine): Likewise. Don't attach clauses to "omp
declare target" attribute.
gcc/cp/
* parser.h (struct cp_omp_declare_simd_data): New.
(struct cp_parser): Use it for oacc_routine member.
* parser.c (cp_ensure_no_oacc_routine, cp_parser_oacc_routine)
(cp_parser_late_parsing_oacc_routine, cp_finalize_oacc_routine):
Use it. Simplify code.
(cp_parser_new): Initialize all members pointing to special
parsing data structures.
(cp_parser_cilk_simd_fn_vector_attrs): Initialize
parser->cilk_simd_fn_info->clauses.
(cp_parser_omp_declare_simd): Initialize
parser->omp_declare_simd->clauses.
(cp_parser_late_parsing_omp_declare_simd): Simplify code.
From-SVN: r239127
Thomas Schwinge [Thu, 4 Aug 2016 13:35:10 +0000 (15:35 +0200)]
C++ OpenACC routine directive testing: templated, and "auto", trailing return type syntax
libgomp/
* testsuite/libgomp.oacc-c++/routine-1-auto.C: New file.
* testsuite/libgomp.oacc-c++/routine-1-template-auto.C: Likewise.
* testsuite/libgomp.oacc-c++/routine-1-template-trailing-return-type.C:
Likewise.
* testsuite/libgomp.oacc-c++/routine-1-template.C: Likewise.
* testsuite/libgomp.oacc-c++/routine-1-trailing-return-type.C:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/routine-1.c: Adjust.
From-SVN: r239126
Thomas Schwinge [Thu, 4 Aug 2016 13:34:57 +0000 (15:34 +0200)]
Make libgomp.oacc-c-c++-common/crash-1.c a "link" test, and don't hardcode -O0
libgomp/
* testsuite/libgomp.oacc-c-c++-common/crash-1.c: Make it a "link"
test, and don't hardcode -O0.
From-SVN: r239125
Jonathan Wakely [Thu, 4 Aug 2016 13:33:02 +0000 (14:33 +0100)]
Update C++17 library implementation status table
* doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
* doc/html/manual/status.html: Regenerate.
From-SVN: r239124
Bernd Edlinger [Thu, 4 Aug 2016 13:23:36 +0000 (13:23 +0000)]
016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR rtl-optimization/71779
* emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
or if it was truncated.
From-SVN: r239123
Bernd Edlinger [Thu, 4 Aug 2016 13:20:57 +0000 (13:20 +0000)]
re PR target/70903 (wrong code with bfi @ aarch64 with -Os)
2016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR rtl-optimization/70903
* cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.
testsuite:
2016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR rtl-optimization/70903
* gcc.c-torture/execute/pr70903.c: New test.
From-SVN: r239122
Jonathan Wakely [Thu, 4 Aug 2016 12:33:10 +0000 (13:33 +0100)]
Define std::enable_shared_from_this::weak_from_this
* testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
effective target not dg-options. Move check for feature-test macro to:
* testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
New test.
From-SVN: r239121
Jonathan Wakely [Thu, 4 Aug 2016 11:09:29 +0000 (12:09 +0100)]
Simplify std::__invoke_impl definitions
* include/std/functional (_Unwrap): Rename to __inv_unwrap.
(__invfwd): Adjust.
(__invoke_impl): Remove unused template parameters.
* testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
parameter.
* testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
and test __invoke extension for C++11.
From-SVN: r239120
Martin Liska [Thu, 4 Aug 2016 11:06:37 +0000 (13:06 +0200)]
Use TESTING_IN_BUILD_TREE in params.exp
* gcc.dg/params/params.exp: Replace file exists with
TESTING_IN_BUILD_TREE.
From-SVN: r239119
Kugan Vivekanandarajah [Thu, 4 Aug 2016 09:15:03 +0000 (09:15 +0000)]
tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before accessing SSA_NAME_PTR_INFO.
gcc/ChangeLog:
2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
* tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before
accessing SSA_NAME_PTR_INFO.
From-SVN: r239118
Georg-Johann Lay [Thu, 4 Aug 2016 07:52:38 +0000 (07:52 +0000)]
re PR target/70677 (Suboptimal cond on AVR: unneeded stack frame)
PR 70677
* common/config/avr/avr-common.c (avr_option_optimization_table)
[OPT_LEVELS_ALL]: Turn off -fcaller-saves.
From-SVN: r239117
Georg-Johann Lay [Thu, 4 Aug 2016 07:50:53 +0000 (07:50 +0000)]
re PR target/55181 (Expensive shift loop where a bit-testing instruction could be used)
PR 55181
* config/avr/avr.md: New pattern to work around do_store_flag
generating shift instructions for bit extractions.
From-SVN: r239116
Marek Polacek [Thu, 4 Aug 2016 07:47:50 +0000 (07:47 +0000)]
re PR c++/70229 (error: constexpr constructor does not have empty body)
PR c++/70229
* constexpr.c (check_constexpr_ctor_body_1): Allow typedef
declarations.
* g++.dg/cpp0x/constexpr-ctor19.C: New test.
From-SVN: r239115
Richard Biener [Thu, 4 Aug 2016 07:02:47 +0000 (07:02 +0000)]
re PR rtl-optimization/71984 (wrong code with -O -mavx512cd)
2016-08-04 Richard Biener <rguenther@suse.de>
PR middle-end/71984
* gcc.dg/torture/pr71984.c: Guard correctness check for
little-endian.
From-SVN: r239114
Kugan Vivekanandarajah [Thu, 4 Aug 2016 04:20:01 +0000 (04:20 +0000)]
tree-vrp.c (set_value_range): Use vrp_equiv_obstack with BITMAP_ALLOC.
gcc/ChangeLog:
2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
* tree-vrp.c (set_value_range): Use vrp_equiv_obstack with
BITMAP_ALLOC.
(add_equivalence): Likewise.
(get_value_range): Allocate value range with vrp_value_range_pool.
(vrp_initialize): Initialize vrp_equiv_obstack for equiv allocation.
(vrp_finalize): Relase vrp_equiv_obstack and vrp_value_range_pool.
From-SVN: r239113
GCC Administrator [Thu, 4 Aug 2016 00:16:13 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r239112
Ian Lance Taylor [Thu, 4 Aug 2016 00:10:35 +0000 (00:10 +0000)]
escape: Enable escape analysis in gccgo.
Off by default, enabled through -fgo-optimize-allocs.
Reviewed-on: https://go-review.googlesource.com/22378
From-SVN: r239109
Peter Bergner [Wed, 3 Aug 2016 23:13:20 +0000 (18:13 -0500)]
rs6000.c (rs6000_option_override_internal): Make LRA the default for the rs6000 port.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Make LRA
the default for the rs6000 port.
From-SVN: r239105
Ian Lance Taylor [Wed, 3 Aug 2016 22:46:06 +0000 (22:46 +0000)]
gotest: multiple +build lines must all be true
The code that handled +build lines did not correctly require them to all
be true. While looking into this I discovered that multiple +build
lines were mishandled in a different way, because the shell does not
preseve line breaks in backquoted data. Look for the +build token to
tell us when we are switching from one +build line to another.
Reviewed-on: https://go-review.googlesource.com/25460
From-SVN: r239100
Andrew Pinski [Wed, 3 Aug 2016 22:37:53 +0000 (22:37 +0000)]
20160802-1.c: New testcase.
2016-08-03 Andrew Pinski <apinski@cavium.com>
* gcc.c-torture/compile/
20160802-1.c: New testcase.
From-SVN: r239099
Ian Lance Taylor [Wed, 3 Aug 2016 20:01:09 +0000 (20:01 +0000)]
compiler: improve type caching for interface types
Add a cached to Interface_info_expression::do_type() so as to reuse
previously created interface types. This change reduces gccgo peak heap
usage when compiling the "fmt" package from around 16mb to around 10mb.
Fixes golang/go#16334
Reviewed-on: https://go-review.googlesource.com/24890
From-SVN: r239095
Jonathan Wakely [Wed, 3 Aug 2016 19:10:06 +0000 (20:10 +0100)]
Define feature-test macro for std::enable_shared_from_this
* include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
Define feature-test macro.
* testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
for the macro.
From-SVN: r239094
Jonathan Wakely [Wed, 3 Aug 2016 19:09:57 +0000 (20:09 +0100)]
Define std::shared_ptr::weak_type
* include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
* include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
* testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
* testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
From-SVN: r239093
Bernd Edlinger [Wed, 3 Aug 2016 19:05:45 +0000 (19:05 +0000)]
re PR middle-end/71876 (longjmp is miscompiled with -ffreestanding)
2016-08-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR middle-end/71876
* calls.c (special_function_p): Remove special handling of
"setjmp_syscall", "qsetjmp", "longjmp", "siglongjmp" and the
prefix "__x". Recognize "savectx", "vfork" and "getcontext" only
without prefix. Remove potentially unsafe ECF_LEAF and ECF_NORETURN.
From-SVN: r239092
Vladimir Makarov [Wed, 3 Aug 2016 18:54:49 +0000 (18:54 +0000)]
re PR rtl-optimization/72778 (internal compiler error: in create_pre_exit, at mode-switching.c:451)
2016-08-03 Vladimir Makarov <vmakarov@redhat.com>
PR middle-end/72778
* lra-spills.c (regno_in_use_p): Check bb and regno modification.
Don't stop on regular insns.
From-SVN: r239091