- 04 Dec, 2015 2 commits
-
-
gcc/cp/ * parser.c (cp_ensure_no_oacc_routine): Update error message. (cp_parser_oacc_routine): Likewise. (cp_parser_late_parsing_oacc_routine): Likewise. Update comment describing this function. (cp_finalize_oacc_routine): Update error message. From-SVN: r231243
Cesar Philippidis committed -
From-SVN: r231242
GCC Administrator committed
-
- 03 Dec, 2015 19 commits
-
-
Short circuit for !flag_strict_aliasing (get_alias_set): Remove flag_strict_aliasing check. (new_alias_set): Likewise. From-SVN: r231239
Jan Hubicka committed -
gcc/ * config/aarch64/aarch64-cores.def: Use the Exynos M1 cost model. * config/aarch64/aarch64.c (exynosm1_addrcost_table): New variable. (exynosm1_regmove_cost): Likewise. (exynosm1_vector_cost): Likewise. (exynosm1_tunings): Likewise. * config/arm/aarch-cost-tables.h (exynosm1_extra_costs): Likewise. * config/arm/arm.c (arm_exynosm1_tune): Likewise. * config/arm/arm-cores.def: Use the Exynos M1 cost model. From-SVN: r231233
Evandro Menezes committed -
Alan Lawrence <alan.lawrence@arm.com> Richard Biener <richard.guenther@gmail.com> * cfgexpand.c (pass_expand::execute): Replace call to redirect_edge_var_map_destroy with redirect_edge_var_map_empty. * tree-ssa.c (delete_tree_ssa): Likewise. * function.c (set_cfun): Call redirect_edge_var_map_empty. * passes.c (execute_one_ipa_transform_pass, execute_one_pass): Likewise. * tree-ssa.h (redirect_edge_var_map_destroy): Remove. (redirect_edge_var_map_empty): New. * tree-ssa.c (redirect_edge_var_map_destroy): Remove. (redirect_edge_var_map_empty): New. Co-Authored-By: Richard Biener <richard.guenther@gmail.com> From-SVN: r231232
Alan Lawrence committed -
PR tree-optimization/68599 * loop-init.c (rtl_loop_init): Set LOOPS_HAVE_RECORDED_EXITS in call to loop_optimizer_init. * loop-iv.c (get_simple_loop_desc): Only allow unsafe loop optimization to drop the assumptions/infinite notations if the loop has a single exit. From-SVN: r231231
Jeff Law committed -
As Bernd requested, this patch adds "This pattern cannot FAIL" to the documentation of optabs that came to be mapped to interal functions. For consistency I did the same for optabs that were already being used for internal functions. Many of the optabs weren't documented in the first place, so I added entries for the missing ones. Also, there were some inaccuracies in the documentation of the rounding optabs. The bitcount optabs said that operand 0 has mode @var{m} and that operand 1 is under target control, whereas it should be the other way around. Tested on x86_64-linux-gnu. gcc/ * doc/md.texi (vec_load_lanes@var{m}@var{n}): Document that the pattern cannot FAIL. (vec_store_lanes@var{m}@var{n}): Likewise. (maskload@var{m}@var{n}): Likewise. (maskstore@var{m}@var{n}): Likewise. Fix a cut-&-paste error in the name of the pattern. (rsqrt@var{m}2): Document that mode m must be a scalar or vector floating-point mode and that all operands have that mode. (fmin@var{m}3, fmax@var{m}3): Likewise. Document that the pattern cannot FAIL. (sqrt@var{m}2): Document that mode m must be a scalar or vector floating-point mode, that all operands have that mode, and that the patterns cannot FAIL. Remove previous documentation referring to @code{double} and @code{float}. (fmod@var{m}3, remainder@var{m}3, cos@var{m}2, sin@var{m}2) (sincos@var{m}3, log@var{m}2, pow@var{m}3, atan2@var{m}3) (copysign@var{m}3): Likewise. (exp@var{m}2): Likewise. Explicitly state the base. (floor@var{m}2): As for sqrt@var{m}2, but also specify the operands. (btrunc@var{m}2, rint@var{m}2): Likewise. (round@var{m}2): Likewise. Fix incorrect description of rounding effect. (ceil@var{m}2): As for round@var{m}2. (nearbyint@var{m}2): As for floor@var{m}2, but also mention that the instruction must not raise an inexact condition. (scalb@var{m}3): Document previously-undocumented pattern (ldexp@var{m}3, tan@var{m}2, asin@var{m}2, acos@var{m}2) (atan@var{m}2, expm1@var{m}2, exp10@var{m}2, exp2@var{m}2) (log1p@var{m}2, log10@var{m}2, log2@var{m}2, logb@var{m}2) (significand@var{m}2): Likewise. (ffs@var{m}2): Fix the description of the modes, so that operand 1 has mode m and operand 0 is defined more freely. Document that @var{m} can be a scalar or vector integer mode and that the pattern is not allowed to FAIL. (clz@var{m}2, ctz@var{m}2, popcount@var{m}2, parity@var{m}2): Likewise. (clrsb@var{m}2): Likewise, except that the description of the mode was missing in this case. From-SVN: r231230
Richard Sandiford committed -
All current uses of builtin_reciprocal convert 1.0/sqrt into rsqrt. This patch adds an rsqrt optab and associated internal function for that instead. We can then pick up the vector forms of rsqrt automatically, fixing an AArch64 regression from my internal_fn patches. With that change, builtin_reciprocal only needs to handle target-specific built-in functions. I've restricted the hook to those since, if we need a reciprocal of another standard function later, I think there should be a strong preference for adding a new optab and internal function for it, rather than hiding the code in a backend. Three targets implement builtin_reciprocal: aarch64, i386 and rs6000. i386 and rs6000 already used the obvious rsqrt<mode>2 pattern names for the instructions, so they pick up the new code automatically. aarch64 needs a slight rename. mn10300 is unusual in that its native operation is rsqrt, and sqrt is approximated as 1.0/rsqrt. The port also uses rsqrt<mode>2 for the rsqrt pattern, so after the patch we now pick it up as a native operation. Two other ports define rsqrt patterns: sh and v850. AFAICT these patterns aren't currently used, but I think the patch does what the authors of the patterns would have expected. There's obviously some risk of fallout though. Tested on x86_64-linux-gnu, aarch64-linux-gnu, arm-linux-gnueabihf (as a target without the hooks) and powerpc64-linux-gnu. gcc/ * internal-fn.def (RSQRT): New function. * optabs.def (rsqrt_optab): New optab. * doc/md.texi (rsqrtM2): Document. * target.def (builtin_reciprocal): Replace gcall argument with a function decl. Restrict hook to machine functions. * doc/tm.texi: Regenerate. * targhooks.h (default_builtin_reciprocal): Update prototype. * targhooks.c (default_builtin_reciprocal): Likewise. * tree-ssa-math-opts.c: Include internal-fn.h. (internal_fn_reciprocal): New function. (pass_cse_reciprocals::execute): Call it, and build a call to an internal function on success. Only call targetm.builtin_reciprocal for machine functions. * config/aarch64/aarch64-protos.h (aarch64_builtin_rsqrt): Remove second argument. * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin_rsqrt): Rename aarch64_rsqrt_<mode>2 to rsqrt<mode>2. (aarch64_builtin_rsqrt): Remove md_fn argument and only handle machine functions. * config/aarch64/aarch64.c (use_rsqrt_p): New function. (aarch64_builtin_reciprocal): Replace gcall argument with a function decl. Use use_rsqrt_p. Remove optimize_size check. Only handle machine functions. Update call to aarch64_builtin_rsqrt. (aarch64_optab_supported_p): New function. (TARGET_OPTAB_SUPPORTED_P): Define. * config/aarch64/aarch64-simd.md (aarch64_rsqrt_<mode>2): Rename to... (rsqrt<mode>2): ...this. * config/i386/i386.c (use_rsqrt_p): New function. (ix86_builtin_reciprocal): Replace gcall argument with a function decl. Use use_rsqrt_p. Remove optimize_insn_for_size_p check. Only handle machine functions. (ix86_optab_supported_p): Handle rsqrt_optab. * config/rs6000/rs6000.c (TARGET_OPTAB_SUPPORTED_P): Define. (rs6000_builtin_reciprocal): Replace gcall argument with a function decl. Remove optimize_insn_for_size_p check. Only handle machine functions. (rs6000_optab_supported_p): New function. From-SVN: r231229
Richard Sandiford committed -
PR target/68471 PR target/68472 * config/i386/i386.c (ix86_mitigate_rop): Don't call compute_bb_for_insn again. Call df_insn_rescan_all. * config/i386/i386.md (set_got_rex64): Override modrm_class. * regrename.c (build_def_use): Ignore stack regs if regstack_completed. testsuite/ * gcc.target/i386/rop1.c: New test. From-SVN: r231228
Bernd Schmidt committed -
gcc/ * config/nvptx/nvptx-protos.h (npvptx_section_from_addr_space): Delete. * config/nvptx/nvptx.c (enum nvptx_data_area): New. (SYMBOL_DATA_AREA, SET_SYMBOL_DATA_AREA): New defines. (nvptx_option_override): Set data ares for worker vars. (nvptx_addr_space_from_sym): Delete. (nvptx_encode_section_info): New. (section_for_sym, section_for_decl): New. (nvptx_maybe_convert_symbolic_operand): Get data area from symbol flags, (nvptx_section_from_addr_space): Delete. (nvptx_section_for_decl): Delete. (nvptx_output_aligned, nvptx_declare_object_name, nvptx_assemble_undefined_decl): Use section_for_decl, remove unnecessary checks. (nvptx_print_operand): Add 'D', adjust 'A'. (nvptx_expand_worker_addr): Adjust unspec generation. (TARGET_ENCODE_SECTION_INFO): Override. * config/nvptx/nvptx.h (ADDR_SPACE_GLOBAL, ADDR_SPACE_SHARED, ADDR_SPACE_CONST, ADDR_SPACE_LOCAL, ADDR_SPACE_PARAM): Delete. * config/nvptx/nvptx.md (UNSPEC_FROM_GLOBAL, UNSPEC_FROM_LOCAL, UNSPEC_FROM_PARAM, UNSPEC_FROM_SHARED, UNSPEC_FROM_CONST, UNSPEC_TO_GLOBAL, UNSPEC_TO_LOCAL, UNSPEC_TO_PARAM, UNSPEC_TO_SHARED, UNSPEC_TO_CONST): Delete. (UNSPEC_TO_GENERIC): New. (nvptx_register_or_symbolic_operand): Delete. (cvt_code, cvt_name, cvt_str): Delete. (convaddr_<cvt_name><mode> [P]): Delete. (convaddr_<mode> [P]): New. gcc/testsuite/ * gcc.target/nvptx/decl.c: New. * gcc.target/nvptx/uninit-decl.c: Robustify regexps. From-SVN: r231227
Nathan Sidwell committed -
[RTL-ifcvt] PR rtl-optimization/68624: Clean up logic that checks for clobbering conflicts across basic blocks PR rtl-optimization/68624 * ifcvt.c (noce_try_cmove_arith): Check clobbers of temp regs in both blocks if they exist and simplify the logic choosing the order to emit them in. * gcc.c-torture/execute/pr68624.c: New test. From-SVN: r231226
Kyrylo Tkachov committed -
2015-12-03 Richard Biener <rguenther@suse.de> PR tree-optimization/66051 * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction on load group size. Do not pass in vectorization_factor. (vect_transform_slp_perm_load): Do not require any permute support. (vect_build_slp_tree): Do not pass in vectorization factor. (vect_analyze_slp_instance): Do not compute vectorization factor estimate. Use vector size instead of vectorization factor estimate to split store groups for BB vectorization. * gcc.dg/vect/slp-42.c: New testcase. From-SVN: r231225
Richard Biener committed -
cfgexpand.c (expand_gimple_stmt_1): Return statement with DECL as return value is allowed to have NULL bounds. gcc/ * cfgexpand.c (expand_gimple_stmt_1): Return statement with DECL as return value is allowed to have NULL bounds. From-SVN: r231224
Ilya Enkovich committed -
2015-12-03 Tom de Vries <tom@codesourcery.com> * graphite-isl-ast-to-gimple.c (binary_op_to_tree) (gcc_expression_from_isl_expr_op): Guard isl_ast_op_zdiv_r usage with HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS. From-SVN: r231223
Tom de Vries committed -
From-SVN: r231222
Kirill Yukhin committed -
re PR tree-optimization/67800 (Missed vectorization opportunity on x86 (DOT_PROD_EXPR in non-reduction)) 2015-12-03 Richard Biener <rguenther@suse.de> PR tree-optimization/67800 PR tree-optimization/68333 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Restore restriction to reduction contexts but allow SLP reductions as well. (vect_recog_sad_pattern): Likewise. (vect_recog_widen_sum_pattern): Likewise. * gcc.target/i386/vect-pr67800.c: New testcase. From-SVN: r231221
Richard Biener committed -
2015-12-03 Richard Biener <rguenther@suse.de> PR tree-optimization/68639 * tree-vect-data-refs.c (dr_group_sort_cmp): Split groups belonging to different loops. (vect_analyze_data_ref_accesses): Likewise. * gfortran.fortran-torture/compile/pr68639.f90: New testcase. From-SVN: r231220
Richard Biener committed -
* ipa-pure-const.c (ignore_edge_for_pure_const): New function. (propagate_pure_const): Use it; fix comments and optimize loops. From-SVN: r231219
Jan Hubicka committed -
* ipa-pure-const.c (ignore_edge): Rename to ... (ignore_edge_for_nothrow) ... this one; also ignore eges to interposable functions or ones that can not throw. (propagate_nothrow): Fix handling of availability. From-SVN: r231218
Jan Hubicka committed -
PR ipa/68184 * g++.dg/torture/pr68184.C: New testcase. * cgraphunit.c (cgraph_node::analyze): Set can_throw_external. From-SVN: r231217
Jan Hubicka committed -
From-SVN: r231216
GCC Administrator committed
-
- 02 Dec, 2015 19 commits
-
-
PR preprocessor/57580 * c-ppoutput.c (print): Change printed field to bool. Move src_file last for smaller padding. (init_pp_output): Set print.printed to false instead of 0. (scan_translation_unit): Fix up formatting. Set print.printed to true after printing something other than newline. (scan_translation_unit_trad): Set print.printed to true instead of 1. (maybe_print_line_1): Set print.printed to false instead of 0. (print_line_1): Likewise. (do_line_change): Set print.printed to true instead of 1. (cb_define, dump_queued_macros, cb_include, cb_def_pragma, dump_macro): Set print.printed to false after printing newline. * c-c++-common/cpp/pr57580.c: New test. * c-c++-common/gomp/pr57580.c: New test. From-SVN: r231213
Jakub Jelinek committed -
From ISL's documentation, isl_ast_op_zdiv_r is equal to zero iff the remainder on integer division is zero. Code generate a modulo operation for that. * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Handle isl_ast_op_zdiv_r. (gcc_expression_from_isl_expr_op): Same. * gcc.dg/graphite/id-28.c: New. Co-Authored-By: Sebastian Pop <s.pop@samsung.com> From-SVN: r231212
Aditya Kumar committed -
on the testcase we used to generate code in the function entry bb_0, and that choked the cfg verifier. * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Check that insertion point is still in the region. * gfortran.dg/graphite/id-26.f03: New. Co-Authored-By: Sebastian Pop <s.pop@samsung.com> From-SVN: r231211
Aditya Kumar committed -
gcc/cp/ * Make-lang.in (check-c++1z, check-c++-all): New. gcc/testsuite/ * lib/g++.exp: Handle --stds= option. * lib/g++-dg.exp (g++-dg-runtest): Use it. From-SVN: r231209
Jason Merrill committed -
2015-12-02 Tobias Burnus <burnus@net-b.de> Alessandro Fanfarillo <fanfarillo.gcc@gmail.com> * check.c (gfc_check_event_query): New function. * dump-parse-tree.c (show_code_node): Handle EXEC_EVENT_POST, EXEC_EVENT_WAIT. * expr.c (gfc_check_vardef_context): New check for event variables definition. * gfortran.h (gfc_statement): Add ST_EVENT_POST, ST_EVENT_WAIT. (gfc_isym_id): GFC_ISYM_EVENT_QUERY. (struct symbol_attribute): New field. (gfc_exec_op): Add EXEC_EVENT_POST and EXEC_EVENT_WAIT. * gfortran.texi: Document about new events functions and minor changes. * interface.c (compare_parameter): New check. (gfc_procedure_use): New check for explicit procedure interface. (add_subroutines): Add event_query. * intrinsic.h (gfc_check_event_query,gfc_resolve_event_query): New prototypes. * iresolve.c (gfc_resolve_event_query): New function. * iso-fortran-env.def (event_type): New type. * match.c (event_statement,gfc_match_event_post,gfc_match_event_wait): New functions. (gfc_match_name): New event post and event wait. * match.h (gfc_match_event_post,gfc_match_event_wait): New prototypes. * module.c (ab_attribute): Add AB_EVENT_COMP. (attr_bits): Likewise. (mio_symbol_attribute): Handle event_comp attribute. * parse.c (decode_statement): Add ST_EVENT_POST, ST_EVENT_WAIT. (next_statement): Add ST_EVENT_POST, ST_EVENT_WAIT. (gfc_ascii_statement): Add ST_EVENT_POST, ST_EVENT_WAIT. (parse_derived): Check for event_type components. * resolve.c (resolve_allocate_expr): Check for event variable def. (resolve_lock_unlock): Renamed to resolve_lock_unlock_event. It includes logic for locks and events. (gfc_resolve_code): Call it. (gfc_resolve_symbol): New check for event variable to be a corray. * st.c (gfc_free_statement): Handle new EXEC_EVENT_POST and EXEC_EVENT_WAIT. * trans-decl.c (gfor_fndecl_caf_event_post,gfor_fndecl_caf_event_wait, gfor_fndecl_caf_event_query): New global variables. (generate_coarray_sym_init): Checking for event_type. (gfc_conv_procedure_call): Check for C bind attribute. * trans-intrinsic.c (conv_intrinsic_event_query): New function. (conv_intrinsic_move_alloc): Call it. * trans-stmt.c (gfc_trans_lock_unlock): Passing address of actual argument. (gfc_trans_sync): Likewise. (gfc_trans_event_post_wait): New function. * trans-stmt.h (gfc_trans_event_post_wait): New prototype. * trans-types.c (gfc_get_derived_type): Integer_kind as event_type. * trans.c (gfc_allocate_using_lib): New argument and logic for events. (gfc_allocate_allocatable): Passing new argument. (trans_code): Handle EXEC_EVENT_POST, EXEC_EVENT_WAIT. * trans.h (gfc_coarray_type): New elements. (gfor_fndecl_caf_event_post,gfor_fndecl_caf_event_wait, gfor_fndecl_caf_event_query): Declare them. 2015-12-02 Tobias Burnus <burnus@net-b.de> Alessandro Fanfarillo <fanfarillo.gcc@gmail.com> * gfortran.dg/coarray/event_1.f90: New. * gfortran.dg/coarray/event_2.f90: New. Co-Authored-By: Alessandro Fanfarillo <fanfarillo.gcc@gmail.com> From-SVN: r231208
Tobias Burnus committed -
In case ISL did some loop peeling, like this: S_8(0); for (int c1 = 1; c1 <= 5; c1 += 1) { S_8(c1); } S_8(6); we should not copy loop-phi nodes in S_8(0) or in S_8(6). PR tree-optimization/68550 * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Add dump. (copy_bb_and_scalar_dependences): Do not code generate loop peeled statements. * gfortran.dg/graphite/pr68550-1.f90: New. * gfortran.dg/graphite/pr68550-2.f90: New. Co-Authored-By: Sebastian Pop <s.pop@samsung.com> From-SVN: r231206
Aditya Kumar committed -
PR c/68513 * gcc.dg/pr68513.c: New test. From-SVN: r231205
Marek Polacek committed -
gcc/fortran/ PR fortran/63861 * openmp.c (gfc_match_omp_clauses): Allow subarrays for acc reductions. (resolve_omp_clauses): Error on any acc reductions on arrays. gcc/testsuite/ * gfortran.dg/goacc/array-reduction.f90: New test. * gfortran.dg/goacc/assumed.f95: Update expected diagnostics. * gfortran.dg/goacc/coarray.f95: Likewise. * gfortran.dg/goacc/coarray_2.f90: Likewise. * gfortran.dg/goacc/reduction-2.f95: Likewise. * gfortran.dg/goacc/reduction.f95: Likewise. From-SVN: r231204
Cesar Philippidis committed -
PR c++/67337 * mangle.c (write_template_prefix): Guard against context==NULL. From-SVN: r231203
Markus Trippelsdorf committed -
* configure.ac: Check assembler support for R_PPC64_ENTRY relocation. * configure: Regenerate. * config.in: Regenerate. * config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p): New function. (rs6000_output_function_prologue): Use it instead of checking cfun->machine->r2_setup_needed. Use internal labels instead of GNU as local label extension. Handle ELFv2 large code model. (rs6000_output_mi_thunk): Do not set cfun->machine->r2_setup_needed. (rs6000_elf_declare_function_name): Handle ELFv2 large code model. From-SVN: r231202
Ulrich Weigand committed -
re PR target/68647 (__builtin_popcountll doesn't generate popcnt instructions when targeting -mpopcnt on x86_32) PR target/68647 * optabs.c (expand_doubleword_popcount, expand_doubleword_parity): New functions. (expand_unop): Use them. * gcc.target/i386/pr68647.c: New test. From-SVN: r231201
Jakub Jelinek committed -
PR c++/68653 * tree.c (nonnull_arg_p): Allow OFFSET_TYPE. * g++.dg/warn/nonnull3.C: New test. From-SVN: r231200
Marek Polacek committed -
./: PR go/66147 * Makefile.tpl (HOST_EXPORTS): Add XGCC_FLAGS_FOR_TARGET. * Makefile.in: Regenerate. gotools/: PR go/66147 * Makefile.am (GOCOMPILER): In NATIVE case, add $(XGCC_FLAGS_FOR_TARGET). From-SVN: r231199
Ian Lance Taylor committed -
gcc/c-family/ * c-common.c (fold_for_warn): New. (warn_logical_operator, warn_tautological_cmp) (check_function_arguments_recurse, maybe_warn_bool_compare): Use it. gcc/cp/ * call.c (build_new_op_1): Don't fold arguments to warn_logical_operator or maybe_warn_bool_compare. From-SVN: r231198
Jason Merrill committed -
* cp-gimplify.c (cp_fold_maybe_rvalue, cp_fold_rvalue): New. (c_fully_fold): Use cp_fold_rvalue. (cp_fold): Use them for rvalue operands. From-SVN: r231197
Jason Merrill committed -
gcc/c-family/ * c-common.c (c_disable_warnings, c_enable_warnings, c_fully_fold) (c_fully_fold_internal, decl_constant_value_for_optimization): Move to c/c-fold.c. * c-common.h: Don't declare decl_constant_value_for_optimization. gcc/c/ * c-fold.c (c_disable_warnings, c_enable_warnings, c_fully_fold) (c_fully_fold_internal, decl_constant_value_for_optimization): Move from c-common.c. * c-tree.h: Declare decl_constant_value_for_optimization. * Make-lang.in (C_AND_OBJC_OBJS): Add c-fold.o. gcc/cp/ * cp-gimplify.c (c_fully_fold): Define. From-SVN: r231196
Jason Merrill committed -
From-SVN: r231195
Jason Merrill committed -
PR c/68162 reports a spurious warning about incompatible types involving arrays of const double, constructed in one place using a typedef for const double and in another place literally using const double. The problem is that the array of the typedef was incorrectly constructed without a TYPE_MAIN_VARIANT being an array of unqualified elements as it should be (though it seems some more recent change resulted in this producing incorrect diagnostics, likely the support for C++-style handling of arrays of qualified type). This patch fixes the logic in grokdeclarator to determine first_non_attr_kind, which is used to determine whether it is necessary to use the TYPE_MAIN_VARIANT of the type in the declaration specifiers. However, fixing that logic introduces a failure of gcc.dg/debug/dwarf2/pr47939-4.c, a test introduced along with first_non_attr_kind. Thus, it is necessary to track the original qualified typedef when qualifying an array type, to use it rather than a newly-constructed type, to avoid regressing regarding typedef names in debug info. This is done along lines I suggested in <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47939#c6>: track the original type and the number of levels of array indirection at which it appears, and, in possibly affected cases, pass extra arguments to c_build_qualified_type (with default arguments to avoid needing to pass those extra arguments explicitly everywhere). Given Richard's recent fix to dwarf2out.c, this allows the C bug to be fixed without causing debug information regressions. Bootstrapped with no regressions on x86_64-pc-linux-gnu. gcc/c: PR c/68162 * c-decl.c (grokdeclarator): Set first_non_attr_kind before following link from declarator to next declarator. Track original qualified type and pass it to c_build_qualified_type. * c-typeck.c (c_build_qualified_type): Add arguments orig_qual_type and orig_qual_indirect. gcc/c-family: PR c/68162 * c-common.h (c_build_qualified_type): Add extra default arguments. gcc/cp: PR c/68162 * tree.c (c_build_qualified_type): Add extra arguments. gcc/testsuite: PR c/68162 * gcc.dg/pr68162-1.c: New test. From-SVN: r231194
Joseph Myers committed -
2015-12-02 Matthias Klose <doko@ubuntu.com> * configure.ac: Move AM_ENABLE_MULTILIB before GCC_LIBSTDCXX_RAW_CXX_FLAGS. * configure: Regenerate. From-SVN: r231193
Matthias Klose committed
-