aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2018-12-03re PR fortran/87919 (Incorrect fortran handling of -fno-* options)Fritz Reese15-13/+322
2018-12-03 Fritz Reese <fritzoreese@gmail.com> Mark Eggleston <mark.eggleston@codethink.co.uk> PR fortran/87919 gcc/fortran/ChangeLog: PR fortran/87919 * options.c (SET_FLAG, SET_BITFLAG, SET_BITFLAG2): New macros. (set_dec_flags): Set/unset DEC and std flags according to value. (set_init_local_zero): New helper for -finit-local-zero flag group. (gfc_init_options): Fix disabling of init flags, array temporaries check, and dec flags when value is zero (from -fno-*). gcc/testsuite/ChangeLog: PR fortran/87919 * gfortran.dg/array_temporaries_5.f90: New test. * gfortran.dg/dec_bitwise_ops_3.f90: Ditto. * gfortran.dg/dec_d_lines_3.f: Ditto. * gfortran.dg/dec_exp_4.f90: Ditto. * gfortran.dg/dec_exp_5.f90: Ditto. * gfortran.dg/dec_io_7.f90: Ditto. * gfortran.dg/dec_structure_24.f90: Ditto. * gfortran.dg/dec_structure_25.f90: Ditto. * gfortran.dg/dec_structure_26.f90: Ditto. * gfortran.dg/dec_structure_27.f90: Ditto. * gfortran.dg/dec_type_print_3.f90: Ditto. * gfortran.dg/init_flag_20.f90: Ditto. Co-Authored-By: Mark Eggleston <mark.eggleston@codethink.co.uk> From-SVN: r266745
2018-12-03h8300.md (low byte masking peepholes): Only accept nonimmediate_operand for ↵Jeff Law2-2/+7
the to-be-masked operand. * config/h8300/h8300.md (low byte masking peepholes): Only accept nonimmediate_operand for the to-be-masked operand. From-SVN: r266744
2018-12-03pr59963-2.c: Make testnames unique.Jeff Law3-6/+11
* gcc.dg/pr59963-2.c: Make testnames unique. * gcc.dg/tree-ssa/builtin-sprintf-warn-18.c: Likewise. From-SVN: r266743
2018-12-03tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Only allow expected ↵Richard Biener2-6/+18
function-pointer cast re-instantiation. 2018-12-03 Richard Biener <rguenther@suse.de> * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Only allow expected function-pointer cast re-instantiation. From-SVN: r266742
2018-12-03S/390: Add support for section anchorsIlya Leoshkevich10-3/+96
gcc/ChangeLog: 2018-12-03 Ilya Leoshkevich <iii@linux.ibm.com> * common/config/s390/s390-common.c (s390_option_init_struct): Use section anchors by default. * config/s390/s390.c (s390_check_symref_alignment): Handle anchors. (TARGET_MAX_ANCHOR_OFFSET): Use short displacement. * output.h (assemble_align): Pass `align' as unsigned int, so that the value 0x80000000, which corresponds to `aligned(1 << 28)', would pass the `align > BITS_PER_UNIT' check. * varasm.c (assemble_align): Likewise. gcc/testsuite/ChangeLog: 2018-12-03 Ilya Leoshkevich <iii@linux.ibm.com> * gcc.target/s390/nodatarel-1.c: Expect .LANCHOR0@GOTENT instead of a@GOTENT. * gcc.target/s390/section-anchors.c: New test. * gcc.target/s390/section-anchors2.c: New test. * gcc.target/s390/section-anchors3.c: New test. From-SVN: r266741
2018-12-03Fix infinite recursion in OMP clause pretty-printing, default labelJulian Brown2-3/+6
gcc/ * tree-pretty-print.c (dump_omp_clause): Make default case gcc_unreachable. From-SVN: r266740
2018-12-03re PR tree-optimization/88301 (Optimization regression with undefined ↵Richard Biener4-0/+36
unsigned overflow) 2018-12-03 Richard Biener <rguenther@suse.de> PR tree-optimization/88301 * tree-vrp.c (register_edge_assert_for_2): Handle conversions that do not change the value by registering the same assert for the operand. * gcc.dg/tree-ssa/evrp13.c: New testcase. From-SVN: r266739
2018-12-03re PR tree-optimization/71109 (gcc ICE at -O3 on valid code on ↵Jakub Jelinek2-0/+34
x86_64-linux-gnu in "maybe_record_trace_start") PR tree-optimization/71109 * gcc.c-torture/compile/pr71109.c: New test. From-SVN: r266738
2018-12-03tree-vect-loop.c (vect_transform_loop): Properly compute upper bound for the ↵Richard Biener2-2/+10
epilogue when doing epilogue vectorization. 2018-12-03 Richard Biener <rguenther@suse.de> * tree-vect-loop.c (vect_transform_loop): Properly compute upper bound for the epilogue when doing epilogue vectorization. From-SVN: r266737
2018-12-03re PR target/88287 (aarch64/sve/vcond_1.C fails since r266620)Jakub Jelinek2-32/+38
PR target/88287 * g++.target/aarch64/sve/vcond_1.C: Adjust for comparison canonicalization. From-SVN: r266736
2018-12-03Repeat jump threading after combineIlya Leoshkevich6-0/+75
Consider the following RTL: (insn (set (reg 65) (if_then_else (eq %cc 0) 1 0))) (insn (parallel [(set %cc (compare (reg 65) 0)) (clobber %scratch)])) (jump_insn (set %pc (if_then_else (ne %cc 0) (label_ref 23) %pc))) Combine simplifies this into: (note NOTE_INSN_DELETED) (note NOTE_INSN_DELETED) (jump_insn (set %pc (if_then_else (eq %cc 0) (label_ref 23) %pc))) opening up the possibility to perform jump threading. gcc/ChangeLog: 2018-12-03 Ilya Leoshkevich <iii@linux.ibm.com> PR target/80080 * cfgcleanup.c (class pass_postreload_jump): New pass. (pass_postreload_jump::execute): Likewise. (make_pass_postreload_jump): Likewise. * passes.def: Add pass_postreload_jump before pass_postreload_cse. * tree-pass.h (make_pass_postreload_jump): New pass. gcc/testsuite/ChangeLog: 2018-12-03 Ilya Leoshkevich <iii@linux.ibm.com> PR target/80080 * gcc.target/s390/pr80080-4.c: New test. From-SVN: r266734
2018-12-03Mark x86_64 only tests as such.Andi Kleen4-3/+9
2018-12-02 Andi Kleen <ak@linux.intel.com> * gcc.target/i386/returninst1.c: Run on 64bit only. * gcc.target/i386/returninst2.c: Dito. * gcc.target/i386/returninst3.c: Dito. From-SVN: r266733
2018-12-03Daily bump.GCC Administrator1-1/+1
From-SVN: r266732
2018-12-02i386.c (inline_memory_move_cost): Correctly compute number of TFmode GPR moves.Uros Bizjak2-4/+7
* config/i386/i386.c (inline_memory_move_cost): Correctly compute number of TFmode GPR moves. From-SVN: r266729
2018-12-02re PR target/88278 (Fails to elide zeroing of upper vector register)Jakub Jelinek6-1/+91
PR target/88278 * config/i386/sse.md (*vec_concatv4sf_0, *vec_concatv4si_0): New insns. * gcc.target/i386/pr88278.c: New test. * gcc.target/i386/pr53759.c: Don't expect vmovlps insn, expect vmovq instead. * gcc.target/i386/pr53759-2.c: New test. From-SVN: r266728
2018-12-02h8300.md (call, call_value): Drop mode from operand containing number of ↵Jeff Law2-6/+13
bytes pushed. * config/h8300/h8300.md (call, call_value): Drop mode from operand containing number of bytes pushed. (call_insn, call_value_insn): Use mode iterator for number of bytes pushed operand. Make pattern name vary appropriately. From-SVN: r266727
2018-12-02bb-reorer.c (find_rarely_executed_basic_blocks_and_crossin_edges): trust ↵Jan Hubicka2-7/+14
precise profiles. * bb-reorer.c (find_rarely_executed_basic_blocks_and_crossin_edges): trust precise profiles. From-SVN: r266726
2018-12-02tree-nested.c (convert_nonlocal_omp_clauses, [...]): Handle ↵Jakub Jelinek2-2/+32
OMP_CLAUSE_IN_REDUCTION... * tree-nested.c (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Handle OMP_CLAUSE_IN_REDUCTION, OMP_CLAUSE_TASK_REDUCTION and OMP_CLAUSE__SIMT_ clauses. (convert_nonlocal_reference_stmt, convert_local_reference_stmt): Convert clauses for GIMPLE_OMP_TASKGROUP. * testsuite/libgomp.c/task-reduction-3.c: New test. From-SVN: r266723
2018-12-02omp-low.c (check_omp_nesting_restrictions): Allow cancel or cancellation ↵Jakub Jelinek4-1/+120
point with taskgroup clause inside of taskloop. * omp-low.c (check_omp_nesting_restrictions): Allow cancel or cancellation point with taskgroup clause inside of taskloop. Consider a taskloop construct without nogroup clause as implicit taskgroup for diagnostics if cancel/cancellation point with taskgroup clause is closely nested inside of taskgroup region. * c-c++-common/gomp/cancel-1.c (f2): Add various taskloop related tests. * testsuite/libgomp.c-c++-common/cancel-taskgroup-4.c: New test. From-SVN: r266722
2018-12-02re PR sanitizer/88291 (asan ICE in asan_clear_shadow)Jakub Jelinek4-7/+41
PR sanitizer/88291 * asan.c (asan_clear_shadow): Move assert that len is multiple of 4 to the start of the function. (asan_emit_stack_protection): When emitting clearing sequence for epilogue, align offset down to ASAN_RED_ZONE_SIZE granularity, add last_size_aligned which is last_size padded to multiples of ASAN_RED_ZONE_SIZE and emit asan_clear_shadow always on 4 byte boundaries. * c-c++-common/asan/pr88291.c: New test. From-SVN: r266721
2018-12-02re PR c++/88258 (Infinite loop emitting diagnostics in the C++ front-end)Jakub Jelinek4-6/+51
PR c++/88258 * parser.c (cp_parser_skip_to_closing_parenthesis_1, cp_parser_skip_to_end_of_statement, cp_parser_skip_to_end_of_block_or_statement, cp_parser_skip_to_closing_brace, cp_parser_skip_to_closing_square_bracket, cp_parser_skip_balanced_tokens): Don't treat CPP_PRAGMA_EOL specially if in_pragma is false. * g++.dg/gomp/pr88258.C: New test. From-SVN: r266720
2018-12-02Merge dmd upstream 5220ad51eIain Buclaw8-46/+125
Backports Ddoc fix that is present in upstream, but did not make its way into the C++ port of the D front-end implementation. The old special types for C long, unsigned long, and long double have also been removed as neither the compiler nor druntime bindings support handling it anymore. Commits merged from dmd. Backport Issue 14633: Fixed false DDoc warnings https://github.com/dlang/dmd/pull/9027 Remove old support code for struct __c_long/ulong/long_double https://github.com/dlang/dmd/pull/9028 From-SVN: r266719
2018-12-02Daily bump.GCC Administrator1-1/+1
From-SVN: r266717
2018-12-01re PR c++/87523 (ICE: Closures apparently fail to capture constexpr)Marek Polacek2-0/+35
PR c++/87523 * g++.dg/cpp1y/lambda-generic-87523.C: New test. From-SVN: r266714
2018-12-01re PR c++/79629 (ICE on invalid code in tsubst_copy, at cp/pt.c:14477)Marek Polacek2-0/+17
PR c++/79629 * g++.dg/other/error35.C: New test. From-SVN: r266712
2018-12-01re PR c++/83856 (ICE in tsubst_copy;)Marek Polacek2-0/+33
PR c++/83856 * g++.dg/cpp1y/lambda-generic-83856.C: New test. From-SVN: r266711
2018-12-01Implement P0634R3, Down with typename!Marek Polacek33-84/+789
* parser.c (CP_PARSER_FLAGS_TYPENAME_OPTIONAL): New enumerator. (cp_parser_type_name): Remove declaration. (cp_parser_postfix_expression): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_type_id. (cp_parser_new_type_id): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_type_specifier_seq. (cp_parser_lambda_declarator_opt): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_parameter_declaration_clause. (cp_parser_condition): Pass CP_PARSER_FLAGS_NONE to cp_parser_declarator. (cp_parser_simple_declaration): Pass CP_PARSER_FLAGS_NONE to cp_parser_init_declarator. (cp_parser_conversion_type_id): Pass CP_PARSER_FLAGS_NONE to cp_parser_type_specifier_seq. (cp_parser_default_type_template_argument): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_type_id. (cp_parser_template_parameter): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_parameter_declaration. (cp_parser_explicit_instantiation): Pass CP_PARSER_FLAGS_NONE to cp_parser_declarator. (cp_parser_simple_type_specifier): Adjust call to cp_parser_type_name to relay if we should treat the typename keyword as optional. Maybe call cp_parser_make_typename_type is parsing a template-id and it's not a TYPE_DECL. (cp_parser_type_name): Remove unused function. (cp_parser_enum_specifier): Pass to CP_PARSER_FLAGS_NONE cp_parser_type_specifier_seq. (cp_parser_alias_declaration): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_type_id. (cp_parser_init_declarator): New parameter. Pass it down to cp_parser_declarator. (cp_parser_declarator): New parameter. Pass CP_PARSER_FLAGS_NONE to cp_parser_declarator. Pass the new parameter to cp_parser_direct_declarator. (cp_parser_direct_declarator): New parameter. Pass it to cp_parser_parameter_declaration_clause and cp_parser_declarator. (cp_parser_declarator_id): (cp_parser_type_id_1): New parameter. Pass it to cp_parser_type_specifier_seq. Adjust call to cp_parser_declarator. (cp_parser_type_id): New parameter. Pass it to cp_parser_type_id_1. (cp_parser_template_type_arg): Pass CP_PARSER_FLAGS_NONE to cp_parser_type_id_1. (cp_parser_trailing_type_id): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_type_id_1. (cp_parser_type_specifier_seq): New parameter. (function_being_declared_is_template_p): (cp_parser_parameter_declaration_clause): New parameter. Pass it to cp_parser_parameter_declaration_list. (cp_parser_parameter_declaration_list): New parameter. Pass it to cp_parser_parameter_declaration. (cp_parser_parameter_declaration): New parameter. Pass it to cp_parser_decl_specifier_seq. Pass CP_PARSER_FLAGS_NONE to cp_parser_declarator. (cp_parser_member_declaration): Adjust call to cp_parser_decl_specifier_seq to also include CP_PARSER_FLAGS_TYPENAME_OPTIONAL. Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_declarator. (cp_parser_exception_declaration): Pass CP_PARSER_FLAGS_NONE to cp_parser_type_specifier_seq and cp_parser_declarator. (cp_parser_requirement_parameter_list): Pass CP_PARSER_FLAGS_NONE to cp_parser_parameter_declaration_clause. (cp_parser_constructor_declarator_p): Resolve the TYPENAME_TYPE. (cp_parser_single_declaration): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_decl_specifier_seq and cp_parser_init_declarator. (cp_parser_cache_defarg): Pass CP_PARSER_FLAGS_NONE to cp_parser_declarator and cp_parser_parameter_declaration_list. (cp_parser_objc_method_tail_params_opt): Pass CP_PARSER_FLAGS_NONE to cp_parser_parameter_declaration. (cp_parser_objc_class_ivars): Pass CP_PARSER_FLAGS_NONE to cp_parser_declarator. (cp_parser_objc_try_catch_finally_statement): Pass CP_PARSER_FLAGS_NONE to cp_parser_parameter_declaration (cp_parser_objc_struct_declaration): Pass CP_PARSER_FLAGS_NONE to cp_parser_declarator. (cp_parser_omp_for_loop_init): Pass CP_PARSER_FLAGS_NONE to cp_parser_declarator and cp_parser_type_specifier_seq. * g++.dg/cpp0x/alias-decl-43.C: Adjust dg-error. * g++.dg/cpp0x/decltype67.C: Only expect error in c++17_down. * g++.dg/cpp1z/typename1.C: New test. * g++.dg/cpp2a/typename1.C: New test. * g++.dg/cpp2a/typename10.C: New test. * g++.dg/cpp2a/typename11.C: New test. * g++.dg/cpp2a/typename2.C: New test. * g++.dg/cpp2a/typename3.C: New test. * g++.dg/cpp2a/typename4.C: New test. * g++.dg/cpp2a/typename5.C: New test. * g++.dg/cpp2a/typename6.C: New test. * g++.dg/cpp2a/typename7.C: New test. * g++.dg/cpp2a/typename8.C: New test. * g++.dg/cpp2a/typename9.C: New test. * g++.dg/diagnostic/missing-typename.C: Only run the test in c++17_down. * g++.dg/other/crash-9.C: Add template disambiguator. * g++.dg/other/nontype-1.C: Only expect error in c++17_down. * g++.dg/parse/crash13.C: Likewise. * g++.dg/parse/error36.C: Likewise. * g++.dg/parse/no-typename1.C: Likewise. * g++.dg/parse/typedef2.C: Likewise. * g++.dg/parse/typename11.C: Likewise. * g++.dg/template/crash48.C: Adjust dg-error. * g++.dg/template/dependent-name5.C: Only expect error in c++17_down. Add dg-error. * g++.dg/template/error29.C: Only expect error in c++17_down. * g++.dg/template/nested5.C: Add template disambiguator. * g++.dg/template/pr84789.C: Only expect error in c++17_down. * g++.dg/template/static30.C: Add dg-error. * g++.dg/template/typedef6.C: Adjust dg-error. * g++.dg/template/typename3.C: Only expect error in c++17_down. From-SVN: r266710
2018-12-01* gcc.dg/predict-22.c: Update expected output.Jeff Law2-1/+5
From-SVN: r266709
2018-12-01re PR sanitizer/88289 (r266664 causes asan to fail on many/most tests on BE)Jakub Jelinek2-1/+5
PR sanitizer/88289 * asan.c (asan_redzone_buffer::flush_redzone_payload): Fix up an off-by-one for BYTES_BIG_ENDIAN. From-SVN: r266708
2018-12-01re PR target/54589 (struct offset add should be folded into address calculation)Jakub Jelinek4-6/+78
PR target/54589 * combine.c (find_split_point): For invalid memory address nonobj + obj + const, if reg + obj + const is valid addressing mode, split at nonobj. Use if rather than else if for the fallback. Comment fixes. * gcc.target/i386/pr54589.c: New test. From-SVN: r266707
2018-12-01Daily bump.GCC Administrator1-1/+1
From-SVN: r266705
2018-11-30coverage.c (get_coverage_counts): Use from_function_decl for precise ↵Indu Bhagat4-4/+25
function location. * coverage.c (get_coverage_counts): Use from_function_decl for precise function location. * profile-count.c (profile_count::dump): Add handling for precise profile quality. * profile.c (compute_branch_probabilities): Rely on exec_counts instead of profile_info to set profile_status of function. (branch_prob): Do not set profile_status of function based on profile_info. Done above based on exec_counts. From-SVN: r266702
2018-12-01re PR tree-optimization/88274 (ICE in check, at tree-vrp.c:188)Jakub Jelinek2-2/+32
PR tree-optimization/88274 * tree-ssa-reassoc.c (optimize_range_tests_xor, optimize_range_tests_diff): If type has smaller precision than corresponding mode or if it has non-standard min/max, compute everything in a standard type for the precision. From-SVN: r266701
2018-12-01re PR testsuite/85368 (phi-opt-11 test fails on IBM Z)Jakub Jelinek34-128/+145
PR testsuite/85368 * params.def (PARAM_LOGICAL_OP_NON_SHORT_CIRCUIT): New param. * tree-ssa-ifcombine.c (ifcombine_ifandif): If --param logical-op-non-short-circuit is present, override LOGICAL_OP_NON_SHORT_CIRCUIT value from the param. * fold-const.c (fold_range_test, fold_truth_andor): Likewise. * lib/target-supports.exp (logical_op_short_circuit): Remove. * gcc.dg/builtin-bswap-7.c: Remove logical_op_short_circuit effective target, drop -mbranch-cost= options from the test and instead pass --param logical-op-non-short-circuit=0 or --param logical-op-non-short-circuit=1 depending on what the tests meant to test. * gcc.dg/pr21643.c: Likewise. * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-2.c: Likewise. * gcc.dg/tree-ssa/phi-opt-11.c: Likewise. * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-1.c: Likewise. * gcc.dg/tree-ssa/ssa-dom-thread-4.c: Likewise. * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-3.c: Likewise. * gcc.dg/tree-ssa/ssa-thread-14.c: Likewise. * gcc.dg/tree-ssa/vrp47.c: Likewise. * gcc.dg/tree-ssa/ssa-dom-thread-11.c: Likewise. * gcc.dg/tree-ssa/ssa-dom-thread-16.c: Likewise. * gcc.dg/tree-ssa/ssa-dom-thread-14.c: Likewise. * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-5.c: Likewise. * gcc.dg/tree-ssa/vrp87.c: Likewise. * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-6.c: Likewise. * gcc.dg/tree-ssa/phi-opt-2.c: Likewise. * gcc.dg/tree-ssa/ssa-ifcombine-13.c: Likewise. * gcc.dg/tree-ssa/ssa-thread-11.c: Likewise. * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-4.c: Likewise. * gcc.dg/tree-ssa/forwprop-28.c: Likewise. * gcc.dg/binop-xor1.c: Likewise. * gcc.dg/pr46309.c: Likewise. * gcc.dg/tree-ssa/ssa-dom-thread-18.c: New test. * gcc.dg/tree-ssa/reassoc-32.c: Add --param logical-op-non-short-circuit=1 to dg-options. * gcc.dg/tree-ssa/reassoc-33.c: Likewise. * gcc.dg/tree-ssa/reassoc-34.c: Likewise. * gcc.dg/tree-ssa/reassoc-35.c: Likewise. * gcc.dg/tree-ssa/reassoc-36.c: Likewise. From-SVN: r266700
2018-11-30optabs.c (expand_binop): Use "machine_mode" rather than "enum machine mode" ↵Jeff Law2-2/+7
in most recent change. * optabs.c (expand_binop): Use "machine_mode" rather than "enum machine mode" in most recent change. From-SVN: r266698
2018-11-30re PR middle-end/64242 (Longjmp expansion incorrect)Wilco Dijkstra4-3/+50
PR middle-end/64242 * builtins.c (expand_builtin_longjmp): Use a temporary when restoring the frame pointer. (expand_builtin_nonlocal_goto): Likewise. * gcc.c-torture/execute/pr64242.c: New test. From-SVN: r266697
2018-11-30C++: fix-it hint for missing parenthesesDavid Malcolm7-3/+76
Consider: class t1 { public: double length () const { return m_length; } private: double m_length; }; missing-parens-fixit.C: In function 'bool test_1(const t1&)': missing-parens-fixit.C:14:15: error: invalid use of member function 'double t1::length() const' (did you forget the '()' ?) 14 | return inst.length > 0.0; | ~~~~~^~~~~~ This patch adds a fix-it hint for the case where the member function takes no parameters, suggesting the addition of the parentheses: 14 | return inst.length > 0.0; | ~~~~~^~~~~~ | () so that an IDE can potentially apply the fix. gcc/cp/ChangeLog: * typeck2.c: Include "gcc-rich-location.h". (cxx_incomplete_type_diagnostic): When complaining about possibly missing parens, add a fix-it hint if the member function takes no additional params. gcc/ChangeLog: * diagnostic-core.h (emit_diagnostic): New decl. * diagnostic.c (emit_diagnostic): New overload, taking a rich_location *. gcc/testsuite/ChangeLog: * g++.dg/parse/missing-parens-fixit.C: New test. From-SVN: r266696
2018-11-30pretty-print.c: add selftest::test_prefixes_and_wrappingDavid Malcolm2-0/+103
gcc/ChangeLog: * pretty-print.c (class selftest::test_pretty_printer): New subclass of pretty_printer. (selftest::test_prefixes_and_wrapping): New test. (selftest::pretty_print_c_tests): Call it. From-SVN: r266695
2018-11-30Minimize clone counter memory usage in LTO.Michael Ploujnikov2-2/+24
gcc/lto: * lto-partition.c (privatize_symbol_name_1): Keep track of non-unique symbol counters in the lto_clone_numbers hash map. (lto_promote_cross_file_statics): Allocate and free the lto_clone_numbers hash map. (lto_promote_statics_nonwpa): Free the lto_clone_numbers hash map. From-SVN: r266693
2018-11-30Minimize clone counter memory usage in create_virtual_clone.Michael Ploujnikov5-11/+54
Based on Martin Jambour's suggestion: https://gcc.gnu.org/ml/gcc-patches/2018-09/msg00111.html gcc: * cgraph.h (clone_function_name): Add a variant that takes a tree decl. * cgraph.h (cgraph_node::create_virtual_clone): Add a new argument: num_suffix. * cgraphclones.c (cgraph_node::create_virtual_clone): Pass num_suffix to clone_function_name. (clone_function_name): Add a variant that takes a tree decl. * ipa-cp.c (create_specialized_node): Keep track of clone counters in clone_num_suffixes hash map. (ipcp_driver): Free the counter hash map. * ipa-hsa.c (process_hsa_functions): Creates at most one hsa clone per function. From-SVN: r266692
2018-11-30Make function assembly more independent.Michael Ploujnikov4-2/+60
This is achieved by having clone_function_name assign unique clone numbers for each function independently. gcc: * cgraphclones.c: Replaced clone_fn_id_num with clone_fn_ids; hash map. (clone_function_name_numbered): Use clone_fn_ids. gcc/testsuite: * gcc.dg/independent-cloneids-1.c: New test. From-SVN: r266691
2018-11-30re PR debug/85550 (-fdebug-types-section broken with DW_OP_addr in ↵Jakub Jelinek2-0/+22
DW_AT_location) PR debug/85550 * g++.dg/debug/dwarf2/pr85550.C: New test. From-SVN: r266689
2018-11-30[C++] Use existing local variable in cp_parser_oacc_enter_exit_dataJames Norris2-1/+6
gcc/cp/ * parser.c (cp_parser_oacc_enter_exit_data): Use existing local variable. Reviewed-by: Thomas Schwinge <thomas@codesourcery.com> From-SVN: r266687
2018-11-30[PR87924] Add (XFAILed) test cases for OpenACC wait clauses without ↵Thomas Schwinge3-0/+45
async-arguments gcc/testsuite/ PR c/87924 * c-c++-common/goacc/asyncwait-5.c: Update. * gfortran.dg/goacc/asyncwait-5.f: Likewise. From-SVN: r266686
2018-11-30Clean up Fortran OpenACC wait clause handlingThomas Schwinge3-6/+6
"wait" can be deduced from "wait_list". gcc/fortran/ * gfortran.h (struct gfc_omp_clauses): Remove "wait". Adjust all users. From-SVN: r266685
2018-11-30Support multiple OpenACC wait clausesThomas Schwinge5-1/+37
Support for this is not explicitly called for in OpenACC 2.6, but given that GCC internally decomposes "wait (1, 2)" into "wait (1) wait (2)" (similar for other clauses, too), it's reasonable to also support that syntax in the front ends -- which happens to already be the case for C, C++, and easy enough to do for Fortran. gcc/fortran/ * openmp.c (gfc_match_omp_clauses): Support multiple OpenACC wait clauses. gcc/testsuite/ * c-c++-common/goacc/asyncwait-5.c: New file. * gfortran.dg/goacc/asyncwait-5.f: Likewise. From-SVN: r266684
2018-11-30re PR rtl-optimization/88179 ([MIPS] pr84941.c ICE in ↵Vladimir Makarov2-2/+14
lra_eliminate_reg_if_possible at lra-eliminations.c:1393 start with r266385) 2018-11-30 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/88179 * lra-constraints.c (address_eliminator::address_eliminator): Don't eleminate regs in illegitimate address. From-SVN: r266682
2018-11-30re PR target/87496 (ICE in aggregate_value_p at gcc/function.c:2046)Peter Bergner2-1/+8
gcc/testsuite/ PR target/87496 * gcc.target/powerpc/pr86324-1.c: Add dg-skip-if selector. Add -mcpu=power7 option. From-SVN: r266680
2018-11-30Fix ICE in substring locations from macros in header files (PR ↵David Malcolm6-2/+69
preprocessor/88257) PR preprocessor/88257 reports an ICE on gcc.dg/format/pr78304.c when compiled using g++: void test (const char *msg) { printf ("size: %" PRIu32 "\n", msg); } due to mismatching files (and line maps) between linemap_resolve_location and expand_location_to_spelling_point when PRIu32 is defined in a system header. The root cause is that expand_location_to_spelling_point stops unwinding locations when it reaches a system header, whereas linemap_resolve_location can resolve into a system header, which can lead to locations within get_substring_ranges_for_loc getting out of sync, and using the wrong line map. This patch fixes the issue by checking that the files are the same. gcc/ChangeLog: PR preprocessor/88257 * input.c (get_substring_ranges_for_loc): Fix indentation. Bulletproof against getting a different files back from linemap_resolve_location and expand_location_to_spelling_point. gcc/testsuite/ChangeLog: PR preprocessor/88257 * c-c++-common/Wformat-pr88257.c: New test. * c-c++-common/Wformat-pr88257.h: New test header. * c-c++-common/empty.h: New test header. From-SVN: r266671
2018-11-30Call decl_default_tls_model with a proper type (PR gcov-profile/88279).Alexander Monakov2-1/+7
2018-11-30 Alexander Monakov <amonakov@ispras.ru> PR gcov-profile/88279 * tree-profile.c (init_ic_make_global_vars): Call decl_default_tls_model for variable and not it's type. From-SVN: r266666