- 13 Sep, 2017 30 commits
-
-
PR c/82167 * c-typeck.c (c_expr_sizeof_expr): Use the type of expr.value rather than expr.original_type. * gcc.dg/pr82167.c: New test. From-SVN: r252372
Marek Polacek committed -
From-SVN: r252218
Thomas Schwinge committed -
[gcc/testsuite] 2017-09-12 Will Schmidt <will_schmidt@vnet.ibm.com> * gcc.target/powerpc/fold-vec-ld-char.c: New. * gcc.target/powerpc/fold-vec-ld-double.c: New. * gcc.target/powerpc/fold-vec-ld-float.c: New. * gcc.target/powerpc/fold-vec-ld-int.c: New. * gcc.target/powerpc/fold-vec-ld-longlong.c: New. * gcc.target/powerpc/fold-vec-ld-short.c: New. From-SVN: r252087
Will Schmidt committed -
This patch changes pr62178.c so that it now scans for two `ldr`s, one into an `s` register, instead of a `ld1r` as before. Also add a scan for an mla instruction. The `ld1r` was needed when this should have generated a mla by vector. Now that we can generate an mla by element instruction and can load directly into the simd register, it is cheaper to not do the ld1r which needlessly duplicates the single element used across the whole vector register. Committed on behalf of Jackson Woodruff gcc/testsuite/ * gcc.target/aarch64/pr62178.c: Updated testcase to scan for two ldrs and an mla. From-SVN: r252086
Jackson Woodruff committed -
PR libstdc++/81468 * include/std/chrono (__enable_if_is_duration) (__disable_if_is_duration): New alias templates to simplify SFINAE. (duration_cast, floor, ceil): Use __enable_if_is_duration. (duration::__is_float, duration::__is_harmonic): New alias templates to simplify SFINAE. (duration::duration(const _Rep2&)): Use _Require, __is_float and __is_harmonic. (duration::duration(const duration<_Rep2, _Period2>&)): Likewise. (__common_rep_type): Remove, replace with ... (__common_rep_t): New alias template. (operator*, operator/, operator%): Use __common_rep_t and __disable_if_is_duration. (time_point::time_point(const time_point<clock, _Dur2>&)): Add missing constraint from LWG DR 1177. * testsuite/20_util/duration/cons/dr1177.cc: New. * testsuite/20_util/duration/literals/range.cc: Update dg-error line. * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise. * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise. * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise. * testsuite/20_util/time_point/cons/81468.cc: New. From-SVN: r252085
Jonathan Wakely committed -
As Alexander pointed out in the thread starting at [1] the sort_by_bitpos sorting function was behaving badly when we had multiple stores at the same position. He fixed that (thanks!) but we can do better by not returning zero when the bitpositions are equal but by falling back to comparing the order the stores appear in, which is guaranteed to be unique (barring other bugs elsewhere). This patch does that. Bootstrapped and tested on aarch64-none-linux-gnu. [1] https://gcc.gnu.org/ml/gcc-patches/2017-07/msg00895.html * gimple-ssa-store-merging.c (sort_by_bitpos): Compare store order when bitposition is the same. From-SVN: r252084
Kyrylo Tkachov committed -
2017-09-13 Nicolas Roche <roche@adacore.com> * Make-lang.in: In the fallback mechanim, parse the associated .ali file and try to guess the locations of dependencies. From-SVN: r252082
Nicolas Roche committed -
Conv-op identifers not in identifier hash table * lex.c (conv_type_hasher): Make member fns inline. (make_conv_op_name): Directly clone conv_op_identifier. From-SVN: r252081
Nathan Sidwell committed -
re PR c++/59949 (lambda expression as default argument of function template causes "already defined" messages in assembler) 2017-09-13 Paolo Carlini <paolo.carlini@oracle.com> PR c++/59949 * g++.dg/cpp0x/lambda/lambda-defarg7.C: New. From-SVN: r252079
Paolo Carlini committed -
* cp-tree.h (struct lang_type): Rename methods to members. (CLASSTYPE_METHOD_VEC): Rename to ... (CLASSTYPE_MEMBER_VEC): ... this. * name-lookup.h (get_method_slot): Rename to ... (get_member_slot): ... this. (resort_type_method_vec): Rename to ... (resort_type_member_vec): ... this. * class.c (add_method, warn_hidden): Adjust. * search.c (dfs_locate_field_accessor_pre): Adjust. * name-lookup.c (method_vec_binary_search): Rename to ... (member_vec_binary_search): ... this and adjust. (method_vec_linear_search): Rename to ... (member_vec_linear_search): ... this and adjust. (fields_linear_search, get_class_binding_direct): Adjust. (get_method_slot): Rename to ... (get_member_slot): ... this and adjust. (method_name_slot): Rename to ... (member_name_slot): ... this and adjust. (resort_type_method_vec): Rename to ... (resort_type_member_vec): ... this and adjust. (method_vec_append_class_fields): Rename to ... (member_vec_append_class_fields): ... this and adjust. (method_vec_append_enum_values): Rename to ... (member_vec_append_enum_values): ... this and adjust. (method_vec_dedup): Rename to ... (member_vec_dedup): ... this and adjust. (set_class_bindings, insert_late_enum_def_bindings): Adjust. From-SVN: r252078
Nathan Sidwell committed -
Update vmov_n_1.c now we are generating better code for dup: ldr s0, [x0] dup v0.2s, v0.s[0] ret gcc/testsuite/ * gcc.target/aarch64/vmov_n_1.c: Update dup scan-assembler. From-SVN: r252077
Wilco Dijkstra committed -
2017-09-13 Eric Botcazou <ebotcazou@adacore.com> * sem_ch13.adb (Register_Address_Clause_Check): New procedure to save the suppression status of Alignment_Check on the current scope. (Alignment_Checks_Suppressed): New function to use the saved instead of the current suppression status of Alignment_Check. (Address_Clause_Check_Record): Add Alignment_Checks_Suppressed field. (Analyze_Attribute_Definition_Clause): Instead of manually appending to the table, call Register_Address_Clause_Check. (Validate_Address_Clauses): Call Alignment_Checks_Suppressed on the recorded address clause instead of its entity. 2017-09-13 Jerome Guitton <guitton@adacore.com> * libgnarl/s-tpopsp__vxworks-tls.adb, libgnarl/s-tpopsp__vxworks-rtp.adb, libgnarl/s-tpopsp__vxworks.adb (Self): Register thread if task id is null. 2017-09-13 Arnaud Charlet <charlet@adacore.com> * libgnat/s-htable.adb, libgnat/s-htable.ads: Minor style tuning. 2017-09-13 Arnaud Charlet <charlet@adacore.com> * lib-xref-spark_specific.adb (Scopes): simplify hash map; now it maps from an entity to only scope index, as a mapping from an entity to the same entity was useless. (Get_Scope_Num): refactor as a simple renaming; rename parameter from N to E. (Set_Scope_Num): refactor as a simple renaming; rename parameter from N to E. (Is_Constant_Object_Without_Variable_Input): remove local "Result" variable, just use return statements. From-SVN: r252076
Pierre-Marie de Rodat committed -
* libgnarl/s-vxwext__kernel-smp.adb, libgnarl/s-tpopsp__vxworks-rtp.adb, libgnarl/s-vxwext__noints.adb: New file. From-SVN: r252075
Arnaud Charlet committed -
Coprocessor intrinsic tests in gcc.target/arm/acle test whether __ARM_FEATURE_COPROC has the right bit defined before calling the intrinsic. This allows to test both the correct setting of that macro and the availability and correct working of the intrinsic. However the __ARM_FEATURE_COPROC macro is no longer defined for ARMv8-A since r249399. This patch changes the testcases to skip that test for ARMv8-A and ARMv8-R targets. It also fixes some irregularity in the coprocessor effective targets: - add ldcl and stcl to the list of instructions listed as guarded by arm_coproc1_ok - enable tests guarded by arm_coproc2_ok, arm_coproc3_ok and arm_coproc4_ok for Thumb-2 capable targets but disable for Thumb-1 targets. 2017-09-13 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/testsuite/ * gcc.target/arm/acle/cdp.c: Skip __ARM_FEATURE_COPROC check for ARMv8-A and ARMv8-R. * gcc.target/arm/acle/cdp2.c: Likewise. * gcc.target/arm/acle/ldc.c: Likewise. * gcc.target/arm/acle/ldc2.c: Likewise. * gcc.target/arm/acle/ldc2l.c: Likewise. * gcc.target/arm/acle/ldcl.c: Likewise. * gcc.target/arm/acle/mcr.c: Likewise. * gcc.target/arm/acle/mcr2.c: Likewise. * gcc.target/arm/acle/mcrr.c: Likewise. * gcc.target/arm/acle/mcrr2.c: Likewise. * gcc.target/arm/acle/mrc.c: Likewise. * gcc.target/arm/acle/mrc2.c: Likewise. * gcc.target/arm/acle/mrrc.c: Likewise. * gcc.target/arm/acle/mrrc2.c: Likewise. * gcc.target/arm/acle/stc.c: Likewise. * gcc.target/arm/acle/stc2.c: Likewise. * gcc.target/arm/acle/stc2l.c: Likewise. * gcc.target/arm/acle/stcl.c: Likewise. * lib/target-supports.exp: (check_effective_target_arm_coproc1_ok_nocache): Mention ldcl and stcl in the comment. (check_effective_target_arm_coproc2_ok_nocache): Allow Thumb-2 targets and disable Thumb-1 targets. (check_effective_target_arm_coproc3_ok_nocache): Likewise. (check_effective_target_arm_coproc4_ok_nocache): Likewise. Acked-by: Kyrill Tkachov <kyrylo.tkachov@foss.arm.com> From-SVN: r252074
Thomas Preud'homme committed -
* doc/doxygen/mainpage.html: Fix broken URLs. From-SVN: r252070
Jonathan Wakely committed -
PR libstdc++/81835 * doc/xml/manual/extensions.xml: Replace unstable URL. * doc/html/manual/ext_demangling.html: Regenerate. * libsupc++/cxxabi.h (__cxa_demangle): Fix broken URL. From-SVN: r252066
Jonathan Wakely committed -
2017-09-13 Hristian Kirtchev <kirtchev@adacore.com> * einfo.adb: Flag42 is now Is_Controlled_Active. (Is_Controlled): This attribute is now synthesized. (Is_Controlled_Active): This attribute is now an explicit flag rather than a synthesized attribute. (Set_Is_Controlled): Removed. (Set_Is_Controlled_Active): New routine. (Write_Entity_Flags): Update the output for Flag42. * einfo.ads: Update the documentation of the following attributes: Disable_Controlled, Is_Controlled, Is_Controlled_Active, Is_Controlled and Is_Controlled_Active have swapped their functionality. (Is_Controlled): Renamed to Is_Controlled_Active. (Is_Controlled_Active): Renamed to Is_Controlled. (Set_Is_Controlled): Renamed to Set_Is_Controlled_Active. * exp_ch3.adb (Expand_Freeze_Record_Type): Restore the original use of Is_Controlled. * exp_util.adb (Has_Some_Controlled_Component): Code clean up. (Needs_Finalization): Code clean up. Remove the tests for Disable_Controlled because a) they were incorrect as they would reject a type which is sublect to the aspect, but may contain controlled components, and b) they are no longer necessary. * exp_util.ads (Needs_Finalization): Update comment on documentation. * freeze.adb (Freeze_Array_Type): Restore the original use of Is_Controlled. (Freeze_Record_Type): Restore the original use of Is_Controlled. * sem_ch3.adb (Analyze_Object_Declaration): Restore the original use of Is_Controlled. (Array_Type_Declaration): Restore the original use of Is_Controlled. (Build_Derived_Private_Type): Restore the original use of Is_Controlled. (Build_Derived_Record_Type): Set the Is_Controlled_Active flag of a type derived from Ada.Finalization.[Limited_]Controlled. (Build_Derived_Type): Restore the original use of Is_Controlled. (Record_Type_Definition): Restore the original use of Is_Controlled. * sem_ch7.adb (Preserve_Full_Attributes): Restore the original use of Is_Controlled. * sem_ch13.adb (Analyze_Aspect_Disable_Controlled): New routine. (Analyze_Aspect_Specifications): Use routine Analyze_Aspect_Disable_Controlled to process aspect Disable_Controlled. 2017-09-13 Vincent Celier <celier@adacore.com> * clean.adb (Gnatclean): Fix error when looking for target of <target>-gnatclean 2017-09-13 Javier Miranda <miranda@adacore.com> Ed Schonberg <schonberg@adacore.com> * sem_ch8.adb (Find_Expanded_Name): Complete code that identifies an expanded name that designates the current instance of a child unit in its own body and appears as the prefix of a reference to an entity local to the child unit. From-SVN: r252065
Pierre-Marie de Rodat committed -
re PR c++/47226 ([C++0x] GCC doesn't expand template parameter pack that appears in a lambda-expression) 2017-09-13 Paolo Carlini <paolo.carlini@oracle.com> PR c++/47226 * g++.dg/cpp0x/lambda/lambda-variadic4.C: New. * g++.dg/cpp0x/lambda/lambda-variadic5.C: Likewise. From-SVN: r252064
Paolo Carlini committed -
2017-09-13 Richard Biener <rguenther@suse.de> * dwarf2out.c (output_die_symbol): Remove. (output_die): Do not output a DIEs symbol. From-SVN: r252063
Richard Biener committed -
2017-09-13 Richard Biener <rguenther@suse.de> PR middle-end/82128 * gimple-fold.c (gimple_fold_call): Update SSA name in-place to default-def to avoid breaking iterator update with the weird interaction with cgraph_update_edges_for_call_stmt_node. * g++.dg/pr82128.C: New testcase. From-SVN: r252062
Richard Biener committed -
2017-09-13 Richard Biener <rguenther@suse.de> * tree-cfg.c (verify_gimple_assign_binary): Add verification for WIDEN_SUM_EXPR, VEC_WIDEN_MULT_{HI,LO,EVEN,ODD}_EXPR, VEC_PACK_{TRUNC,SAT,FIX_TRUNC}_EXPR. (verify_gimple_assign_ternary): Add verification for DOT_PROD_EXPR. From-SVN: r252061
Richard Biener committed -
From-SVN: r252060
Arnaud Charlet committed -
From-SVN: r252059
Arnaud Charlet committed -
From-SVN: r252058
Arnaud Charlet committed -
From-SVN: r252057
Arnaud Charlet committed -
From-SVN: r252056
Arnaud Charlet committed -
* include/bits/allocated_ptr.h (__allocated_ptr::get): Use __to_address. (__allocated_ptr::_S_raw_ptr): Remove. * include/bits/forward_list.h (_Fwd_list_base::_M_get_node): Use __to_address. * include/bits/hashtable_policy.h (_Hashtable_alloc): Likewise. * include/bits/ptr_traits.h (__to_address): Define new function template. * include/bits/shared_ptr_base.h (__shared_ptr): Use __to_address. (__shared_ptr::_S_raw_ptr): Remove. * include/bits/stl_vector.h [__cplusplus >= 201103L] (vector::_M_data_ptr): Use __to_address. [__cplusplus < 201103L] (vector::_M_data_ptr): Don't dereference possibly invalid pointers. * include/ext/alloc_traits.h (__alloc_traits::construct) (__alloc_traits::destroy): Use __to_address. From-SVN: r252055
Jonathan Wakely committed -
From-SVN: r252054
Arnaud Charlet committed -
gcc/testsuite/ChangeLog: 2017-09-13 Kugan Vivekanandarajah <kuganv@linaro.org> * gcc.target/aarch64/pr63304_1.c: Remove-mno-fix-cortex-a53-843419. gcc/ChangeLog: 2017-09-13 Kugan Vivekanandarajah <kuganv@linaro.org> * config/aarch64/aarch64.c (aarch64_override_options_after_change_1): Disable pc relative literal load irrespective of TARGET_FIX_ERR_A53_84341 for default. From-SVN: r252053
Kugan Vivekanandarajah committed -
From-SVN: r252051
GCC Administrator committed
-
- 12 Sep, 2017 10 commits
-
-
* config/sparc/sparc.c (output_return): Output the source location of the insn in the delay slot, if any. (output_sibcall): Likewise. From-SVN: r252041
Eric Botcazou committed -
re PR c++/70621 (ICE on invalid code at -O1 and above on x86_64-linux-gnu in record_reference, at cgraphbuild.c:64) /cp 2017-09-12 Paolo Carlini <paolo.carlini@oracle.com> PR c++/70621 * decl.c (start_decl): Early return error_mark_node if duplicate_decls returns it; avoid misleading error message. /testsuite 2017-09-12 Paolo Carlini <paolo.carlini@oracle.com> PR c++/70621 * g++.dg/torture/pr70621.C: New. From-SVN: r252040
Paolo Carlini committed -
2017-09-12 Paul Thomas <pault@gcc.gnu.org> PR fortran/82173 PR fortran/82168 * decl.c (variable_decl): Check pdt template components for appearance of KIND/LEN components in the type parameter name list, that components corresponding to type parameters have either KIND or LEN attributes and that KIND or LEN components are scalar. Copy the initializer to the parameter value. (gfc_get_pdt_instance): Add a label 'error_return' and follow it with repeated code, while replacing this code with a jump. Check if a parameter appears as a component in the template. Make sure that the parameter expressions are integer. Validate KIND expressions. (gfc_match_decl_type_spec): Search for pdt_types in the parent namespace since they are instantiated in the template ns. * expr.c (gfc_extract_int): Use a KIND parameter if it appears as a component expression. (gfc_check_init_expr): Allow expressions with the pdt_kind attribute. *primary.c (gfc_match_actual_arglist): Make sure that the first keyword argument is recognised when 'pdt' is set. 2017-09-12 Paul Thomas <pault@gcc.gnu.org> PR fortran/82173 * gfortran.dg/pdt_4.f03 : Remove the 'is being used before it is defined' error. * gfortran.dg/pdt_6.f03 : New test. * gfortran.dg/pdt_7.f03 : New test. * gfortran.dg/pdt_8.f03 : New test. PR fortran/82168 * gfortran.dg/pdt_9.f03 : New test. From-SVN: r252039
Paul Thomas committed -
2017-09-12 Steve Ellcey <sellcey@cavium.com> PR other/81096 * Makefile.am (ttest_CFLAGS): Add $(AM_CFLAGS) * Makefile.in: Regenerate. From-SVN: r252038
Steve Ellcey committed -
A new vendor CFA DW_CFA_AARCH64_negate_ra_state was introduced for ARMv8.3-A return address signing, it is multiplexing DW_CFA_GNU_window_save in CFA vendor extension space. This patch adds necessary code to make it available to external, the GDB patch (https://sourceware.org/ml/gdb-patches/2017-08/msg00215.html) is intended to use it. A new DW_CFA_DUP for it is added in dwarf2.def. The use of DW_CFA_DUP is to avoid duplicated case value issue when included in libiberty/dwarfnames. Native x86 builds OK to make sure no macro expanding errors. Committed on behalf of Jiong Wang. include/ * dwarf2.def (DW_CFA_AARCH64_negate_ra_state): New DW_CFA_DUP. * dwarf2.h (DW_CFA_DUP): New define. libiberty/ * dwarfnames.c (DW_CFA_DUP): New define. From-SVN: r252037
Jiong Wang committed -
When warn_if_not_aligned_p is true, a warning will be issued on function declaration later. There is no need to warn function alignment when warn_if_not_aligned_p is true. * c-attribs.c (common_handle_aligned_attribute): Don't warn function alignment if warn_if_not_aligned_p is true. From-SVN: r252036
H.J. Lu committed -
2017-09-12 Steve Ellcey <sellcey@cavium.com> PR other/81096 * libbacktrace/Makefile.in (HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_CFLAGS): Add $(AM_CFLAGS) From-SVN: r252035
Steve Ellcey committed -
This patch adds -static-pie to GCC driver to create static PIE. A static position independent executable (PIE) is similar to static executable, but can be loaded at any address without a dynamic linker. All linker input files must be compiled with -fpie or -fPIE and linker must support --no-dynamic-linker to avoid linking with dynamic linker. "-z text" is also needed to prevent dynamic relocations in read-only segments. PR driver/81498 * common.opt (-static-pie): New alias. (shared): Negate static-pie. (-no-pie): Update help text. (-pie): Likewise. (static-pie): New option. * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add -static-pie support. (GNU_USER_TARGET_ENDFILE_SPEC): Likewise. (LINK_EH_SPEC): Likewise. (LINK_GCC_C_SEQUENCE_SPEC): Likewise. * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Likewise. * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Likewise. * gcc.c (LINK_COMMAND_SPEC): Likewise. (init_gcc_specs): Likewise. (init_spec): Likewise. (display_help): Update help message for -pie. * doc/invoke.texi: Update -pie, -no-pie and -static. Document -static-pie. From-SVN: r252034
H.J. Lu committed -
Remove the remaining uses of '*' from the movsi/di/ti patterns. Using '*' in alternatives is typically incorrect at it tells the register allocator to ignore those alternatives. So remove these from all the integer move patterns. This removes unnecessary int to float moves, for example gcc.target/aarch64/pr62178.c no longer generates a redundant fmov since the w = m variant is now allowed. gcc/ * config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'. (movdi_aarch64): Likewise. (movti_aarch64): Likewise. From-SVN: r252033
Wilco Dijkstra committed -
PR target/80204 * config/darwin-driver.c (darwin_find_version_from_kernel): Eliminate calculation of the minor version, always output as 0. From-SVN: r252029
Simon Wright committed
-