-
Notifications
You must be signed in to change notification settings - Fork 27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uber 8.0 #10
Open
kondors1995
wants to merge
3,783
commits into
UBERTC:uber-8.0
Choose a base branch
from
kondors1995:uber-8.0
base: uber-8.0
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Uber 8.0 #10
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(is_char_array): Take a type instead of a declaration. (dump_ada_array_type): Likewise. (is_simple_enum): Minor tweak. (dump_ada_enum_type): New function extracted from... (dump_ada_node) <ENUMERAL_TYPE>: ...here. Invoke it. <INTEGER_TYPE>: Remove unreachable code. <RECORD_TYPE>: Likewise. Minor tweaks. (dump_nested_type) <ARRAY_TYPE>: Adjust to above changes. <ENUMERAL_TYPE>: New case. <RECORD_TYPE>: Factor out common code. (dump_ada_declaration) <ARRAY_TYPE>: Adjust to above changes. Minor tweaks. Deal with enumeral types. (dump_ada_structure): Minor tweaks. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258067 138bc75d-0d04-0410-961f-82ee72b054a4
…erals gcc/testsuite: PR preprocessor/84517 * g++.dg/cpp0x/udlit-macros.C: Expect a warning for ""__FILE__. libcpp: PR preprocessor/84517 * lex.c (is_macro_not_literal_suffix): New function. (lex_raw_string, lex_string): Use is_macro_not_literal_suffix to decide when to issue -Wliteral-suffix warnings. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258069 138bc75d-0d04-0410-961f-82ee72b054a4
PR tree-optimization/84584 * graphite-scop-detection.c (scop_detection::add_scop): Discard SCoPs with fake exit edge. * gcc.dg/graphite/pr84584.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258070 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc.target/powerpc/pr83399.c: Only run on Linux. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258071 138bc75d-0d04-0410-961f-82ee72b054a4
Revision 258001 doesn't change config/i386/i386.opt. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258073 138bc75d-0d04-0410-961f-82ee72b054a4
superfluous parentheses and trailing spaces. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258074 138bc75d-0d04-0410-961f-82ee72b054a4
* stor-layout.c (update_alignment_for_field): For targetm.ms_bitfield_layout_p (rli->t), if !is_bitfield && !DECL_PACKED (field), do the alignment update, just use only desired_align instead of MAX (type_align, desired_align) as the alignment. (place_field): Don't do known_align < desired_align handling early if targetm.ms_bitfield_layout_p (rli->t) and rli->prev_field is non-NULL, instead do it after rli->prev_field handling and only if not within a bitfield word. For DECL_PACKED (field) use type_align of BITS_PER_UNIT. * gcc.dg/bf-ms-layout.c: Revert 2012-04-26 changes. * gcc.dg/bf-ms-layout-2.c: Revert 2012-02-23 changes. * gcc.dg/bf-ms-layout-4.c: New test. * gcc.dg/bf-ms-layout-5.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258075 138bc75d-0d04-0410-961f-82ee72b054a4
PR fortran/83901 * trans-stmt.c (trans_associate_var): Make sure that the se expression is a pointer type before converting it to the symbol backend_decl type. 2018-02-28 Paul Thomas <[email protected]> PR fortran/83901 * gfortran.dg/associate_37.f90: New test. PR fortran/83344 * gfortran.dg/associate_36.f90: Add Steve Kargl as contributer. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258076 138bc75d-0d04-0410-961f-82ee72b054a4
…g/ext/attr-pure.C fail gcc/cp/ChangeLog: * decl.c (duplicate_decls): Fully merge attributes const, pure, and malloc. gcc/testsuite/ChangeLog: * g++.dg/ext/attr-malloc-3.C: New test. * g++.dg/ext/attr-const.C: Adjust. Xfail assertions failing due to pre-existing problems. * g++.dg/ext/attr-pure.C: Same. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258077 138bc75d-0d04-0410-961f-82ee72b054a4
instead of warning_at with conditional singular and plural messages where possible. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258078 138bc75d-0d04-0410-961f-82ee72b054a4
PR c++/83503 * pt.c (INCLUDE_STRING): Remove define. (warn_spec_missing_attributes): Use pretty_printer instead of std::string. Fix up inform call so that the list of attributes is in %s argument. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258079 138bc75d-0d04-0410-961f-82ee72b054a4
* parser.c (cp_parser_attributes_opt): Formatting fix. (cp_parser_skip_balanced_tokens, cp_parser_skip_gnu_attributes_opt, cp_parser_skip_std_attribute_spec_seq, cp_parser_skip_attributes_opt): New functions. (cp_parser_member_declaration): Use cp_parser_skip_attributes_opt instead of tentative parse to peek over optional attribute tokens to check for CPP_COLON after them. * g++.dg/cpp0x/pr84609.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258080 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc.target/powerpc/pr84014.c: Use ilp32, not -m32 option. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258081 138bc75d-0d04-0410-961f-82ee72b054a4
(powerpc-ibm-aix[789]*): Default to AIX 7.2. * config/rs6000/aix71.h (TARGET_DEFAULT): Revert to Power4 ISA. * config/rs6000/aix72.h: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258082 138bc75d-0d04-0410-961f-82ee72b054a4
* pt.c (determine_specialization): Check ref-qualifier. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258085 138bc75d-0d04-0410-961f-82ee72b054a4
* c-c++-common/Warray-bounds-2.c: Declare helper static to avoid -fpic test failures. * c-c++-common/Wrestrict-2.c: Same. * c-c++-common/Wstringop-truncation.c: Same. * gcc.dg/Warray-bounds-22.c: Same. * gcc.dg/Wstringop-overflow.c: Same. * gcc.dg/attr-alloc_size-3.c (unsigned_range): Same. (signed_range): Same. (unsigned_anti_range): Same. * gcc.dg/attr-alloc_size-4.c (unsigned_range): Same. (signed_range): Same. (unsigned_anti_range): Same. * gcc.dg/attr-alloc_size-7.c: Same. * gcc.dg/attr-alloc_size-8.c: Same. * gcc.dg/builtin-alloc-size.c: Same. * gcc.dg/builtin-stpncpy.c: Same. * gcc.dg/builtins-nonnull.c: Same. * gcc.dg/nonnull-4.c (g16_1_3_5_7_11_13): Same. * gcc.dg/pr79214.c: Same. * gcc.dg/tree-ssa/builtin-snprintf-warn-1.c: Same. * gcc.dg/tree-ssa/builtin-snprintf-warn-2.c: Same. * gcc.dg/tree-ssa/builtin-sprintf-5.c: Same. * gcc.dg/tree-ssa/builtin-sprintf-warn-11.c: Same. * gcc.dg/tree-ssa/builtin-sprintf-warn-12.c: Same. * gcc.dg/tree-ssa/builtin-sprintf-warn-13.c: Same. * gcc.dg/tree-ssa/builtin-sprintf-warn-14.c: Same. * gcc.dg/tree-ssa/builtin-sprintf-warn-15.c: Same. * gcc.dg/tree-ssa/builtin-sprintf-warn-19.c: Same. * gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Same. * gcc.dg/tree-ssa/builtin-sprintf-warn-9.c: Same. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258089 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258092 138bc75d-0d04-0410-961f-82ee72b054a4
2018-03-01 Tom de Vries <[email protected]> PR rtl-optimization/83327 * lra-int.h (hard_regs_spilled_into): Declare. * lra.c (hard_regs_spilled_into): Define. (init_reg_info): Init hard_regs_spilled_into. * lra-spills.c (assign_spill_hard_regs): Update hard_regs_spilled_into. * lra-lives.c (make_hard_regno_born, make_hard_regno_dead) (process_bb_lives): Handle hard_regs_spilled_into. (lra_create_live_ranges_1): Before doing liveness propagation, clear regs in all_hard_regs_bitmap if set in hard_regs_spilled_into. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258093 138bc75d-0d04-0410-961f-82ee72b054a4
RTL code needs to be consistent about whether it uses the stack pointer, the frame pointer or the argument pointer to access a given part of the frame. alias.c used this to divide accesses into three independent areas. The problem in the PR is that we did this for HARD_FRAME_POINTER_REGNUM even when the register wasn't being used as a frame pointer. We can't do that because the frame pointer is then just any old allocatable register and could certainly point to info accessed through the argument pointer or stack pointer. 2018-03-01 Richard Sandiford <[email protected]> gcc/ PR rtl-optimization/84538 * alias.c (init_alias_target): Add commentary. (init_alias_analysis): Only give HARD_FRAME_POINTER_REGNUM a unique base value if the frame pointer is not eliminated to the stack pointer. gcc/testsuite/ PR rtl-optimization/84538 * gcc.dg/torture/pr84538.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258094 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/testsuite/ PR rtl-optimization/84528 * gcc.dg/torture/pr84538.c: Rename to... * gcc.dg/torture/pr84528.c: ...this. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258095 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258096 138bc75d-0d04-0410-961f-82ee72b054a4
PR fortran/84538 * class.c (class_array_ref_detected): Remove the condition that there be no reference after the array reference. (find_intrinsic_vtab): Remove excess whitespace. * trans-array.c (gfc_conv_scalarized_array_ref): Rename 'tmp' as 'base and call build_class_array_ref earlier. 2018-03-01 Paul Thomas <[email protected]> PR fortran/84538 * gfortran.dg/class_array_23.f03: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258097 138bc75d-0d04-0410-961f-82ee72b054a4
PR fortran/84219 * target-memory.c (gfc_interpret_derived): Assert that BT_VOID components are caf tokens. (gfc_target_interpret_expr): Treat BT_VOID expressions as integers. 2018-03-01 Paul Thomas <[email protected]> PR fortran/84219 * gfortran.dg/coarray_47.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258098 138bc75d-0d04-0410-961f-82ee72b054a4
This issue was caught with assert checking enabled but is not a functional bug as XINT(x, 0) happens to overlay INTVAL(x) anyway. gcc/ * config/mips/mips.c (mips_final_prescan_insn): Fix incorrect XINT with INTVAL. (mips_final_postscan_insn): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258099 138bc75d-0d04-0410-961f-82ee72b054a4
PR debug/84645 * dwarf2out.c (gen_variable_die): Properly handle late VLA type annotation with LTO when debug was disabled at compile-time. * gfortran.dg/lto/pr84645_0.f90: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258100 138bc75d-0d04-0410-961f-82ee72b054a4
2018-03-01 Martin Liska <[email protected]> PR sanitizer/82484 * sanopt.c (sanitize_rewrite_addressable_params): Do not handle volatile arguments. 2018-03-01 Martin Liska <[email protected]> PR sanitizer/82484 * gcc.dg/asan/pr82484.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258101 138bc75d-0d04-0410-961f-82ee72b054a4
* decl.c (start_decl): Handle partial specialization of member variable template. * pt.c (determine_specialization): Allow partial specialization of member variable template without specializing enclosing class. (process_partial_specialization): Improve error message. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258102 138bc75d-0d04-0410-961f-82ee72b054a4
PR c++/79410 * g++.dg/torture/pr79410.C: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258106 138bc75d-0d04-0410-961f-82ee72b054a4
* constexpr.c (require_rvalue_constant_expression): New function. * cp-tree.h: Declare it. * semantics.c (finish_static_assert): Use it instead of require_potential_rvalue_constant_expression. * g++.dg/cpp0x/static_assert14.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258107 138bc75d-0d04-0410-961f-82ee72b054a4
* tree.c (stabilize_reference_1): Return save_expr (e) for STATEMENT_LIST even if it doesn't have side-effects. * g++.dg/debug/pr84704.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258470 138bc75d-0d04-0410-961f-82ee72b054a4
* constexpr.c (find_array_ctor_elt): Don't use elt reference after first potential CONSTRUCTOR_ELTS reallocation. Convert dindex to sizetype. Formatting fixes. * g++.dg/cpp1y/constexpr-84808.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258471 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258474 138bc75d-0d04-0410-961f-82ee72b054a4
* config/i386/sse.md (sse2_loadhpd): Use Yv constraint rather than v on the last operand. * gcc.target/i386/avx512f-pr84786-1.c: New test. * gcc.target/i386/avx512f-pr84786-2.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258475 138bc75d-0d04-0410-961f-82ee72b054a4
* reg-stack.c (change_stack): Change update_end var from int to rtx_insn *, if non-NULL don't update just BB_END (current_block), but also call set_block_for_insn on the newly added insns and rescan. * g++.dg/ext/pr84828.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258476 138bc75d-0d04-0410-961f-82ee72b054a4
* config/i386/i386.md (round<mode>2): For 387 fancy math, disable pattern if -ftrapping-math -fno-fp-int-builtin-inexact. * gcc.target/i386/pr84827.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258477 138bc75d-0d04-0410-961f-82ee72b054a4
* stmt.c (parse_output_constraint): If the CONSTRAINT_LEN (*p, p) characters starting at p contain '\0' character, don't look beyond that. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258478 138bc75d-0d04-0410-961f-82ee72b054a4
* match.pd ((A & C) != 0 ? D : 0): Use INTEGER_CST@2 instead of integer_pow2p@2 and test integer_pow2p in condition. (A < 0 ? C : 0): Similarly for @1. * gcc.dg/pr84834.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258479 138bc75d-0d04-0410-961f-82ee72b054a4
2018-03-13 Martin Liska <[email protected]> PR ipa/84658. * (sem_item_optimizer::sem_item_optimizer): Initialize new vector. (sem_item_optimizer::~sem_item_optimizer): Release it. (sem_item_optimizer::merge_classes): Register variable aliases. (sem_item_optimizer::fixup_pt_set): New function. (sem_item_optimizer::fixup_points_to_sets): Likewise. * ipa-icf.h: Declare new variables and functions. 2018-03-13 Martin Liska <[email protected]> PR ipa/84658. * g++.dg/ipa/pr84658.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258480 138bc75d-0d04-0410-961f-82ee72b054a4
* ipa-devirt.c (odr_subtypes_equivalent_p): Do not get the ODR type of incomplete types. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258481 138bc75d-0d04-0410-961f-82ee72b054a4
* MAINTAINERS: Add entry for SVE maintainership. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258486 138bc75d-0d04-0410-961f-82ee72b054a4
One advantage of the new permute handling compared to the old way is that we can now easily take advantage of the vectoriser's divmod patterns for SVE. 2018-03-13 Richard Sandiford <[email protected]> gcc/ * config/aarch64/iterators.md (UNSPEC_SMUL_HIGHPART) (UNSPEC_UMUL_HIGHPART): New constants. (MUL_HIGHPART): New int iteraor. (su): Handle UNSPEC_SMUL_HIGHPART and UNSPEC_UMUL_HIGHPART. * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart): New define_expand. (*<su>mul<mode>3_highpart): New define_insn. gcc/testsuite/ * gcc.target/aarch64/sve/mul_highpart_1.c: New test. * gcc.target/aarch64/sve/mul_highpart_1_run.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258487 138bc75d-0d04-0410-961f-82ee72b054a4
tlsdesc calls are guaranteed to preserve all Advanced SIMD registers, but are not guaranteed to preserve the SVE extension of them. The calls also don't preserve the SVE predicate registers. The long-term plan for handling the SVE vector registers is CLOBBER_HIGH, which adds a clobber equivalent of TARGET_HARD_REGNO_CALL_PART_CLOBBERED. The pattern can then directly model the fact that the low 128 bits are preserved and the upper bits are clobbered. However, it's too late now for that to be included in GCC 8, so this patch conservatively treats the whole vector register as being clobbered. This has the obvious disadvantage that compiling for SVE can make NEON code worse, but I don't think there's much we can do about that until CLOBBER_HIGH is in. 2018-03-13 Richard Sandiford <[email protected]> gcc/ * config/aarch64/aarch64.md (V4_REGNUM, V8_REGNUM, V12_REGNUM) (V20_REGNUM, V24_REGNUM, V28_REGNUM, P1_REGNUM, P2_REGNUM, P3_REGNUM) (P4_REGNUM, P5_REGNUM, P6_REGNUM, P8_REGNUM, P9_REGNUM, P10_REGNUM) (P11_REGNUM, P12_REGNUM, P13_REGNUM, P14_REGNUM): New define_constants. (tlsdesc_small_<mode>): Turn a define_expand and use tlsdesc_small_sve_<mode> for SVE. Rename original define_insn to... (tlsdesc_small_advsimd_<mode>): ...this. (tlsdesc_small_sve_<mode>): New pattern. gcc/testsuite/ * gcc.target/aarch64/sve/tls_1.c: New test. * gcc.target/aarch64/sve/tls_2.C: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258488 138bc75d-0d04-0410-961f-82ee72b054a4
I hadn't realised that on big-endian targets, VEC_UNPACK*HI_EXPR unpacks the low-numbered lanes and VEC_UNPACK*LO_EXPR unpacks the high-numbered lanes. This meant that both the SVE patterns and the handling of fully-masked loops were wrong. The patch deals with that by making sure that all vec_unpack* optabs are define_expands, using BYTES_BIG_ENDIAN to choose the appropriate define_insn. This in turn meant that we can get rid of the duplication between the signed and unsigned patterns for predicates. (We provide implementations of both the signed and unsigned optabs because the sign doesn't matter for predicates: every element contains only one significant bit.) Also, the float unpacks need to unpack one half of the input vector, but the unpacked upper bits are "don't care". There are two obvious ways of handling that: use an unpack (filling with zeros) or use a ZIP (filling with a duplicate of the low bits). The code previously used unpacks, but the sequence involved a subreg that is semantically an element reverse on big-endian targets. Using the ZIP patterns avoids that, and at the moment there's no reason to prefer one over the other for performance reasons, so the patch switches to ZIP unconditionally. As the comment says, it would be easy to optimise this later if UUNPK turns out to be better for some implementations. 2018-03-13 Richard Sandiford <[email protected]> gcc/ * tree-vect-loop-manip.c (vect_maybe_permute_loop_masks): Reverse the choice between VEC_UNPACK_LO_EXPR and VEC_UNPACK_HI_EXPR for big-endian. * config/aarch64/iterators.md (hi_lanes_optab): New int attribute. * config/aarch64/aarch64-sve.md (*aarch64_sve_<perm_insn><perm_hilo><mode>): Rename to... (aarch64_sve_<perm_insn><perm_hilo><mode>): ...this. (*extend<mode><Vwide>2): Rename to... (aarch64_sve_extend<mode><Vwide>2): ...this. (vec_unpack<su>_<perm_hilo>_<mode>): Turn into a define_expand, renaming the old pattern to... (aarch64_sve_punpk<perm_hilo>_<mode>): ...this. Only define unsigned packs. (vec_unpack<su>_<perm_hilo>_<SVE_BHSI:mode>): Turn into a define_expand, renaming the old pattern to... (aarch64_sve_<su>unpk<perm_hilo>_<SVE_BHSI:mode>): ...this. (*vec_unpacku_<perm_hilo>_<mode>_no_convert): Delete. (vec_unpacks_<perm_hilo>_<mode>): Take BYTES_BIG_ENDIAN into account when deciding which SVE instruction the optab should use. (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Likewise. gcc/testsuite/ * gcc.target/aarch64/sve/unpack_fcvt_signed_1.c: Expect zips rather than unpacks. * gcc.target/aarch64/sve/unpack_fcvt_unsigned_1.c: Likewise. * gcc.target/aarch64/sve/unpack_float_1.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258489 138bc75d-0d04-0410-961f-82ee72b054a4
…w character types gcc/c-family/ChangeLog: PR tree-optimization/84725 * c-attribs.c (handle_nonstring_attribute): Allow attribute nonstring with all three narrow character types, including their qualified forms. gcc/testsuite/ChangeLog: PR tree-optimization/84725 * c-c++-common/Wstringop-truncation-4.c: New test. * c-c++-common/attr-nonstring-5.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258492 138bc75d-0d04-0410-961f-82ee72b054a4
* parser.c (cp_parser_parameter_declaration_clause): Check parser->default_arg_ok_p. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258493 138bc75d-0d04-0410-961f-82ee72b054a4
* parser.c (cp_parser_simple_type_specifier): Pedwarn about auto parameter even without -Wpedantic. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258494 138bc75d-0d04-0410-961f-82ee72b054a4
PR target/84743 * config/rs6000/rs6000.c (rs6000_reassociation_width): Disable parallel reassociation for int modes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258495 138bc75d-0d04-0410-961f-82ee72b054a4
…omma operator This patch fixes improper handling of comma operator expression in a struct field initializer as described in: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46921 Currently, function output_init_element () does not evaluate the left hand expression in a comma operator that's used for a struct initializer field if the right hand side is zero-sized. However, the left hand expression must be evaluated if it's found to have side effects (for example, a function call). Patch was successfully bootstrapped and tested on x86_64-linux. gcc/c: 2018-03-13 David Pagan <[email protected]> PR c/46921 * c-typeck.c (output_init_element): Ensure field initializer expression is always evaluated if there are side effects. gcc/testsuite: 2018-03-13 David Pagan <[email protected]> PR c/46921 * gcc.dg/pr46921.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258497 138bc75d-0d04-0410-961f-82ee72b054a4
RISC-V relies on aggressive linker relaxation to get good code size. As a result no text symbol addresses can be known until link time, which means that alignment must be handled during the link. This alignment pass is essentially just another linker relaxation, so this has the unfortunate side effect that linker relaxation is required for correctness on many RISC-V targets. The RISC-V assembler has supported an ".option norelax" for a long time because there are situations in which linker relaxation is a bad idea -- the canonical example is when trying to materialize the initial value of the global pointer into a register, which would otherwise be relaxed to a NOP. We've been relying on users who want to disable relaxation for an entire link to pass "-Wl,--no-relax", but that still relies on the linker relaxing R_RISCV_ALIGN to handle alignment despite it not being strictly necessary. This patch adds a GCC option, "-mno-relax", that disable linker relaxation by adding ".option norelax" to the top of every generated assembly file. The assembler is smart enough to handle alignment at assemble time for files that have never emitted a relaxable relocation, so this is sufficient to really disable all relaxations in the linker, which results in significantly faster link times for large objects. This also has the side effect of allowing toolchains that don't support linker relaxation (LLVM and the Linux module loader) to function correctly. Toolchains that don't support linker relaxation should default to "-mno-relax" and error when presented with any R_RISCV_ALIGN relocation as those need to be handled for correctness. gcc/ChangeLog 2018-03-13 Palmer Dabbelt <[email protected]> * config/riscv/riscv.opt (mrelax): New option. * config/riscv/riscv.c (riscv_file_start): Emit ".option "norelax" when riscv_mrelax is disabled. * doc/invoke.texi (RISC-V): Document "-mrelax" and "-mno-relax". git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258499 138bc75d-0d04-0410-961f-82ee72b054a4
* pt.c (tsubst_pack_expansion): Set cp_unevaluated_operand while instantiating dummy parms. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258500 138bc75d-0d04-0410-961f-82ee72b054a4
* pt.c (convert_nontype_argument): Handle rvalue references. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258501 138bc75d-0d04-0410-961f-82ee72b054a4
* pt.c (instantiate_decl): Clear fn_context for lambdas. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258502 138bc75d-0d04-0410-961f-82ee72b054a4
* decl.c (duplicate_decls): For redefinition of built-in, use error and return error_mark_node. For redeclaration, return error_mark_node rather than olddecl if !flag_permissive. * g++.dg/ext/pr84843-1.C: New test. * g++.dg/ext/pr84843-2.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258503 138bc75d-0d04-0410-961f-82ee72b054a4
PR target/83712 * lra-assigns.c (find_all_spills_for): Ignore uninteresting pseudos. (assign_by_spills): Return a flag of reload assignment failure. Do not process the reload assignment failures. Do not spill other reload pseudos if they has the same reg class. Update n if necessary. (lra_assign): Add a return arg. Set up from the result of assign_by_spills call. (find_reload_regno_insns, lra_split_hard_reg_for): New functions. * lra-constraints.c (split_reg): Add a new arg. Use it instead of usage_insns if it is not NULL. (spill_hard_reg_in_range): New function. (split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg. * lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New function prototypes. (lra_assign): Change prototype. * lra.c (lra): Add code to deal with fails by splitting hard reg live ranges. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258504 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258508 138bc75d-0d04-0410-961f-82ee72b054a4
PR fortran/61775 * gfortran.dg/pr61775.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258509 138bc75d-0d04-0410-961f-82ee72b054a4
* check.c (gfc_check_kill_sub): Remove check for INTEGER(4) or (8). * intrinsic.c (add_functions): Remove reference to gfc_resolve_kill. (add_subroutines): Remove reference to gfc_resolve_kill_sub. * intrinsic.texi: Update documentation. * iresolve.c (gfc_resolve_kill, gfc_resolve_kill_sub): Remove. * trans-decl.c (gfc_build_intrinsic_function_decls): Add gfor_fndecl_kill and gfor_fndecl_kill_sub * trans-intrinsic.c (conv_intrinsic_kill, conv_intrinsic_kill_sub): new functions. (gfc_conv_intrinsic_function): Use conv_intrinsic_kill. (gfc_conv_intrinsic_subroutine): Use conv_intrinsic_kill_sub. * trans.h: Declare gfor_fndecl_kill and gfor_fndecl_kill_sub. 2018-03-13 Steven G. Kargl <[email protected]> * libgfortran/gfortran.map: Remove _gfortran_kill_i4, _gfortran_kill_i4_sub, _gfortran_kill_i8, and _gfortran_kill_i8_sub. Add _gfortran_kill and _gfortran_kill_sub. * libgfortran/intrinsics/kill.c: Eliminate _gfortran_kill_i4, _gfortran_kill_i4_sub, _gfortran_kill_i8, and _gfortran_kill_i8_sub. Add _gfortran_kill and _gfortran_kill_sub. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258511 138bc75d-0d04-0410-961f-82ee72b054a4
* decl.c (check_default_argument): Unshare an initializer list. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258512 138bc75d-0d04-0410-961f-82ee72b054a4
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.