- 15 Aug, 2016 8 commits
-
-
2016-08-15 Richard Biener <rguenther@suse.de> PR tree-optimization/73434 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve TBAA info on the base when forwarding a non-invariant address. * gcc.dg/torture/pr73434.c: New testcase. From-SVN: r239471
Richard Biener committed -
* dwarf2.def (DW_AT_string_length_bit_size, DW_AT_string_length_byte_size): New attributes. * dwarf2out.c (struct checksum_attributes): Add at_string_length_bit_size and at_string_length_byte_size fields. (collect_checksum_attributes): Handle DW_AT_string_length_bit_size and DW_AT_string_length_byte_size. (die_checksum_ordered): Handle at_string_length_bit_size and at_string_length_byte_size. (gen_array_type_die): For dwarf_version >= 5 emit DW_AT_string_length_byte_size instead of DW_AT_byte_size. (adjust_string_types): For dwarf_version >= 5 remove DW_AT_string_length_byte_size instead of DW_AT_byte_size. (resolve_addr): Likewise. From-SVN: r239470
Jakub Jelinek committed -
PR debug/71906 * dwarf2out.c (string_types): New variable. (gen_array_type_die): Change early_dwarf handling of DW_AT_string_length, create DW_OP_call4 referencing the length var temporarily. Handle parameters that are pointers to string length. (adjust_string_types): New function. (gen_subprogram_die): Temporarily set string_types to local var, call adjust_string_types if needed. (non_dwarf_expression, copy_deref_exprloc, optimize_string_length): New functions. (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4. * trans-decl.c (gfc_get_symbol_decl): Call gfc_finish_var_decl for decl's character length before gfc_finish_var_decl on the decl itself. From-SVN: r239469
Jakub Jelinek committed -
* mark_spam.py: Add error handling and reset another properties of attachments and bugs. From-SVN: r239467
Martin Liska committed -
install.texi (*-*-solaris2*): Fix version number and document requirement on GNU make for building libjava... * doc/install.texi (*-*-solaris2*): Fix version number and document requirement on GNU make for building libjava with the Solaris linker. From-SVN: r239464
Eric Botcazou committed -
2016-08-15 Thomas Preud'homme <thomas.preudhomme@arm.com> PR libstdc++/72840 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error syntax. From-SVN: r239463
Thomas Preud'homme committed -
re PR tree-optimization/72824 (Signed floating point zero semantics broken at optimization level -O3 (tree-loop-distribute-patterns)) PR tree-optimization/72824 * tree-loop-distribution.c (const_with_all_bytes_same) <case VECTOR_CST>: Fix a typo. * gcc.c-torture/execute/ieee/pr72824-2.c: New test. From-SVN: r239461
Jakub Jelinek committed -
From-SVN: r239460
GCC Administrator committed
-
- 14 Aug, 2016 5 commits
-
-
2016-08-14 Chung-Lin Tang <cltang@codesourcery.com> PR fortran/70598 gcc/fortran/ * openmp.c (resolve_omp_clauses): Adjust use_device clause handling to only allow pointers and arrays. gcc/testsuite/ * gfortran.dg/goacc/host_data-tree.f95: Adjust to use pointers in use_device clause. * gfortran.dg/goacc/uninit-use-device-clause.f95: Likewise. * gfortran.dg/goacc/list.f95: Adjust to catch "neither a POINTER nor an array" error messages. libgomp/ * testsuite/libgomp.oacc-fortran/host_data-1.f90: New test. From-SVN: r239457
Chung-Lin Tang committed -
* config/i386/avx512ifmaintrin.h: Fix whitespace. * config/i386/avx512ifmavlintrin.h: Ditto. * config/i386/avx512vbmiintrin.h: Ditto. * config/i386/avx512vbmivlintrin.h: Ditto. * config/i386/avx512vlbwintrin.h: Ditto. * config/i386/avx512vldqintrin.h: Ditto. * config/i386/avx512vlintrin.h: Ditto. From-SVN: r239455
Uros Bizjak committed -
* config/i386/avx512bwintrin.h: Whitespace fixes. * config/i386/avx512dqintrin.h: Ditto. From-SVN: r239454
Uros Bizjak committed -
re PR target/76342 (AVX512: _mm512_undefined_epi32() intrinsic missing (incorrectly named _mm512_undefined_si512)) PR target/76342 * config/i386/avx512fintrin.h (_mm512_undefined_epi32): Renamed from _mm512_undefined_si512. (_mm_undefined_si512): New definition. testsuite/ChangeLog: PR target/76342 * gcc.target/i386/pr76342.c: New test. From-SVN: r239453
Uros Bizjak committed -
From-SVN: r239452
GCC Administrator committed
-
- 13 Aug, 2016 6 commits
-
-
* inclhack.def (hpux_longjmp): New fix. * fixincl.x: Regenerate. * tests/base/setjmp.h: New test file. From-SVN: r239446
John David Anglin committed -
tree-ssa-forwprop.c (pass_forwprop::execute): Propagate into PHIs and update the lattice for its def. 2016-08-13 Richard Biener <rguenther@suse.de> * tree-ssa-forwprop.c (pass_forwprop::execute): Propagate into PHIs and update the lattice for its def. From-SVN: r239444
Richard Biener committed -
Reportedly ksh fails to unset a variable that was not previously set. Change match.sh and gotest to not unset LANG, but instead set LANG=C. Also don't combine exporting and setting variable in a single statement. Reviewed-on: https://go-review.googlesource.com/26999 From-SVN: r239443
Ian Lance Taylor committed -
These files are used to select s390x assembler support in the gc toolchain. We don't currently have that support, as it is written in the cmd/asm syntax rather than gas syntax. Mark the files to be ignored for now, falling back to the default implementations. Patch by Andreas Krebbel. Reviewed-on: https://go-review.googlesource.com/26994 From-SVN: r239442
Ian Lance Taylor committed -
From-SVN: r239441
GCC Administrator committed -
It is testing functionality that gccgo does not need and does not support. Reviewed-on: https://go-review.googlesource.com/26992 From-SVN: r239438
Ian Lance Taylor committed
-
- 12 Aug, 2016 21 commits
-
-
PR c/71512 * ubsan.c (instrument_si_overflow): Pass true instead of false to gsi_replace. (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end of bbs. Return TODO_cleanup_cfg if any returned true. * g++.dg/ubsan/pr71512.C: New test. * c-c++-common/ubsan/pr71512-1.c: New test. * c-c++-common/ubsan/pr71512-2.c: New test. From-SVN: r239430
Jakub Jelinek committed -
[gcc] 2016-08-12 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/vsx.md (vsx_concat_<mode>): Add support for the ISA 3.0 MTVSRDD instruction. (vsx_splat_<mode>): Change cpu type of MTVSRDD instruction to vecperm. [gcc/testsuite] 2016-08-12 Michael Meissner <meissner@linux.vnet.ibm.com> * gcc.target/powerpc/vec-init-1.c: New tests to test various vector initialization options. * gcc.target/powerpc/vec-init-2.c: Likewise. * gcc.target/powerpc/vec-init-3.c: New test to make sure MTVSRDD is generated on ISA 3.0. From-SVN: r239428
Michael Meissner committed -
2016-08-12 Bernd Edlinger <bernd.edlinger@hotmail.de> PR tree-optimization/71083 * tree-predcom.c (ref_at_iteration): Use a COMPONENT_REF for the bitfield access when possible. From-SVN: r239426
Bernd Edlinger committed -
gcc/ChangeLog: PR middle-end/71654 * match.pd ((T)A CMP (T)B -> A CMP B): Allow (T)A to be a sign-changing cast from a shorter unsigned type to a wider signed type. gcc/testsuite/ChangeLog: PR middle-end/71654 * gcc.dg/c-c++-common/pr71654.c: New test. * gcc.dg/tree-ssa/vrp23: Add -fno-tree-forwprop to dg-options. * gcc.dg/tree-ssa/vrp24: Likewise. From-SVN: r239421
Patrick Palka committed -
PR c/67410 * c-typeck.c (set_nonincremental_init_from_string): Use / instead of % to determine val element to change. Assert that wchar_bytes * charwidth fits into val array. * gcc.dg/pr67410.c: New test. Co-Authored-By: Martin Liska <mliska@suse.cz> From-SVN: r239419
Jakub Jelinek committed -
* config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm, vec_extract_hi_<mode>_mask, vec_extract_lo_<mode>_mask, vec_extract_hi_<mode>_mask): Use Yk constraint instead of k. From-SVN: r239418
Jakub Jelinek committed -
2016-08-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Correct costs for vec_construct. From-SVN: r239417
Bill Schmidt committed -
PR tree-optimization/69848 * tree-vectorizer.h (enum vect_def_type): New condition reduction type CONST_COND_REDUCTION. * tree-vect-loop.c (vectorizable_reduction): Support new condition reudction type CONST_COND_REDUCTION. gcc/testsuite PR tree-optimization/69848 * gcc.dg/vect/vect-pr69848.c: New test. From-SVN: r239416
Bin Cheng committed -
PR testsuite/71008 * gcc.target/i386/avx512f-vprord-1.c: Scan also for vprold. * gcc.target/i386/avx512f-vprorq-1.c: Scan also for vprolq. * gcc.target/i386/avx512vl-vprord-1.c: Scan also for vprold. * gcc.target/i386/avx512vl-vprorq-1.c: Scan also for vprolq. From-SVN: r239415
Uros Bizjak committed -
2016-08-12 Richard Biener <rguenther@suse.de> PR tree-optimization/57326 * tree-ssa-pre.c (fully_constant_expression): Handle simplification returning an SSA name. (phi_translate_1): When fully_constant_expression returns a NAME make sure we have a leader for it. * gcc.dg/tree-ssa/ssa-pre-32.c: New testcase. * gcc.dg/tree-ssa/loadpre14.c: Adjust. * gcc.dg/tree-ssa/pr35287.c: Likewise. * gcc.target/i386/pr45685.c: Likewise. * gcc.dg/tree-ssa/predcom-1.c: Disable PRE. * gcc.dg/tree-ssa/predcom-2.c: Likewise. * gcc.dg/tree-ssa/predcom-3.c: Likewise. * gcc.dg/tree-ssa/ssa-sink-10.c: Likewise. * gfortran.dg/pr34163.f90: Likewise. From-SVN: r239414
Richard Biener committed -
* g++.dg/gcov/gcov-16.C: New test. * lib/gcov.exp: Support new argument for run-gcov function. Adam Fineman <afineman@afineman.com> * gcov.c (process_file): Create .gcov file when .gcda file is missing. From-SVN: r239413
Martin Liska committed -
PR gcov-profile/35590 * gcc.dg/tree-prof/val-prof-7.c: Improve test coverage. From-SVN: r239412
Martin Liska committed -
PR c/7652 gcc/ * alias.c (find_base_value): Adjust fall through comment. * cfgexpand.c (expand_debug_expr): Likewise. * combine.c (find_split_point): Likewise. (expand_compound_operation): Likewise. Add FALLTHRU. (make_compound_operation): Adjust fall through comment. (canon_reg_for_combine): Add FALLTHRU. (force_to_mode): Adjust fall through comment. (simplify_shift_const_1): Likewise. (simplify_comparison): Likewise. * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add FALLTHRU. * config/aarch64/predicates.md: Likewise. * config/i386/i386.c (function_arg_advance_32): Likewise. (ix86_gimplify_va_arg): Likewise. (print_reg): Likewise. (ix86_print_operand): Likewise. (ix86_build_const_vector): Likewise. (ix86_expand_branch): Likewise. (ix86_sched_init_global): Adjust fall through comment. (ix86_expand_args_builtin): Add FALLTHRU. (ix86_expand_builtin): Likewise. (ix86_expand_vector_init_one_var): Likewise. * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise. (rs6000_adjust_cost): Likewise. (insn_must_be_first_in_group): Likewise. * config/rs6000/rs6000.md: Likewise. Adjust fall through comment. * dbxout.c (dbxout_symbol): Adjust fall through comment. * df-scan.c (df_uses_record): Likewise. * dojump.c (do_jump): Add FALLTHRU. * dwarf2out.c (mem_loc_descriptor): Likewise. Adjust fall through comment. (resolve_args_picking_1): Adjust fall through comment. (loc_list_from_tree_1): Likewise. * expmed.c (make_tree): Likewise. * expr.c (expand_expr_real_2): Add FALLTHRU. (expand_expr_real_1): Likewise. Adjust fall through comment. * fold-const.c (const_binop): Adjust fall through comment. (fold_truth_not_expr): Likewise. (fold_cond_expr_with_comparison): Add FALLTHRU. (fold_binary_loc): Likewise. (contains_label_1): Adjust fall through comment. (multiple_of_p): Likewise. * gcov-tool.c (process_args): Add FALLTHRU. * genattrtab.c (check_attr_test): Likewise. (write_test_expr): Likewise. * genconfig.c (walk_insn_part): Likewise. * genpreds.c (validate_exp): Adjust fall through comment. (needs_variable): Likewise. * gensupport.c (get_alternatives_number): Add FALLTHRU. (subst_dup): Likewise. * gimple-pretty-print.c (dump_gimple_assign): Likewise. * gimplify.c (gimplify_addr_expr): Adjust fall through comment. (gimplify_scan_omp_clauses): Add FALLTHRU. (goa_stabilize_expr): Likewise. * graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall through comment. * hsa-gen.c (get_address_from_value): Likewise. * ipa-icf.c (sem_function::hash_stmt): Likewise. * ira.c (ira_setup_alts): Add FALLTHRU. * lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through comment. * lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU. * opts.c (common_handle_option): Likewise. * read-rtl.c (read_rtx_code): Likewise. * real.c (round_for_format): Likewise. * recog.c (asm_operand_ok): Likewise. * reginfo.c (reg_scan_mark_refs): Adjust fall through comment. * reload1.c (set_label_offsets): Likewise. (eliminate_regs_1): Likewise. (reload_reg_reaches_end_p): Likewise. * rtlanal.c (commutative_operand_precedence): Add FALLTHRU. (rtx_cost): Likewise. * sched-rgn.c (is_exception_free): Likewise. * simplify-rtx.c (simplify_rtx): Adjust fall through comment. * stor-layout.c (int_mode_for_mode): Likewise. * toplev.c (print_to_asm_out_file): Likewise. (print_to_stderr): Likewise. * tree-cfg.c (gimple_verify_flow_info): Likewise. * tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU. (chrec_fold_multiply): Likewise. (evolution_function_is_invariant_rec_p): Likewise. (for_each_scev_op): Likewise. * tree-data-ref.c (siv_subscript_p): Likewise. (get_references_in_stmt): Likewise. * tree.c (find_placeholder_in_expr): Adjust fall through comment. (substitute_in_expr): Likewise. (type_cache_hasher::equal): Likewise. (walk_type_fields): Likewise. * var-tracking.c (adjust_mems): Add FALLTHRU. (set_dv_changed): Adjust fall through comment. * varasm.c (default_function_section): Add FALLTHRU. gcc/c-family/ * c-common.c (scalar_to_vector): Adjust fall through comment. * c-opts.c (c_common_handle_option): Likewise. * c-pragma.c (handle_pragma_pack): Add FALLTHRU. * c-pretty-print.c (c_pretty_printer::postfix_expression): Adjust fall through comment. * cilk.c (extract_free_variables): Add FALLTHRU. gcc/c/ * c-parser.c (c_parser_external_declaration): Add FALLTHRU. (c_parser_postfix_expression): Likewise. * c-typeck.c (build_unary_op): Adjust fall through comment. (c_mark_addressable): Likewise. gcc/cp/ * call.c (add_builtin_candidate): Add FALLTHRU. (build_integral_nontype_arg_conv): Adjust fall through comment. (build_new_op_1): Add FALLTHRU. (convert_like_real): Adjust fall through comment. * class.c (fixed_type_or_null): Likewise. * constexpr.c (cxx_eval_constant_expression): Likewise. (potential_constant_expression_1): Likewise. Add FALLTHRU. * cp-gimplify.c (cp_gimplify_expr): Adjust fall through comment. (cp_fold): Add FALLTHRU. * cvt.c (build_expr_type_conversion): Adjust fall through comment. * cxx-pretty-print.c (pp_cxx_unqualified_id): Add FALLTHRU. (pp_cxx_qualified_id): Likewise. (cxx_pretty_printer::constant): Adjust fall through comment. (cxx_pretty_printer::primary_expression): Add FALLTHRU. (pp_cxx_pm_expression): Adjust fall through comment. (cxx_pretty_printer::expression): Add FALLTHRU. (cxx_pretty_printer::declaration_specifiers): Reformat code. (pp_cxx_type_specifier_seq): Adjust fall through comment. (pp_cxx_ptr_operator): Likewise. Add FALLTHRU. * error.c (dump_type): Adjust fall through comment. (dump_decl): Likewise. * mangle.c (write_type): Likewise. * method.c (synthesized_method_walk): Add FALLTHRU. * name-lookup.c (arg_assoc_type): Likewise. * parser.c (cp_lexer_print_token): Adjust fall through comment. (cp_parser_primary_expression): Add FALLTHRU. (cp_parser_operator): Likewise. * pt.c (find_parameter_packs_r): Likewise. (tsubst_aggr_type): Adjust fall through comment. * semantics.c (finish_omp_clauses): Add FALLTHRU. * tree.c (lvalue_kind): Likewise. gcc/fortran/ * decl.c (match_attr_spec): Add FALLTHRU. * primary.c (match_arg_list_function): Likewise. * resolve.c (resolve_operator): Adjust fall through comment. (fixup_charlen): Add FALLTHRU. (resolve_allocate_expr): Adjust fall through comment. * trans-array.c (gfc_conv_ss_startstride): Add FALLTHRU. * trans-intrinsic.c (gfc_conv_intrinsic_len): Adjust fall through comment. gcc/java/ * expr.c (java_truthvalue_conversion): Adjust fall through comment. * jcf-io.c (verify_constant_pool): Likewise. * typeck.c (promote_type): Likewise. gcc/objc/ * objc-encoding.c (encode_type): Add FALLTHRU. libcpp/ * lex.c (search_line_fast): Add FALLTHRU. (_cpp_lex_direct): Likewise. (cpp_token_val_index): Adjust fall through comment. * macro.c (parse_params): Add FALLTHRU. * pch.c (count_defs): Adjust fall through comment. (write_defs): Likewise. libiberty/ * cp-demangle.c (d_print_mod): Add FALLTHRU. From-SVN: r239410
Marek Polacek committed -
PR c/7652 * tree-complex.c (expand_complex_division): Add missing break. From-SVN: r239409
Marek Polacek committed -
PR sanitizer/71042 * tsan/tsan_platform_linux.cc: Cherry-pick upstream r278292. * tsan/tsan_rtl_aarch64.S: Likewise. From-SVN: r239407
Jakub Jelinek committed -
2016-08-12 Richard Biener <rguenther@suse.de> * passes.c (execute_todo): Do not push/pop TV_TODO. (execute_one_ipa_transform_pass): Move timevar push/pop TODO execution. (execute_one_pass): Likewise. * common.opt (ftime-report-details): New switch. * doc/invoke.texi (ftime-report-details): Document. * timevar.h (timer::print_row): Adjust signature. (timer::all_zero): New static helper. (timer::child_map_t): New typedef. (timer::time_var_def): Add children field. * timevar.c (timer::named_items::print): Adjust. (timer::~timer): Free timevar recorded children. (timer::pop_internal): When -ftime-report-details record time spent in sub-timevars. (timer::print_row): Adjust. (timer::print): Print sub-timevar stats, use all_zero. * timevar.def (TV_TODO): Remove. From-SVN: r239406
Richard Biener committed -
2016-08-12 Richard Biener <rguenther@suse.de> PR tree-optimization/72851 * tree-ssa-propagate.c: Include cfganal.h. Rewrite block and stmt worklists to use bitmaps indexed in execution order. (executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head, bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove. (cfg_blocks): Make a bitmap. (bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt): New globals. (cfg_blocks_empty_p): Adjust. (cfg_blocks_add): Likewise. (cfg_blocks_get): Likewise. (add_ssa_edge): Likewise. (add_control_edge): Likewise. (simulate_stmt): Likewise. (process_ssa_edge_worklist): Likewise. (simulate_block): Likewise. (ssa_prop_init): Compute PRE order and stmt UIDs. (ssa_prop_fini): Adjust. (ssa_propagate): Adjust. * gcc.dg/torture/pr72851.c: New testcase. From-SVN: r239405
Richard Biener committed -
tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if the currently executable edges have fixed ranges. 2016-08-12 Richard Biener <rguenther@suse.de> * tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if the currently executable edges have fixed ranges. Always go through update_value_range. From-SVN: r239404
Richard Biener committed -
This implements <http://dwarfstd.org/ShowIssue.php?issue=141215.3>, a proposal already accepted for inclusion in DWARF-5, but using DW_AT_GNU_defaulted instead of DW_AT_defaulted as the attribute name, because the attribute id for DW_AT_defaulted is not yet publicly available. for include/ChangeLog PR debug/63240 * dwarf2.def (DW_AT_deleted, DW_AT_defaulted): New. * dwarf2.h (enu dwarf_defaulted_attribute): New. for gcc/ChangeLog PR debug/63240 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Const_tree-ify. (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Likewise. (LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Set default. (LANG_HOOKS_DECLS): Add it. * langhooks.h (struct lang_hooks_for_decls): Add function_decl_defaulted. Const_tree-ify function_decl_explicit_p and function_decl_deleted_p. * dwarf2out.c (gen_subprogram_die): Add DW_AT_defaulted attribute. Add DW_AT_deleted instead of DW_AT_GNU_deleted, also at strict DWARF v5. for gcc/cp/ChangeLog PR debug/63240 * cp-objcp-common.c (cp_function_decl_defaulted): New. (cp_function_decl_explicit_p): Const_tree-ify. (cp_function_decl_deleted_p): Likewise. * cp-objcp-common.h (cp_function_decl_defaulted): Declare. (cp_function_decl_explicit_p): Const_tree-ify. (cp_function_decl_deleted_p): Likewise. (LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Redefine. for gcc/testsuite/ChangeLog PR debug/63240 * g++.dg/debug/dwarf2/defaulted-member-function-1.C: New. * g++.dg/debug/dwarf2/defaulted-member-function-2.C: New. * g++.dg/debug/dwarf2/defaulted-member-function-3.C: New. * g++.dg/debug/dwarf2/deleted-member-function.C: Expect DW_AT_deleted. From-SVN: r239403
Alexandre Oliva committed -
Although C++ reference types, denoted by DW_TAG_reference_type in DWARFv2+ debug info, are unchangeable, we output names of reference type with DW_TAG_const_type, because internally we mark such variables as TREE_READONLY. That's an internal implementation detail that shouldn't leak to debug information. This patch fixes this. for gcc/ChangeLog PR debug/55641 * dwarf2out.c (decl_quals): Don't map TREE_READONLY to TYPE_QUAL_CONST in reference-typed decls. for gcc/testsuite/ChangeLog PR debug/55641 * g++.dg/debug/dwarf2/ref-1.C: New. From-SVN: r239402
Alexandre Oliva committed -
We used to emit, in debug information, the values bound to pointer to member function template parameters only when they were NULL or virtual member functions, because those can be represented with DW_AT_const_value. In order to represent the symbolic pointer to member function constants for non-virtual member functions, we'd need to be able to emit relocations for part of DW_AT_const_value, which we don't. The more viable alternative is to use DW_AT_location to represent such values, as slated for inclusion in DWARFv5, according to <URL:http://www.dwarfstd.org/ShowIssue.php?issue=130412.1>. With this patch, when we can't emit a DW_AT_const_value, we emit each "member" of the pointer to member function "record" as a DW_OP_stack_value DW_OP_piece, as long as the referenced member function is output in the same translation unit, otherwise we'd get relocations to external symbols, something to avoid in debug sections. for gcc/ChangeLog PR debug/49366 * dwarf2out.c (loc_list_from_tree_1): Expand some CONSTRUCTORs in DW_OP_pieces, just enough to handle pointers to member functions. (gen_remaining_tmpl_value_param_die_attribute): Use a location expression on DWARFv5 if a constant value doesn't work. for gcc/testsuite/ChangeLog PR debug/49366 * g++.dg/debug/dwarf2/template-params-12.H: New. * g++.dg/debug/dwarf2/template-params-12f.C: New. * g++.dg/debug/dwarf2/template-params-12g.C: New. * g++.dg/debug/dwarf2/template-params-12n.C: New. * g++.dg/debug/dwarf2/template-params-12s.C: New. * g++.dg/debug/dwarf2/template-params-12u.C: New. * g++.dg/debug/dwarf2/template-params-12v.C: New. * g++.dg/debug/dwarf2/template-params-12w.C: New. From-SVN: r239401
Alexandre Oliva committed
-