- 10 Oct, 2018 12 commits
-
-
re PR middle-end/87574 (ICE in add_data_member_location_attribute at gcc/gcc/dwarf2out.c:19226 since r264943) PR middle-end/87574 * cgraphunit.c (cgraph_node::expand_thunk): Force DECL_IGNORED_P on the thunk when expanding to GIMPLE. From-SVN: r265028
Eric Botcazou committed -
* constexpr.c (potential_constant_expression_1) <case FOR_STMT>: Return true if the condition is always false. <case WHILE_STMT>: Likewise. * g++.dg/cpp1y/constexpr-loop7.C: New test. From-SVN: r265027
Marek Polacek committed -
most likely by twice applying the patch which added the testcases. This patch removes the duplicated code. [gcc/testsuite] 2018-10-10 Paul A. Clarke <pc@us.ibm.com> PR target/87579 * gcc.target/powerpc/sse3-check.h: Remove duplicated code. * gcc.target/powerpc/sse3-addsubps.c: Likewise. * gcc.target/powerpc/sse3-addsubpd.c: Likewise. * gcc.target/powerpc/sse3-haddps.c: Likewise. * gcc.target/powerpc/sse3-hsubps.c: Likewise. * gcc.target/powerpc/sse3-haddpd.c: Likewise. * gcc.target/powerpc/sse3-hsubpd.c: Likewise. * gcc.target/powerpc/sse3-lddqu.c: Likewise. * gcc.target/powerpc/sse3-movsldup.c: Likewise. * gcc.target/powerpc/sse3-movshdup.c: Likewise. * gcc.target/powerpc/sse3-movddup.c: Likewise. * gcc.target/powerpc/pr37191.c: Likewise. From-SVN: r265026
Paul A. Clarke committed -
2018-10-10 Bernd Edlinger <bernd.edlinger@hotmail.de> * varasm.c (mergeable_string_section): Don't try to move zero-length strings to the merge section. From-SVN: r265025
Bernd Edlinger committed -
gcc/testsuite/ChangeLog: * gcc.dg/transparent-union-6.c: New. From-SVN: r265024
Martin Sebor committed -
The C++17 standard requires the default implementation for allocator_traits::max_size to return SIZE_MAX / sizeof(value_type). That causes GCC to warn because the value could be larger than can sensibly be passed to malloc. This patch changes the new_allocator and malloc_allocator max_size() members to use PTRDIFF_MAX instead of SIZE_MAX (and because they define it, the allocator_traits default isn't used). This also changes vector::max_size to impose a sensible limit using PTRDIFF_MAX for cases where the value from the allocator or allocator_traits is not sensible. PR libstdc++/87544 * include/bits/stl_vector.h (vector::_S_max_size): Limit size to PTRDIFF_MAX / sizeof(value_type). * include/ext/malloc_allocator.h (malloc_allocator::max_size): Likewise. * include/ext/new_allocator.h (new_allocator::max_size): Likewise. * testsuite/23_containers/vector/allocator/minimal.cc: Adjust expected value for max_size(). * testsuite/23_containers/vector/capacity/87544.cc: New test. From-SVN: r265021
Jonathan Wakely committed -
gcc/testsuite/ChangeLog: * gcc.c-torture/execute/memchr-1.c: Avoid assuming 4-byte wchar_t. Add a test for 2-byte wchar_t. * gcc.dg/builtin-memchr.c: New test. From-SVN: r265020
Martin Sebor committed -
PR target/87573 * config/i386/mmx.md (const_vector 0 -> mem splitter): New splitter. testsuite/ChangeLog: PR target/87573 * gcc.target/i386/pr87573.c: New test. From-SVN: r265019
Uros Bizjak committed -
re PR target/87550 (Intrinsics for rdpmc (__rdpmc, __builtin_ia32_rdpmc) are interpreted as pure functions) PR target/87550 * config/i386/i386-builtin.def (IX86_BUILTIN_RDPMC): Move from args set to special_args set. * gcc.target/i386/pr87550.c: New test. From-SVN: r265007
Jakub Jelinek committed -
PR c/87286 * gcc.dg/pr87286.c: Add -Wno-psabi to dg-options. From-SVN: r265006
Jakub Jelinek committed -
sse.md (reduc_plus_scal_v8df, [...]): Merge into pattern reducing to half width and recursing and pattern terminating... 2018-10-10 Richard Biener <rguenther@suse.de> * config/i386/sse.md (reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df, reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf): Merge into pattern reducing to half width and recursing and pattern terminating the recursion on SSE vector width using ix86_expand_reduc. (reduc_sminmax_scal_<mode>): Split into part reducing to half width and recursing and SSE2 vector variant doing the final reduction with ix86_expand_reduc. (reduc_uminmax_scal_<mode>): Likewise for the AVX512 variants with terminating the recursion at AVX level, splitting that to SSE there. From-SVN: r265004
Richard Biener committed -
From-SVN: r265003
GCC Administrator committed
-
- 09 Oct, 2018 28 commits
-
-
This patch renames the "error" callback within libcpp to "diagnostic", and uses the pair of enums in cpplib.h, rather than passing two different kinds of "int" around. gcc/c-family/ChangeLog: * c-common.c (c_option_controlling_cpp_error): Rename to... (c_option_controlling_cpp_diagnostic): ...this, and convert "reason" from int to enum. (c_cpp_error): Rename to... (c_cpp_diagnostic): ...this, converting level and reason to enums. * c-common.h (c_cpp_error): Rename to... (c_cpp_diagnostic): ...this, converting level and reason to enums. * c-opts.c (c_common_init_options): Update for renaming. gcc/fortran/ChangeLog: * cpp.c (gfc_cpp_init_0): Update for renamings. (cb_cpp_error): Rename to... (cb_cpp_diagnostic): ...this, converting level and reason to enums. gcc/ChangeLog: * genmatch.c (error_cb): Rename to... (diagnostic_cb): ...this, converting int params to enums. (fatal_at): Update for renaming. (warning_at): Likewise. (main): Likewise. * input.c (selftest::ebcdic_execution_charset::apply): Update for renaming of... (selftest::ebcdic_execution_charset::on_error): ...this, renaming to... (selftest::ebcdic_execution_charset::on_diagnostic): ...this, converting level and reason to enums. (class selftest::lexer_error_sink): Rename to... (class selftest::lexer_test_options): ...this, renaming field "m_errors" to "m_diagnostics". (selftest::lexer_test_options::apply): Update for renaming of... (selftest::lexer_test_options::on_error): ...this, renaming to... (selftest::lexer_test_options::on_diagnostic): ...this converting level and reason to enums. (selftest::test_lexer_string_locations_raw_string_unterminated): Update for renamings. * opth-gen.awk (struct cpp_reason_option_codes_t): Use enum for "reason". libcpp/ChangeLog: * charset.c (noop_error_cb): Rename to... (noop_diagnostic_cb): ...this, converting params to enums. (cpp_interpret_string_ranges): Update for renaming and enums. * directives.c (check_eol_1): Convert reason to enum. (do_diagnostic): Convert code and reason to enum. (do_error): Use CPP_W_NONE rather than 0. (do_pragma_dependency): Likewise. * errors.c (cpp_diagnostic_at): Convert level and reason to enums. Update for renaming. (cpp_diagnostic): Convert level and reason to enums. (cpp_error): Convert level to enum. (cpp_warning): Convert reason to enums. (cpp_pedwarning): Likewise. (cpp_warning_syshdr): Likewise. (cpp_diagnostic_with_line): Convert level and reason to enums. Update for renaming. (cpp_error_with_line): Convert level to enum. (cpp_warning_with_line): Convert reason to enums. (cpp_pedwarning_with_line): Likewise. (cpp_warning_with_line_syshdr): Likewise. (cpp_error_at): Convert level to enum. (cpp_errno): Likewise. (cpp_errno_filename): Likewise. * include/cpplib.h (enum cpp_diagnostic_level): Name this enum, and move to before struct cpp_callbacks. (enum cpp_warning_reason): Likewise. (cpp_callbacks::diagnostic): Convert params from int to enums. (cpp_error): Convert int param to enum cpp_diagnostic_level. (cpp_warning): Convert int param to enum cpp_warning_reason. (cpp_pedwarning): Likewise. (cpp_warning_syshdr): Likewise. (cpp_errno): Convert int param to enum cpp_diagnostic_level. (cpp_errno_filename): Likewise. (cpp_error_with_line): Likewise. (cpp_warning_with_line): Convert int param to enum cpp_warning_reason. (cpp_pedwarning_with_line): Likewise. (cpp_warning_with_line_syshdr): Likewise. (cpp_error_at): Convert int param to enum cpp_diagnostic_level. * macro.c (create_iso_definition): Convert int to enum. (_cpp_create_definition): Likewise. From-SVN: r264999
David Malcolm committed -
/cp 2018-10-09 Paolo Carlini <paolo.carlini@oracle.com> PR c++/84423 * pt.c (convert_template_argument): Immediately return error_mark_node if the second argument is erroneous. * parser.c (cp_parser_type_id): Add location_t * parameter. (cp_parser_type_id_1): Likewise. (cp_parser_alias_declaration): Adjust cp_parser_type_id call, obtain the location of the type and save it. (cp_parser_template_type_arg): Adjust. (cp_parser_trailing_type_id): Likewise. * decl.c (grokdeclarator): Improve error message for 'auto' in alias declaration. /testsuite 2018-10-09 Paolo Carlini <paolo.carlini@oracle.com> PR c++/84423 * g++.dg/concepts/pr84423-1.C: New. * g++.dg/concepts/pr84423-2.C: Likewise. * g++.dg/cpp0x/auto39.C: Test location too. * g++.dg/cpp0x/auto9.C: Likewise. * g++.dg/cpp1y/pr60384.C: Likewise. From-SVN: r264996
Paolo Carlini committed -
* include/bits/stl_list.h (_List_operator<>::operator==): Replace member function with inline friend. (_List_operator<>::operator!=): Likewise. (_List_const_operator<>::operator==): Likewise. (_List_const_operator<>::operator!=): Likewise. (operator==(const _List_iterator<>&, const _List_const_iterator<>&)): Remove. (operator!=(const _List_iterator<>&, const _List_const_iterator<>&)): Remove. From-SVN: r264993
François Dumont committed -
This is part 2/2 for contributing PPC64LE support for X86 SSE3 instrisics. This patch includes testsuite/gcc.target tests for the intrinsics defined in pmmintrin.h. Tested on POWER8 ppc64le and ppc64 (-m64 and -m32, the latter only reporting 10 new unsupported tests.) [gcc/testsuite] 2018-10-09 Paul A. Clarke <pc@us.ibm.com> * gcc.target/powerpc/sse3-check.h: New file. * gcc.target/powerpc/sse3-addsubps.c: New file. * gcc.target/powerpc/sse3-addsubpd.c: New file. * gcc.target/powerpc/sse3-haddps.c: New file. * gcc.target/powerpc/sse3-hsubps.c: New file. * gcc.target/powerpc/sse3-haddpd.c: New file. * gcc.target/powerpc/sse3-hsubpd.c: New file. * gcc.target/powerpc/sse3-lddqu.c: New file. * gcc.target/powerpc/sse3-movsldup.c: New file. * gcc.target/powerpc/sse3-movshdup.c: New file. * gcc.target/powerpc/sse3-movddup.c: New file. * gcc.target/powerpc/pr37191.c: New file. From-SVN: r264992
Paul A. Clarke committed -
This is a follow-on to earlier commits for adding compatibility implementations of x86 intrinsics for PPC64LE. This is a follow-on to earlier commits for adding compatibility implementations of x86 intrinsics for PPC64LE. This is the first of two patches. This patch adds 11 of the 13 x86 intrinsics from <pmmintrin.h> ("SSE3"). (Patch 2/2 adds tests for these intrinsics, and briefly describes the tests performed.) Implementations are relatively straightforward, with occasional extra effort for vector element ordering. Not implemented are _mm_wait and _mm_monitor, as there are no direct or trivial analogs in the POWER ISA. ./gcc/ChangeLog: 2018-10-05 Paul A. Clarke <pc@us.ibm.com> * config.gcc (powerpc*-*-*): Add pmmintrin.h to extra_headers. * config/rs6000/pmmintrin.h: New file. From-SVN: r264991
Paul A. Clarke committed -
2018-10-09 Tobias Burnus <burnus@net-b.de> PR fortran/83522 * resolve.c (resolve_ref): Reject nonscalar substring references. PR fortran/83522 * gfortran.dg/actual_array_substr_1.f90: Add dg-error, change to dg-do compile. * gfortran.dg/actual_array_substr_2.f90: Ditto. * gfortran.dg/array_initializer_1.f90: Use array element not size-one section. * gfortran.dg/array_substring.f90: New. From-SVN: r264990
Tobias Burnus committed -
PR tree-optimization/86659 * gimple-match.h (gimple_match_op constructors): Initialize reverse. From-SVN: r264986
Eric Botcazou committed -
LLVM doesn't support non-call exception. This test was passing more or less by luck: if the faulting instruction is between two calls with the same landing pad (in instruction layout order, not the program's logic order), it generates a merged PC range that covers the faulting instruction. If the instruction layout order changes, or it uses two different (but may be degenerate) landing pads, this doesn't work. Reviewed-on: https://go-review.googlesource.com/c/140517 From-SVN: r264985
Ian Lance Taylor committed -
This change is aimed at getting rid of spurious -Wuninitialized warnings issued for small records passed by copy and containing default values for some of their components. The source of the problem is that the _Init parameter of the initialization routine is declared as an in/out parameter, so the uninitialized object is passed by copy to it and this can be flagged by -Wuninitialized. That's why the mode of the parameter is changed to out, except for the cases where information really needs to be passed in: unconstrained array types, protected and task types. For the following record type Rec! type Rec is record B : Boolean := True; end record; the initialization routine must now be: procedure r__recIP (_init : out r__rec1) is begin _init.b := true; return; end r__recIP; 2018-10-09 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * exp_ch3.adb (Is_Null_Statement_List): New predicate. (Build_Array_Init_Proc): Use it to find out whether the initialization procedure Is_Null_Init_Proc; if so, set Warnings_Off on the parameter. (Build_Init_Procedure): Likewise. (Init_Formals): Use an in/out first parameter only for unconstrained arrays and for records either containing or built for proteced types or task types; use an out parameter in all the other cases. * fe.h (Is_Init_Proc): Declare. * gcc-interface/decl.c (type_requires_init_of_formal): Do not return true for a discriminant in an unchecked union. (gnat_to_gnu_param): Do not create a PARM_DECL for the Out parameter of an initialization procedure. From-SVN: r264984
Eric Botcazou committed -
2018-10-09 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: If this is not a definition, retrieve the expression in all cases even if we are just annotating types. * gcc-interface/trans.c (gnat_to_gnu): Also translate Size attribute for constrained types in this mode. From-SVN: r264983
Eric Botcazou committed -
2018-10-09 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * adaint.c (__gnat_get_executable_suffix_ptr): Add new line. (__gnat_locate_exec): Check that HOST_EXECUTABLE_SUFFIX is not empty before doing a string search for it. * socket.c (ATTRIBUTE_UNUSED): Define. (__gnat_disable_sigpipe): Add ATTRIBUTE_UNUSED on parameter. * terminals.c (ATTRIBUTE_UNUSED): Move around. (__gnat_setup_child_communication): Add ATTRIBUTE_UNUSED on parameter. (__gnat_send_header): Add ATTRIBUTE_UNUSED on parameters. From-SVN: r264982
Eric Botcazou committed -
GNATprove does not have sometimes the precise information of the compiler about size of types and objects, so that it cannot evaluate the expressions in pragma Compile_Time_Error/Warning the same way the compiler does. Thus, these pragmas should be ignored in GNATprove mode, as it can neither verify them nor assume them (if the expression cannot be evaluated at compile time, then the semantics for GNAT is to ignore them). 2018-10-09 Yannick Moy <moy@adacore.com> gcc/ada/ * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Rewrite pragmas as null statements in GNATprove mode. From-SVN: r264981
Yannick Moy committed -
This fixlet gets rid of a spurious error issued in the specific case of a call to a subprogram taking an Out parameter of a discriminated record type without default discriminants, if the actual parameter is the result of the conversion to the record type of a variable whose type is derived from the record and has a representation clause. The compiler was failing to initialize the temporary made around the call because of the representation clause, but this is required for a type with discriminants because discriminants may be read by the called subprogram. 2018-10-09 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize the temporary made for an Out parameter if the formal type has discriminants. gcc/testsuite/ * gnat.dg/derived_type5.adb, gnat.dg/derived_type5_pkg.ads: New testcase. From-SVN: r264980
Eric Botcazou committed -
2018-10-09 Maroua Maalej <maalej@adacore.com> gcc/ada/ * sem_spark.adb (Check_Declaration): fix bug related to non access object permissions. From-SVN: r264979
Maroua Maalej committed -
2018-10-09 Doug Rupp <rupp@adacore.com> gcc/ada/ * libgnat/a-ncelfu.ads: Fix name in header to match package. From-SVN: r264978
Doug Rupp committed -
The back-end was recently changed to issue more -Wuninitialized warnings on Out parameters and this has caught a case related to Ada.Iterator_Interface.: This patchlet simply kills this uninteresting warning. 2018-10-09 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * exp_disp.adb (Make_Disp_Asynchronous_Select_Spec): Set Warnings_Off on the B out parameter. gcc/testsuite/ * gnat.dg/warn17.adb: New testcase. From-SVN: r264977
Eric Botcazou committed -
2018-10-09 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * einfo.ads: Small comment fix. From-SVN: r264976
Eric Botcazou committed -
This fixes a recent regression introduced in the compiler for the inlined renaming of a subprogram instantiated in a package body. It was wrongly clearing the Is_Public flag on the entity associated with the body. 2018-10-09 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * sem_ch7.adb (Has_Referencer): Add comment for the N_Freeze_Entity case. Do not rely on Has_Referencer_Of_Non_Subprograms to clear the Is_Public flag on subprogram entities. gcc/testsuite/ * gnat.dg/inline14.adb, gnat.dg/inline14_pkg.adb, gnat.dg/inline14_pkg.ads: New testcase. From-SVN: r264975
Eric Botcazou committed -
2018-10-09 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_unst.adb (In_Synchronized_Call): Handle properly private types whose full views are synchronized types, in order to recognize generated subprograms whose bodies must be considered reachable even if no direct calls to them are visible in the source. From-SVN: r264974
Ed Schonberg committed -
2018-10-09 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_ch4.adb (Expand_Modular_Op): When expanding an operation on nonbinary modular types, convert the opersnds to an integer type that is large enough to hold the modulus of the type, which may be larger than Integer'Last. From-SVN: r264973
Ed Schonberg committed -
2018-10-09 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_unst.adb (Unnest_Subprogram): When an uplevel reference is to an unconstrained formal, the 'Access reference that is created to initialize the corresponding component of the activation record must be wrapped in an unchecked conversion to the generated type of the component. Otherwise, spurious suvtype conformance errors will be generated when the code is within an instantiation and the type of the formal is a formal type of the enclosing generic. Note that during unnesting there is no simple way to determine that the code appears within an instance because ther is no scope stack. From-SVN: r264972
Ed Schonberg committed -
2018-10-09 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * gcc-interface/decl.c (type_requires_init_of_formal): New predicate. (gnat_to_gnu_param): Use it to determine whether a PARM_DECL must be created for an Out parameter passed by copy. From-SVN: r264971
Eric Botcazou committed -
2018-10-09 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * libgnat/a-coboho.ads (Storage_Element): Fix a typo. From-SVN: r264970
Arnaud Charlet committed -
2018-10-09 Claire Dross <dross@adacore.com> gcc/ada/ * libgnat/a-cfinve.ads: Remove default value for Max_Size_In_Storage_Elements as it was not supported in SPARK. From-SVN: r264969
Claire Dross committed -
2018-10-09 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_ch6.adb (Add_Call_By_Copy_Node, Add_Simple_Call_By_Copy_Node, Expand_Call_Helper): Reset Is_True_Constant on entities used as Out or In_Out parameters in calls. From-SVN: r264968
Ed Schonberg committed -
2018-10-09 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_unst.adb (Unnest_Subprogram): Do not load System to obtain the Address entity unless an activation record is being built. Removes useless with_clauses for System when nested subprograms do not have uplevel references, and therefore do not need activation records. From-SVN: r264967
Ed Schonberg committed -
This patch removes an improper error message on a visibility change in an aspect expression between the freeze point and the end of the declaration list, when the expression involves a call to a instance of Unchecked_Conversion and the enclosing package declaration has a package body with multiple subprogram bodies. The following must compile quietly: ---- package body Par.Rep is procedure Nothing is begin null; end; procedure Rien is begin null; end; end; ---- with Par.Loc; package Par.Rep is type Rec is record X, Y : Integer; end record with Volatile; Thing2 : Unsigned_32 := 15; Thing3 : Rec with Volatile, Address => To_Address (Par.Loc.Flash_Base); procedure Nothing; end; ---- pragma Restrictions (No_Elaboration_Code); with interfaces; use interfaces; pragma unreferenced (interfaces); with Tp; use Tp; pragma unreferenced (Tp); package Par is end Par; ---- with Ada.Unchecked_Conversion; with System; with Interfaces; use Interfaces; package Tp is subtype system_address is unsigned_32; function to_address is new ada.unchecked_conversion (system_address, system.address); function To_32 is new ada.unchecked_conversion (System.Address, System_Address); end; ---- with TP; use TP; package Par.Loc is FLASH_BASE : constant system_address := 16#0800_0000#; end; 2018-10-09 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_ch6.adb (Fully_Conformant_Expressions): Handle properly the conformance check on an aspect expression that includes a call to an instance of Unchecked_Conversion, or more generally a call to an intrinsic operation. From-SVN: r264966
Ed Schonberg committed -
2018-10-09 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * repinfo.adb: Remove with/use clause for Stand. (List_Mechanisms): List the mechanism of functions only. From-SVN: r264965
Eric Botcazou committed
-