Age | Commit message (Collapse) | Author | Files | Lines |
|
gcc/c-family/
* c-cppbuiltin.c (c_cpp_builtins): Update __cpp_constexpr for
C++17 constexpr lambdas.
gcc/cp/
* class.c (finalize_literal_type_property): Handle lambdas.
* constexpr.c (is_valid_constexpr_fn): Likewise. No longer static.
(explain_invalid_constexpr_fn, cxx_eval_call_expression): Handle
lambdas.
(cxx_eval_constant_expression): Handle capture proxy.
(var_in_constexpr_fn): Don't check for C++14.
(var_in_maybe_constexpr_fn): New.
(potential_constant_expression_1): Use it. Check DECL_EXPR for
declarations not allowed in constexpr function.
* decl.c (make_rtl_for_nonlocal_decl): Use var_in_maybe_constexpr_fn.
(finish_function): Set DECL_DECLARED_CONSTEXPR_P on lambda members.
* lambda.c (begin_lambda_type): Set CLASSTYPE_LITERAL_P.
(maybe_add_lambda_conv_op): Clear thunk CALL_EXPR location.
(lambda_static_thunk_p): New.
* parser.c (cp_keyword_starts_decl_specifier_p): Add RID_CONSTEXPR.
(CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR): New enumerator.
(cp_parser_decl_specifier_seq): Handle it.
(cp_parser_lambda_declarator_opt): Use cp_parser_decl_specifier_seq.
* pt.c (instantiate_class_template_1): Set CLASSTYPE_LITERAL_P.
(tsubst_copy_and_build) [CALL_EXPR]: Propagate CALL_FROM_THUNK_P.
* error.c (dump_function_decl): Check TFF_NO_TEMPLATE_BINDINGS.
(dump_expr) [FUNCTION_DECL]: Pass it.
From-SVN: r239268
|
|
PR c++/67131
* class.c (is_really_empty_class): Call complete_type.
* constexpr.c (cxx_eval_constant_expression): Check
is_really_empty_class.
(potential_constant_expression_1): Likewise. Check for error type.
From-SVN: r239267
|
|
This patch fixes an bootstrap error with autoprofiledbootstrap
due to uninitiliazed variables, because the compiler cannot
figure out they don't need to be initialized in an error path.
Just always initialize them.
gcc/:
2016-08-08 Andi Kleen <ak@linux.intel.com>
* tree-vrp.c (get_single_symbol): Always initialize inv and neg.
From-SVN: r239266
|
|
There were some reports that the autofdo tests are non deterministic
with parallel builds. I wasn't able to reproduce this, but here are
two changes that may help:
- Always use unique file names for temporary files.
- Don't print file names in the test log because the directories
can vary (suggested by Jeff Law)
gcc/testsuite/:
2016-08-08 Andi Kleen <ak@linux.intel.com>
* lib/profopt.exp: (auto-profopt-execute): Don't include full
test command line in failure log.
(profopt-execute): dito. Make autofdo file names unique.
From-SVN: r239265
|
|
From-SVN: r239264
|
|
We already lowered the limit of recursive template invocations from
100,000 to 10,000, but the tests still fail occasionally on
x86_64-pc-linux-gnu when using GNU ld (so that split stacks are not
fully functional). Reduce the limit further, to 1000, enough so that
the test passes consistently.
Permitting 1000 recursive template invocations still seems capacious
enough for real world use.
Reviewed-on: https://go-review.googlesource.com/25590
From-SVN: r239261
|
|
This adds fix-it hints to c-format.c so that it can (sometimes) suggest
the format string the user should have used.
The patch adds selftests for the new code in c-format.c. These
selftests are thus lang-specific. This is the first time we've had
lang-specific selftests, and hence the patch also adds a langhook for
running them. (Note that currently the Makefile only invokes the
selftests for cc1).
gcc/c-family/ChangeLog:
PR c/64955
* c-common.h (selftest::c_format_c_tests): New declaration.
(selftest::run_c_tests): New declaration.
* c-format.c: Include "selftest.h.
(format_warning_va): Add param "corrected_substring" and use
it to add a replacement fix-it hint.
(format_warning_at_substring): Likewise.
(format_warning_at_char): Update for new param of
format_warning_va.
(argument_parser::check_argument_type): Pass "fki" to
check_format_types.
(check_format_types): Add param "fki" and pass it to
format_type_warning.
(deref_n_times): New function.
(get_modifier_for_format_len): New function.
(selftest::test_get_modifier_for_format_len): New function.
(get_format_for_type): New function.
(format_type_warning): Add param "fki" and use it to attempt
to provide hints for argument types when calling
format_warning_at_substring.
(selftest::get_info): New function.
(selftest::assert_format_for_type_streq): New function.
(ASSERT_FORMAT_FOR_TYPE_STREQ): New macro.
(selftest::test_get_format_for_type_printf): New function.
(selftest::test_get_format_for_type_scanf): New function.
(selftest::c_format_c_tests): New function.
gcc/c/ChangeLog:
PR c/64955
* c-lang.c (LANG_HOOKS_RUN_LANG_SELFTESTS): If CHECKING_P, wire
this up to selftest::run_c_tests.
(selftest::run_c_tests): New function.
gcc/ChangeLog:
PR c/64955
* langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default
do-nothing langhook.
(LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS.
* langhooks.h (struct lang_hooks): Add run_lang_selftests.
* selftest-run-tests.c: Include "tree.h" and "langhooks.h".
(selftest::run_tests): Call lang_hooks.run_lang_selftests.
gcc/testsuite/ChangeLog:
PR c/64955
* gcc.dg/format/diagnostic-ranges.c: Add fix-it hints to expected
output.
From-SVN: r239260
|
|
Having each .lo depend on the corresponding .lo.dep caused too many
rebuilds, because the .lo.dep files are rebuilt when Makefile changes.
Instead, if the .lo.dep file changes, remove the .lo file.
Reviewed-on: https://go-review.googlesource.com/25588
From-SVN: r239258
|
|
(PR bootstrap/72844)
selftest::test_lexer_string_locations_ebcdic has this clause:
/* EBCDIC support requires iconv. */
if (!HAVE_ICONV)
return;
leading to a build failure on systems without iconv. This conditional
works in libcpp due to this in libcpp/internal.h:
#if HAVE_ICONV
#include <iconv.h>
#else
#define HAVE_ICONV 0
typedef int iconv_t; /* dummy */
#endif
Fix the problem by ensuring that HAVE_ICONV is always defined within
gcc/input.c.
gcc/ChangeLog:
PR bootstrap/72844
* input.c: Ensure that HAVE_ICONV is defined.
From-SVN: r239257
|
|
The recent changes to Makefile.am mean that if you configure with an
absolute path as srcdir then gotest will be invoked with absolute paths
for the files. That case never worked. This patch fixes it.
Reviewed-on: https://go-review.googlesource.com/25587
From-SVN: r239256
|
|
2016-08-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
testsuite/
* gcc.dg/tree-ssa/pr71078-1.c: Add require-effective-target
c99_runtime.
* gcc.dg/tree-ssa/pr71078-1-double.c: Likewise.
* gcc.dg/tree-ssa/pr71078-1-long-double.c: Likewise.
* gcc.dg/tree-ssa/pr71078-2.c: Likewise.
* gcc.dg/tree-ssa/pr71078-2-double.c: Likewise.
* gcc.dg/tree-ssa/pr71078-2-long-double.c: Likewise.
* gcc.dg/tree-ssa/pr71078-3.c: Likewise.
From-SVN: r239255
|
|
gcc/c-family/ChangeLog:
PR c/52952
* c-format.c: Include "diagnostic.h".
(location_column_from_byte_offset): Delete.
(location_from_offset): Delete.
(format_warning_va): New function.
(format_warning_at_substring): New function.
(format_warning_at_char): New function.
(check_format_arg): Capture location of format_tree and pass to
check_format_info_main.
(argument_parser): Add fields "start_of_this_format" and
"format_string_cst".
(flag_chars_t::validate): Add param "format_string_cst". Convert
warning_at call using location_from_offset to call to
format_warning_at_char.
(argument_parser::argument_parser): Add param "format_string_cst_"
and use use it to initialize field "format_string_cst".
Initialize new field "start_of_this_format".
(argument_parser::read_format_flags): Convert warning_at call
using location_from_offset to a call to format_warning_at_char.
(argument_parser::read_any_format_left_precision): Likewise.
(argument_parser::read_any_format_precision): Likewise.
(argument_parser::read_any_other_modifier): Likewise.
(argument_parser::find_format_char_info): Likewise, in three places.
(argument_parser::parse_any_scan_set): Likewise, in one place.
(argument_parser::handle_conversions): Likewise, in two places.
(argument_parser::check_argument_type): Add param "fmt_param_loc"
and use it to make a substring_loc. Pass the latter to
check_format_types.
(check_format_info_main): Add params "fmt_param_loc" and
"format_string_cst". Convert warning_at calls using
location_from_offset to calls to format_warning_at_char. Pass the
new params to the arg_parser ctor. Pass "format_string_cst" to
flag_chars.validate. Pass "fmt_param_loc" to
arg_parser.check_argument_type.
(check_format_types): Convert first param from a location_t
to a const substring_loc & and rename to "fmt_loc". Attempt
to extract the range of the relevant parameter and pass it
to format_type_warning.
(format_type_warning): Convert first param from a location_t
to a const substring_loc & and rename to "fmt_loc". Add
params "param_range" and "type". Replace calls to warning_at
with calls to format_warning_at_substring.
gcc/testsuite/ChangeLog:
PR c/52952
* gcc.dg/cpp/pr66415-1.c: Likewise.
* gcc.dg/format/asm_fprintf-1.c: Update column numbers.
* gcc.dg/format/c90-printf-1.c: Likewise.
* gcc.dg/format/diagnostic-ranges.c: New test case.
From-SVN: r239253
|
|
PR go/72814
runtime: treat zero-sized result value as void
Change the FFI interface to treat a call to a function that returns a
zero-sized result as a call to a function that returns void.
This is part of the fix for https://gcc.gnu.org/PR72814. On 32-bit
SPARC systems, a call to a function that returns a non-zero-sized struct
is followed by an unimp instruction that describes the size of the
struct. The function returns to the address after the unimp
instruction. The libffi library can not represent a zero-sized struct,
so we wind up treating it as a 1-byte struct. Thus in that case libffi
calls the function with an unimp instruction, but the function does not
adjust the return address. The result is that the program attempts to
execute the unimp instruction, causing a crash.
This is part of a change that fixes the crash by treating all functions
that return zero bytes as functions that return void.
Reviewed-on: https://go-review.googlesource.com/25585
* go-gcc.cc (Gcc_backend::function_type): If the return type is
zero bytes, treat the function as returning void.
(return_statement): If the return type is zero bytes, don't
actually return any values.
From-SVN: r239252
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
* 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
|
|
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
|
|
(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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
From-SVN: r239228
|
|
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
|
|
2016-08-07 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/70040
Corrected last ChangeLog entry.
From-SVN: r239222
|
|
2016-08-07 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/71961
* gfortran.dg/pr70040.f90: New testcase.
From-SVN: r239221
|
|
2016-08-07 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/71961
* gfortran.dg/matmul_10.f90: New testcase.
From-SVN: r239220
|
|
* 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
|
|
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
|
|
Fix thinko in rev 239011 (git d1d05ab7).
* config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg.
From-SVN: r239217
|
|
From-SVN: r239216
|
|
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
|
|
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
|
|
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
|
|
Add a ppc build constraint for internal/syscall/unix.
Reviewed-on: https://go-review.googlesource.com/25547
From-SVN: r239210
|
|
* doc/xml/manual/status_cxx2017.xml: Update status table.
* doc/html/manual/status.html: Regenerate.
From-SVN: r239209
|
|
From-SVN: r239193
|
|
* gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of
INT64_MAX.
From-SVN: r239192
|
|
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
|
|
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
|
|
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
|
|
From-SVN: r239188
|
|
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
|
|
* 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
|
|
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
|