- 25 Mar, 2018 1 commit
-
-
From-SVN: r258838
GCC Administrator committed
-
- 24 Mar, 2018 4 commits
-
-
2018-03-24 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/70068 * expr.c (find_substring_ref): Change types of start, end and length variables to gfc_charlen_t. Set length to zero for empty substring. 2018-03-24 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/70068 * gfortran.dg/substr_7.f90: New test. From-SVN: r258835
Thomas Koenig committed -
2018-03-24 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/42651 * decl.c (check_function_name): Improved error message (gfc_match_volatile, gfc_match_asynchronous) Use check_function_name. 2018-03-24 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/42651 * gfortran.dg/pr42651.f90: New test. * gfortran.dg/func_result_7.f90: Update error message. From-SVN: r258834
Steven G. Kargl committed -
This PR is another regression caused by the removal of the simple_iv check in dr_analyze_innermost for BB analysis. Without splitting out the step, we weren't able to find an underlying object whose alignment could be increased. As with PR81635, I think the simple_iv was only handling one special case of something that ought to be more general. The more general thing here is that if the address can be analysed as a scalar evolution, and if all updates preserve alignment N, it's possible to align the address to N by increasing the alignment of the base object to N. That applies also to outer loops, and to both loop and BB analysis. I wasn't sure where the new functions ought to live, but tree-data-ref.c seemed OK since (a) that already does scev analysis on addresses and (b) you'd want to use dr_analyze_innermost first if you were analysing a reference. 2018-03-24 Richard Sandiford <richard.sandiford@linaro.org> gcc/ PR tree-optimization/84005 * tree-data-ref.h (get_base_for_alignment): Declare. * tree-data-ref.c (get_base_for_alignment_1): New function. (get_base_for_alignment): Likewise. * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use get_base_for_alignment to find a suitable base object, instead of always using drb->base_address. gcc/testsuite/ PR tree-optimization/84005 * gcc.dg/vect/bb-slp-1.c: Make sure there is no message about failing to force the alignment. From-SVN: r258833
Richard Sandiford committed -
From-SVN: r258831
GCC Administrator committed
-
- 23 Mar, 2018 26 commits
-
-
PR ada/85007 * gnatlink.adb (Gnatlink): Remove handling of -b switch. * doc/gnat_ugn/building_executable_programs_with_gnat.rst (gnatlink): Remove documentation of -b switch. From-SVN: r258828
Eric Botcazou committed -
PR ada/85036 * gnatlink.adb (Process_Args): Drop existing link switches if multiple switches are passed for --LINK. From-SVN: r258827
Eric Botcazou committed -
* gcc.target/powerpc/builtins-1-le.c <vclzb>: Rename duplicate test from this to... <vclzd>: ...this. From-SVN: r258826
Peter Bergner committed -
* gcc.target/powerpc/builtins-1-le.c: Filter out gimple folding disabled message. Fix scan-assembler patterns. From-SVN: r258825
Peter Bergner committed -
PR c++/84489 * pt.c (type_unification_real): Don't defer substitution failure. From-SVN: r258824
Jason Merrill committed -
PR inline-asm/85022 * emit-rtl.c (init_emit_regs): Indicate that VOIDmode MEMs don't have known size by default. From-SVN: r258823
Jakub Jelinek committed -
re PR c++/85015 (internal compiler error: tree check: expected class 'type', have 'exceptional' (error_mark) in build_int_cst, at tree.c:1360) PR c++/85015 * decl.c (compute_array_index_type): Set osize to mark_rvalue_use result. * g++.dg/cpp0x/pr85015.C: New test. From-SVN: r258822
Jakub Jelinek committed -
re PR c++/84942 (internal compiler error: in fold_convert_const_int_from_real, at fold-const.c:2011) PR c++/84942 * pt.c (tsubst_copy_and_build) <case FIX_TRUNC_EXPR>: Replace cp_build_unary_op call with gcc_unreachable (). * g++.dg/cpp1y/pr84942.C: New test. From-SVN: r258821
Jakub Jelinek committed -
2018-03-23 Vladimir Makarov <vmakarov@redhat.com> PR inline-asm/85030 * lra-constraints.c (process_alt_operands): Don't match BLKmode and non BLKmode operands. 2018-03-23 Vladimir Makarov <vmakarov@redhat.com> PR inline-asm/85030 * testsuite/gcc.target/i386/pr85030.c: New. From-SVN: r258820
Vladimir Makarov committed -
This bug has been reported against GCC 7.3.0 but it is latent in all release branches and on trunk. We underestimate the length of the LRSH instruction in Thumb state. Unlike other load instructions LDRSH can be encoded in 16 bits only when using a register offset. In the testcase we have "ldrsh r2, [r4]" being assigned a length of 2, which is wrong. So we don't calculate branch ranges properly and cause the assembler error. The fix is to make the unaligned_loadhis insn similar to the *arm_extendqihi_insn insn that outputs an LDRSB. Just remove the wrong 2-byte alternative. I don't think this is worth inventing a new "register-offset-only" constraint. This also makes the patch safer for backporting. Bootstrapped and tested on arm-none-linux-gnueabihf. PR target/85026 * config/arm/arm.md (unaligned_loadhis): Remove first alternative. Clean up attributes. * g++.dg/pr85026.C: New test. From-SVN: r258818
Kyrylo Tkachov committed -
From-SVN: r258816
David Edelsohn committed -
*** gcc/testsuite/ChangeLog *** 2018-03-23 Sudakshina Das <sudi.das@arm.com> PR target/84826 * gcc.target/arm/pr84826.c: Add dg directive. From-SVN: r258805
Sudakshina Das committed -
re PR c++/85045 (ICE+SIGILL on valid C++ code: cxx_pretty_printer::postfix_expression(tree_node*) (), at cp/cxx-pretty-print.c:482) PR c++/85045 * c-pretty-print.c (c_pretty_printer::multiplicative_expression) <case RDIV_EXPR>: Tweak condition. * cxx-pretty-print.c (cxx_pretty_printer::multiplicative_expression): Handle EXACT_DIV_EXPR and RDIV_EXPR. Tweak condition. (cxx_pretty_printer::expression): Handle EXACT_DIV_EXPR and RDIV_EXPR. * g++.dg/cpp0x/Wnarrowing5.C: New test. * gcc.dg/pr85045.c: New test. From-SVN: r258804
Marek Polacek committed -
* parser.c (cp_parser_perform_range_for_lookup): Change the condition for deciding whether to use members. From-SVN: r258803
Ville Voutilainen committed -
PR c++/85033 * semantics.c (finish_offsetof): Don't allow CONST_DECLs. * g++.dg/ext/builtin-offsetof2.C: New test. From-SVN: r258801
Marek Polacek committed -
re PR bootstrap/85020 (gcc fails to bootstrap with profiledbootstrap and --with-build-config=bootstrap-lto) 2018-03-23 Eric Botcazou <ebotcazou@adacore.com> PR debug/85020 * gnat.dg/lto22.adb: New test. * gnat.dg/lto22_pkg1.ad[sb]: New helper. * gnat.dg/lto22_pkg2.ads: Likewise. From-SVN: r258799
Eric Botcazou committed -
re PR bootstrap/85020 (gcc fails to bootstrap with profiledbootstrap and --with-build-config=bootstrap-lto) 2018-03-23 Richard Biener <rguenther@suse.de> PR debug/85020 * dwarf2out.c (rtl_for_decl_location): Do not generate RTL early when we are going to emit early debug for LTO. From-SVN: r258798
Richard Biener committed -
PR c/80778 * gcc.dg/lto/pr80778_0.c: New test. From-SVN: r258797
Jakub Jelinek committed -
re PR inline-asm/85034 (-O1 internal compiler error: in elimination_costs_in_insn, at reload1.c:3633) PR inline-asm/85034 * function.c (match_asm_constraints_1): Don't optimize if input doesn't satisfy general_operand predicate for output's mode. * gcc.target/i386/pr85034.c: New test. From-SVN: r258796
Jakub Jelinek committed -
PR inline-asm/85022 * alias.c (write_dependence_p): Don't require for x_canonicalized non-VOIDmode if x has VOIDmode. * c-c++-common/torture/pr85022.c: New test. From-SVN: r258795
Jakub Jelinek committed -
re PR sanitizer/85029 (-fsanitize=undefined internal compiler error: in maybe_optimize_ubsan_ptr_ifn, at sanopt.c:493) PR sanitizer/85029 * sanopt.c (maybe_optimize_ubsan_ptr_ifn): If DECL_REGISTER (base), just don't try to optimize it rather than assert it never happens. * g++.dg/ubsan/pr85029.C: New test. From-SVN: r258794
Jakub Jelinek committed -
Check that template using decls have the correct number of parm lists. for gcc/cp/ChangeLog PR c++/71251 * parser.c (cp_parser_alias_declaration): Call parser_check_template_parameters. for gcc/testsuite/ChangeLog PR c++/71251 * g++.dg/cpp0x/pr71251.C: New. From-SVN: r258793
Alexandre Oliva committed -
Although resolve_typename_type always takes a template-dependent type-id, and it usually resolves it to another template-dependent type-id, it is not correct to require the latter: in declarators, template-dependent scopes may turn out to name template-independent types, as in the pr84789-2.C and pr84789-3.C testcases. The ill-formed testcase pr84789.C trips the same too-strict assert, and also gets fixed by removing the assertion on the simplified scope. However, whereas when the dependent type cannot be resolved, we get an error that suggests 'typename' is missing: pr84789.C:12:3: error: need ‘typename’ before ‘typename B<T>::A::I::I’ because ‘typename B<T>::A::I’ is a dependent scope B<T>::A::I::I i; ^~~~ when it can, we got errors that did not point at that possibility, which may be confusing: pr84789.C:9:15: error: ‘A::I’ {aka ‘int’} is not a class type B<T>::A::I::I i; // { dg-error "typename" } ^ pr84789.C:9:15: error: ‘I’ in ‘A::I’ {aka ‘int’} does not name a type Changing the parser diagnostic code that reports an invalid type name so that it does not attempt to reparse the name as a declarator gets us the superior diagnostic of a missing 'typename' keyword. for gcc/cp/ChangeLog PR c++/84789 * pt.c (resolve_typename_type): Drop assert that stopped simplification to template-independent types. Add assert to verify the initial scope is template dependent. * parser.c (cp_parser_parse_and_diagnose_invalid_type_name): Reparse the id expression as a type-name, not a declarator. for gcc/testsuite/ChangeLog PR c++/84789 * g++.dg/template/pr84789.C: New. * g++.dg/template/pr84789-2.C: New. * g++.dg/template/pr84789-3.C: New. * g++.dg/parse/dtor11.C: Accept alternate error message. From-SVN: r258792
Alexandre Oliva committed -
A parenthesized initializer was only accepted when new()ing an array in permissive mode. We were not careful, however, to convert the TREE_LIST initializer to the array element type in this extension. Instead of fixing it, converting the initializer to the base type after turning the TREE_LIST initializer to a compound_expr, we disable this deprecated extension. for gcc/cp/ChangeLog PR c++/84729 * init.c (build_vec_init): Error at parenthesized array init. for gcc/testsuite/ChangeLog PR c++/84729 * g++.dg/pr84729.C: New. * g++.old-deja/g++.ext/arrnew2.C: Require error. * g++.old-deja/g++.robertl/eb58.C: Likewise. * g++.old-deja/g++.robertl/eb63.C: Likewise. From-SVN: r258791
Alexandre Oliva committed -
We don't want functions to become implicit templates just because of random uses of auto in unexpected places. Disabling the special handling of auto while parsing attributes, for example, makes for more sensible errors. for gcc/cp/ChangeLog PR c++/84610 PR c++/84642 PR c++/84942 * cp-tree.h (temp_override): New template class, generalizing a cleanup that was only used... * parser.c (cp_parser_parameter_declaration_clause): ... here for auto_is_implicit_function_template_parm_p. (cp_parser_gnu_attributes_opt): Use it here as well. (cp_parser_std_attribute): Likewise. From-SVN: r258790
Alexandre Oliva committed -
From-SVN: r258789
GCC Administrator committed
-
- 22 Mar, 2018 9 commits
-
-
re PR fortran/84922 (fortran reports inconsistency in rank of arguments in interface and contained procedures) 2018-03-22 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/84922 * decl.c (get_proc_name): If the MODULE prefix appears in interface body, then it must appear on the contained subroutine or function. While here, fix nearby mis-indented code. 2018-03-22 Steven G. Kargl <kargl@gcc.gnu.org PR fortran/84922 * gfortran.dg/interface_42.f90: New test. * gfortran.dg/interface_43.f90: New test. From-SVN: r258784
Steven G. Kargl committed -
gcc/ChangeLog: 2018-03-22 Kelvin Nilsen <kelvin@gcc.gnu.org> * config/rs6000/rs6000-builtin.def: Remove various BU_ALTIVEC_X macro expansions for definition of ST_INTERNAL_<mode> and LD_INTERNAL_<mode> builtins. * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): Remove prototype. * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Delete this function. (altivec_expand_st_builtin): Likewise. (altivec_expand_builtin): Remove calls to deleted functions. (rs6000_address_for_altivec): Delete this function. * config/rs6000/vector.md: Remove expands for vector_altivec_load_<mode> and vector_altivec_store_<mode>. From-SVN: r258783
Kelvin Nilsen committed -
arm-linux-gnueabi The ICE in the bug report was happening because the macro USE_RETURN_INSN (FALSE) was returning different values at different points in the compilation. This was internally occurring because the function arm_compute_static_chain_stack_bytes () which was dependent on arm_r3_live_at_start_p () was giving a different value after the cond_exec instructions were created in ce3 causing the liveness of r3 to escape up to the start block. The function arm_compute_static_chain_stack_bytes () should really only compute the value once duringepilogue/prologue stage. This pass introduces a new member 'static_chain_stack_bytes' to the target definition of the struct machine_function which gets calculated in expand_prologue and is the value that is returned by arm_compute_static_chain_stack_bytes () beyond that. ChangeLog entries: *** gcc/ChangeLog *** 2018-03-22 Sudakshina Das <sudi.das@arm.com> PR target/84826 * config/arm/arm.h (machine_function): Add static_chain_stack_bytes. * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Avoid re-computing once computed. (arm_expand_prologue): Compute machine->static_chain_stack_bytes. (arm_init_machine_status): Initialize machine->static_chain_stack_bytes. *** gcc/testsuite/ChangeLog *** 2018-03-22 Sudakshina Das <sudi.das@arm.com> PR target/84826 * gcc.target/arm/pr84826.c: New test. From-SVN: r258777
Sudakshina Das committed -
2018-03-22 Christophe Lyon <christophe.lyon@linaro.org> gcc/testsuite/ * gcc.target/arm/addr-modes-float.c: Move dg-do before dg-require-effective-target. * gcc.target/arm/addr-modes-int.c: Likewise. * gcc.target/nios2/lo-addr-tls.c: Likewise. From-SVN: r258776
Christophe Lyon committed -
gcc/ChangeLog: 2018-03-22 Kelvin Nilsen <kelvin@gcc.gnu.org> PR target/84760 * doc/extend.texi: Add four new prototypes for vec_ld. * config/rs6000/rs6000-builtin.def (LVX_V1TI): Reorder symbol definitions for more logical presentation. * config/rs6000/rs6000-c.c: (altivec_overloaded_builtins): Add entries for V1TI variants of __builtin_altivec_ld builtin. * config/rs6000/rs6000.c: (altivec_expand_lv_builtin): Add test and handling of V1TI variant of LVX icode pattern. (altivec_expand_builtin): Add case for ALTIVEC_BUILTIN_LVX_V1TI. (rs6000_gimple_fold_builtin): Likewise. (altivec_init_builtins): Add code to define __builtin_altivec_lvx_v1ti function. gcc/testsuite/ChangeLog: 2018-03-22 Kelvin Nilsen <kelvin@gcc.gnu.org> PR target/84760 * gcc.target/powerpc/altivec-ld-1.c: New test. From-SVN: r258774
Kelvin Nilsen committed -
PR libstdc++/85040 * include/bits/stl_function.h (greater::__not_overloaded) (less::__not_overloaded, greater_equal::__not_overloaded) (less_equal::__not_overloaded): Fix ambiguous specializations. * testsuite/20_util/function_objects/comparisons_pointer.cc: Add tests for type with overlaoded operators. From-SVN: r258773
Jonathan Wakely committed -
gcc/testsuite * gcc.dg/graphite/pr83126.c: Require pthread for the test. From-SVN: r258768
Bin Cheng committed -
PR libstdc++/77691 * testsuite/experimental/memory_resource/resource_adaptor.cc: xfail execution on 32-bit Solaris/x86. From-SVN: r258766
Rainer Orth committed -
re PR inline-asm/84941 (internal compiler error: in reg_overlap_mentioned_p, at rtlanal.c:1870 (reg_overlap_mentioned_p()/match_asm_constraints_1())) PR inline-asm/84941 * function.c (match_asm_constraints_1): Don't do the optimization if input isn't a REG, SUBREG, MEM or constant. * gcc.dg/pr84941.c: New test. From-SVN: r258764
Jakub Jelinek committed
-