aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-08-09Implement C++17 constexpr lambda.Jason Merrill29-29/+332
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
2016-08-09Fix empty class parameters with constexpr.Jason Merrill6-6/+37
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
2016-08-09Fix warning breaking profiled bootstrapAndi Kleen2-0/+7
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
2016-08-09Make autofdo tests safer for parallel buildsAndi Kleen2-12/+20
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
2016-08-09Daily bump.GCC Administrator1-1/+1
From-SVN: r239264
2016-08-08text/template: reduce maxExecDepth for gccgo furtherIan Lance Taylor2-3/+3
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
2016-08-08c-format.c: suggest the correct format string to use (PR c/64955)David Malcolm11-20/+371
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
2016-08-08libgo: don't have .lo depend on .lo.depIan Lance Taylor3-311/+317
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
2016-08-08Fix selftest::test_lexer_string_locations_ebcdic for systems without iconv ↵David Malcolm2-0/+9
(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
2016-08-08testsuite: fix gotest for absolute srcdirIan Lance Taylor2-25/+43
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-08pr71078-1.c: Add require-effective-target c99_runtime.Prathamesh Kulkarni8-0/+18
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
2016-08-08Use class substring_loc in c-format.c (PR c/52952)David Malcolm7-185/+605
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
2016-08-08re PR go/72814 (reflect FAILs on 32-bit Solaris/SPARC: SIGILL)Ian Lance Taylor4-1/+49
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
2016-08-08re PR c++/58706 (ICE with lambda in OpenMP for-loop)Jakub Jelinek4-3/+97
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
2016-08-08re PR fortran/72716 (ICE in gfc_resolve_omp_declare_simd, at ↵Jakub Jelinek4-0/+21
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
2016-08-08re PR middle-end/72781 (-Wuninitialized false positives in OpenMP code)Jakub Jelinek4-1/+39
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
2016-08-08re PR middle-end/68762 (link error for inline function decorated with OpenMP ↵Jakub Jelinek6-4/+84
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
2016-08-08c-format.c: cleanup of check_format_info_mainDavid Malcolm2-636/+1049
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
2016-08-08driver-avr.c (specfiles_doc_url): Remove.Pitchumani Sivanupandi2-55/+17
* 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
2016-08-08PR testsuite/72838 - FAIL: g++.dg/cpp0x/constexpr-cast.CMartin Sebor4-3/+10
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
2016-08-08re PR rtl-optimization/72821 (RTL check: expected elt 2 type 'B', have '0' ↵Jakub Jelinek2-2/+9
(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
2016-08-08[RS6000] TOC refs generated during reloadAlan Modra2-8/+18
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
2016-08-08re PR fortran/71936 (ICE in wide_int_to_tree, at tree.c:1487)Andre Vehreschild4-1/+71
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
2016-08-08re PR fortran/72698 (ICE in lhd_incomplete_type_error, at langhooks.c:205)Andre Vehreschild4-7/+46
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
2016-08-08[RS6000] PR72802 part 2, reload ICEAlan Modra4-11/+238
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
2016-08-08[RS6000] PR72802 part 1, fix constraints for lxssp/stxsspAlan Modra6-16/+49
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
2016-08-08re PR fortran/70524 (ICE when using -frepack-arrays -Warray-temporaries)Andre Vehreschild5-2/+46
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
2016-08-08Daily bump.GCC Administrator1-1/+1
From-SVN: r239228
2016-08-07internal/syscall/unix: fix syscalls for alpha, ia64, s390Ian Lance Taylor8-7/+59
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-07re PR fortran/70040 (ICE in gimplify.c with deferred-length strings)Thomas Koenig1-1/+1
2016-08-07 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/70040 Corrected last ChangeLog entry. From-SVN: r239222
2016-08-07re PR fortran/71961 (178.galgel in SPEC CPU 2000 is miscompiled)Thomas Koenig2-0/+24
2016-08-07 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/71961 * gfortran.dg/pr70040.f90: New testcase. From-SVN: r239221
2016-08-07re PR fortran/71961 (178.galgel in SPEC CPU 2000 is miscompiled)Thomas Koenig2-0/+27
2016-08-07 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/71961 * gfortran.dg/matmul_10.f90: New testcase. From-SVN: r239220
2016-08-07tree-ssa-threadbackward.c: Include tree-inline.hJan Hubicka4-15/+37
* 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
2016-08-07re PR c/72816 (ICE on x86_64-linux-gnu (tree check: expected tree that ↵Jakub Jelinek4-4/+25
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
2016-08-07[RS6000] Fix wrong mode regAlan Modra2-1/+5
Fix thinko in rev 239011 (git d1d05ab7). * config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg. From-SVN: r239217
2016-08-07Daily bump.GCC Administrator1-1/+1
From-SVN: r239216
2016-08-06data-streamer-in.c (streamer_read_wide_int): New.Kugan Vivekanandarajah6-35/+82
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-06tree-ssa-ccp.c (extend_mask): New param sgn.Prathamesh Kulkarni2-7/+14
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
2016-08-06Fix crash in selftest::test_lexer_string_locations_ucn4 (PR bootstrap/72823)David Malcolm2-6/+11
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
2016-08-06libgo: fix getrandom build for 32-bit ppcIan Lance Taylor2-2/+2
Add a ppc build constraint for internal/syscall/unix. Reviewed-on: https://go-review.googlesource.com/25547 From-SVN: r239210
2016-08-06Update C++17 library status tableJonathan Wakely3-4/+7
* doc/xml/manual/status_cxx2017.xml: Update status table. * doc/html/manual/status.html: Regenerate. From-SVN: r239209
2016-08-06* testsuite/lib/libstdc++.exp: Fix typo in comment.Jonathan Wakely2-1/+3
From-SVN: r239193
2016-08-06gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of INT64_MAX.Jakub Jelinek2-1/+6
* gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of INT64_MAX. From-SVN: r239192
2016-08-06Use ::new to avoid finding overloaded operator newJonathan Wakely3-2/+34
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
2016-08-06match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable ↵Prathamesh Kulkarni2-3/+14
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
2016-08-06libgo: change build procedure to use build tagsIan Lance Taylor109-5852/+1165
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
2016-08-06Daily bump.GCC Administrator1-1/+1
From-SVN: r239188
2016-08-06Harmonize diagnostics for invalid reference bindingJonathan Wakely10-13/+28
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
2016-08-06Add std::apply for C++17Jonathan Wakely11-60/+271
* 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
2016-08-05Improve forward jump threading of switch statements (PR18046)Patrick Palka6-6/+181
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