- 28 May, 2018 18 commits
-
-
2018-05-28 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_unst.adb (Unnest_Subprogram): Prevent creation of empty activation records. From-SVN: r260831
Ed Schonberg committed -
2018-05-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> gcc/ada/ * exp_unst.adb (Check_Static_Type): Add argument to indicate node to be replaced, if any; all callers changed. (Note_Uplevel_Ref): Likewise. Also replace reference to deferred constant with private view so we take the address of that entity. (Note_Uplevel_Bound): Add argument to indicate node to be replaced, if any; all callers changed. Handle N_Indexed_Component like N_Attribute_Reference. Add N_Type_Conversion case. (Visit_Node): Indexed references can be uplevel if the type isn't static. (Unnest_Subprograms): Don't rewrite if no reference given. If call has been relocated, set first_named pointer in original node as well. From-SVN: r260830
Richard Kenner committed -
2018-05-28 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_aggr.adb (Flatten): Copy tree of expression in a component association with a range or a set of discrete choices, rather than relocating the node. This avoids inconsistencies in the tree when handling nested subprograms with uplevel references for LLVM. From-SVN: r260829
Ed Schonberg committed -
2018-05-28 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * exp_util.adb (Possible_Bit_Aligned_Component): Always return False in codepeer mode. From-SVN: r260828
Arnaud Charlet committed -
2018-05-28 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * exp_unst.adb: Fix typo. From-SVN: r260827
Arnaud Charlet committed -
2018-05-28 Bob Duff <duff@adacore.com> gcc/ada/ * libgnat/a-convec.adb (Query_Element): Minor cleanup: remove an unnecessary use of 'Unrestricted_Access. From-SVN: r260826
Bob Duff committed -
This patch modifies the output of the representation information related to aspect or pragma Linker_Section, achieved with compiler switch -gnatR2. The value of the section argument is now properly retrieved. Previously it was assumed that the value is always a N_String_Literal, however the semantics of the annotation allow for any static string expression, including a reference to a static string. ------------ -- Source -- ------------ -- linker_sections.ads package Linker_Sections is LS_1 : constant String := "1"; LS_2 : constant String := "2" & "2"; LS_3 : constant String := LS_1 & "3"; LS_4 : constant String := "4" & LS_2; Val_1 : Integer with Linker_Section => LS_1; Val_2 : Integer with Linker_Section => LS_2; Val_3 : Integer with Linker_Section => LS_3; Val_4 : Integer with Linker_Section => LS_4; Val_5 : Integer with Linker_Section => LS_1 & "5"; Val_6 : Integer with Linker_Section => LS_2 & "6"; Val_7 : Integer with Linker_Section => LS_3 & "7"; Val_8 : Integer with Linker_Section => LS_4 & "8"; Val_9 : Integer with Linker_Section => "9" & LS_1; Val_10 : Integer with Linker_Section => "10" & LS_2; Val_11 : Integer with Linker_Section => "11" & LS_3; Val_12 : Integer with Linker_Section => "12" & LS_4; Val_13 : Integer; pragma Linker_Section (Val_13, LS_1); Val_14 : Integer; pragma Linker_Section (Val_14, LS_2); Val_15 : Integer; pragma Linker_Section (Val_15, LS_3); Val_16 : Integer; pragma Linker_Section (Val_16, LS_4); Val_17 : Integer; pragma Linker_Section (Val_17, LS_1 & "5"); Val_18 : Integer; pragma Linker_Section (Val_18, LS_2 & "6"); Val_19 : Integer; pragma Linker_Section (Val_19, LS_3 & "7"); Val_20 : Integer; pragma Linker_Section (Val_20, LS_4 & "8"); Val_21 : Integer; pragma Linker_Section (Val_21, "9" & LS_1); Val_22 : Integer; pragma Linker_Section (Val_22, "10" & LS_2); Val_23 : Integer; pragma Linker_Section (Val_23, "11" & LS_3); Val_24 : Integer; pragma Linker_Section (Val_24, "12" & LS_4); end Linker_Sections; ----------------- -- Compilation -- ----------------- $ gcc -c -gnatR2s linker_sections.ads 2018-05-28 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * repinfo.adb (Expr_Value_S): New routine. (List_Linker_Section): Properly extract the value of the section argument. From-SVN: r260825
Hristian Kirtchev committed -
2018-05-28 Patrick Bernardi <bernardi@adacore.com> gcc/ada/ * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Update the description of the -D binder switch to reflect current usage. * gnat_ugn.texi: Regenerate. From-SVN: r260824
Patrick Bernardi committed -
2018-05-28 Gary Dismukes <dismukes@adacore.com> gcc/ada/ * exp_ch3.adb: Minor reformatting From-SVN: r260823
Gary Dismukes committed -
This patch fixes an issue whereby the compiler would raise spurious runtime errors when an array of null-excluding components was initialized with an expression which required the secondary stack (such as with an concatination operation) due to certain generated checks which were incorrected performed on internal object declarations. 2018-05-28 Justin Squirek <squirek@adacore.com> gcc/ada/ * exp_ch3.adb (Build_Initialization_Call): Add logic to pass the appropriate actual to match new formal. (Init_Formals): Add new formal *_skip_null_excluding_check * exp_util.adb, exp_util.ads (Enclosing_Init_Proc): Added to fetch the enclosing Init_Proc from the current scope. (Inside_Init_Proc): Refactored to use Enclosing_Init_Proc (Needs_Conditional_Null_Excluding_Check): Added to factorize the predicate used to determine how to generate an Init_Proc for a given type. (Needs_Constant_Address): Minor reformatting * sem_res.adb (Resolve_Null): Add logic to generate a conditional check in certain cases gcc/testsuite/ * gnat.dg/array31.adb: New testcase. From-SVN: r260822
Justin Squirek committed -
2018-05-28 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * exp_aggr.adb, gnatlink.adb, sem_ch6.adb, sem_res.adb, sem_util.adb: Minor reformatting. From-SVN: r260821
Hristian Kirtchev committed -
This patch modifies the analysis of aspect/pragma Volatile to correct accept the annotation when it applies to single protected and single task types, and SPARK_Mode On is in effect. ------------ -- Source -- ------------ -- pack.ads package Pack with SPARK_Mode is protected PO_Aspect with Volatile is end; -- OK protected PO_Pragma is end; pragma Volatile (PO_Pragma); -- OK task TO_Aspect with Volatile; -- OK task TO_Pragma; pragma Volatile (TO_Pragma); -- OK end Pack; ---------------------------- -- Compilation and output -- ---------------------------- $ gcc -c pack.ads $ gcc -c pack.ads -gnatd.F cannot generate code for file pack.ads (package spec) 2018-05-28 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * sem_prag.adb (Process_Atomic_Independent_Shared_Volatile): Include the declarations of single concurrent types because they fall in the category of full type and object declarations. From-SVN: r260820
Hristian Kirtchev committed -
This changes the output of -gnatR for extensions of tagged record types to avoid displaying the internal _Parent component, which overlaps with other components and is thus more confusing than helpful. For the following hierarchy: type R1 is tagged record I : Integer; end record; type R2 is new R1 with record C : Character; end record; the output -gnatR must now be: for R1'Object_Size use 128; for R1'Value_Size use 96; for R1'Alignment use 8; for R1 use record _Tag at 0 range 0 .. 63; I at 8 range 0 .. 31; end record; for R2'Object_Size use 192; for R2'Value_Size use 136; for R2'Alignment use 8; for R2 use record _Tag at 0 range 0 .. 63; I at 8 range 0 .. 31; C at 16 range 0 .. 7; end record; 2018-05-28 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * repinfo.adb (Compute_Max_Length): Skip _Parent component. (List_Record_Layout): Likewise. From-SVN: r260819
Eric Botcazou committed -
This patch adds a warning to a function call that appears within a postcondition for said function. This may mean an omission of an attribute reference 'Result, and may lead to an infinite loop on a call to that function. Compiling post_error.ads must yield: post_error.ads:3:11: warning: postcondition does not mention function result post_error.ads:3:19: warning: call to "Foo" within its postcondition will lead to infinite recursion ---- package Post_Error is function Foo (A : out Integer) return Integer with Post => Foo (A) /= 0; pragma Import (C, Foo); end Post_Error; 2018-05-28 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_util.adb (Is_Function_Result): Add a warning if a postcondition includes a call to function to which it applies. This may mean an omission of an attribute reference 'Result, in particular if the function is pqrameterless. From-SVN: r260818
Ed Schonberg committed -
This patch fixes an issue whereby the compiler misidentified a package name containing the name of a standard runtime package as said package - leading to and improper error message prompting the user to "With" a package already in scope. 2018-05-28 Justin Squirek <squirek@adacore.com> gcc/ada/ * sem_ch8.adb (Find_Expanded_Name): Add extra guard to make sure the misresolved package name is not a case of mistaken identity. gcc/testsuite/ * gnat.dg/warn15-core-main.adb, gnat.dg/warn15-core.ads, gnat.dg/warn15-interfaces.ads, gnat.dg/warn15.ads: New testcase. From-SVN: r260817
Justin Squirek committed -
Some static bounds of types are not recognized and evaluated as such in the semantic analysis phase of the frontend, which leads to incomplete information in GNATprove. Fix that in the GNATprove mode only, as this is not needed when full expansion is used. There is no impact on compilation. 2018-05-28 Yannick Moy <moy@adacore.com> gcc/ada/ * sem_res.adb (Resolve_Range): Re-resolve the low bound of a range in GNATprove mode, as the order of resolution (low then high) means that all the information is not available when resolving the low bound the first time. From-SVN: r260816
Yannick Moy committed -
This steamlines a bit the implementation. No functional changes. 2018-05-28 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * repinfo.adb (List_Array_Info): Start with an explicit blank line and end with the linker section, if any. (List_Entities): Do not output the linker section for record types, array types and variables. (Print_Expr): Factor out common processing for unary operators and special values. Adjust and reorder the various cases. (List_Object_Info): End with the linker section, if any. (List_Record_Info): Likewise. (List_Type_Info): Do not start with a blank line. From-SVN: r260815
Eric Botcazou committed -
From-SVN: r260814
GCC Administrator committed
-
- 27 May, 2018 8 commits
-
-
* config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Define to 0. From-SVN: r260809
John David Anglin committed -
2018-05-27 Steven G. Kargl <kargl@gcc.gnu.org> * decl.c (match_data_constant): Fortran 2018 allows pointer initialization in a data statement. 2018-05-27 Steven G. Kargl <kargl@gcc.gnu.org> * gfortran.dg/data_stmt_pointer.f90: new test. From-SVN: r260808
Steven G. Kargl committed -
* config/pdp11/pdp11.md (truncsihi2): Remove. From-SVN: r260807
Paul Koning committed -
2018-05-27 François Dumont <fdumont@gcc.gnu.org> * include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New. (_Rb_tree(const allocator_type&)): Use latter. * include/bits/stl_map.h (map(const allocator_type&)): Likewise. (map(initializer_list<value_type>, const allocator_type&)): Likewise. (map(_InputIterator, _InputIterator, const allocator_type&)): Likewise. * include/bits/stl_multimap.h (multimap(const allocator_type&)): Likewise. (multimap(initializer_list<value_type>, const allocator_type&)): Likewise. (multimap(_InputIterator, _InputIterator, const allocator_type&)): Likewise. * include/bits/stl_set.h (set(const allocator_type&)): Likewise. (set(initializer_list<value_type>, const allocator_type&)): Likewise. (set(_InputIterator, _InputIterator, const allocator_type&)): Likewise. * include/bits/stl_multiset.h (multiset(const allocator_type&)): Likewise. (multiset(initializer_list<value_type>, const allocator_type&)): Likewise. (multiset(_InputIterator, _InputIterator, const allocator_type&)): Likewise. From-SVN: r260806
François Dumont committed -
gcc/ * config/nds32/nds32-intrinsic.md (unaligned_storedi): Modify patterns implementation. (unaligned_store_dw): Ditto. * config/nds32/nds32-memory-manipulation.c (nds32_expand_movmemsi_loop_known_size): Refactoring implementation. (nds32_gen_dup_4_byte_to_word_value): Rename to ... (nds32_gen_dup_4_byte_to_word_value_aux): ... this. (emit_setmem_word_loop): Rename to ... (emit_setmem_doubleword_loop): ... this. (nds32_gen_dup_4_byte_to_word_value): New function. (nds32_gen_dup_8_byte_to_double_word_value): New function. (nds32_expand_setmem_loop): Refine implementation. (nds32_expand_setmem_loop_v3m): Ditto. * config/nds32/nds32-multiple.md (unaligned_store_update_base_dw): New pattern. Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com> From-SVN: r260805
Monk Chiang committed -
gcc/ * config/nds32/nds32.md (bswapsi2, bswaphi2): New patterns. From-SVN: r260804
Chung-Ju Wu committed -
gcc/ * config/nds32/nds32.c (nds32_attribute_table): Add "no_prologue". (nds32_init_machine_status): Initialize machine->attr_naked_p and machine->attr_no_prologue_p. (nds32_compute_stack_frame): Check "naked" and "no_prologue" attributes. (nds32_naked_function_p): Handle "naked" and "no_prologue" attributes. (nds32_expand_epilogue): Consider attr_naked_p. (nds32_expand_epilogue_v3pop): Likewise. (nds32_can_use_return_insn): Likewise. * config/nds32/nds32.h (machine_function): Add attr_naked_p and attr_no_prologue_p fields. * config/nds32/nds32.opt (mret-in-naked-func): New option. From-SVN: r260803
Chung-Ju Wu committed -
From-SVN: r260801
GCC Administrator committed
-
- 26 May, 2018 8 commits
-
-
re PR target/85918 (Conversions to/from [unsigned] long long are not vectorized for AVX512DQ target) PR target/85918 * config/i386/i386.md (fixunssuffix, floatunssuffix): New code attributes. * config/i386/sse.md (<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>): Rename to ... (float<floatunssuffix><sseintvecmodelower><mode>2<mask_name><round_name>): ... this. (<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>): Rename to ... (float<floatunssuffix><sselongvecmodelower><mode>2<mask_name><round_name>): ... this. (*<floatsuffix>floatv2div2sf2): Rename to ... (*float<floatunssuffix>v2div2sf2): ... this. (<floatsuffix>floatv2div2sf2_mask): Rename to ... (float<floatunssuffix>v2div2sf2_mask): ... this. (*<floatsuffix>floatv2div2sf2_mask_1): Rename to ... (*float<floatunssuffix>v2div2sf2_mask_1): ... this. (<fixsuffix>fix_truncv8dfv8si2<mask_name><round_saeonly_name>): Rename to ... (fix<fixunssuffix>_truncv8dfv8si2<mask_name><round_saeonly_name>): ... this. (<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>): Rename to ... (fix<fixunssuffix>_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>): ... this. (<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>): Rename to ... (fix<fixunssuffix>_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>): ... this. (<fixsuffix>fix_truncv2sfv2di2<mask_name>): Rename to ... (fix<fixunssuffix>_truncv2sfv2di2<mask_name>): ... this. (vec_pack_ufix_trunc_<mode>): Use gen_fixuns_truncv8dfv8si2 instead of gen_ufix_truncv8dfv8si2. * config/i386/i386-builtin.def (__builtin_ia32_cvttpd2uqq256_mask, __builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvttps2uqq256_mask, __builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvtuqq2ps256_mask, __builtin_ia32_cvtuqq2ps128_mask, __builtin_ia32_cvtuqq2pd256_mask, __builtin_ia32_cvtuqq2pd128_mask, __builtin_ia32_cvttpd2udq512_mask, __builtin_ia32_cvtuqq2ps512_mask, __builtin_ia32_cvtuqq2pd512_mask, __builtin_ia32_cvttps2uqq512_mask, __builtin_ia32_cvttpd2uqq512_mask): Use fixuns instead ufix or floatuns instead ufloat in CODE_FOR_ names. * gcc.target/i386/avx512dq-pr85918.c: New test. From-SVN: r260797
Jakub Jelinek committed -
From-SVN: r260796
Jerry DeLisle committed -
2018-05-26 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libgfortran/89506 * io/write.c (write_integer): Initialise the fnode format to FMT_NONE, used for list directed write. (BUF_STACK_SZ): Bump default buffer size up to avoid allocs on small stuff. From-SVN: r260795
Jerry DeLisle committed -
From-SVN: r260794
Jerry DeLisle committed -
2018-05-26 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libgfortran/85840 * io/write.c (write_float_0): Use separate local variable for the float string length. From-SVN: r260793
Jerry DeLisle committed -
Since ifunc_resolver isn't set when an error is detected, we should lookup ifunc attribute in this case. PR target/85900 PR target/85345 * varasm.c (assemble_alias): Lookup ifunc attribute on error. From-SVN: r260792
H.J. Lu committed -
PR bootstrap/85921 * c-warn.c (diagnose_mismatched_attributes): Remove unnecessary noinline variable to workaround broken kernel headers. From-SVN: r260790
Jakub Jelinek committed -
From-SVN: r260789
GCC Administrator committed
-
- 25 May, 2018 6 commits
-
-
gcc/ * config/riscv/riscv-protos.h (riscv_epilogue_uses): New. * config/riscv/riscv.c (struct machine_function): Add interrupt_handler_p and attribute_checked_p fields. (riscv_attribute_table): Add interrupt. (riscv_interrupt_type_p): New. (riscv_save_reg_p): Save extra regs for interrupt handler. (riscv_use_save_libcall): Return false for interrupt handler. (riscv_first_stack_step): Add forward declaration. (riscv_compute_frame_info): New local interrupt_save_t1. Set it for interrupt handler with large frame. Use it for saved reg list. (riscv_expand_prologue): Move flag_stack_usage_info support to eliminate duplication. (riscv_expand_epilogue): Generate mret for interrupt handler. (riscv_epilogue_uses): New. (riscv_can_use_return_insn): Return false for interrupt handler. (riscv_function_ok_for_sibcall): Likewise. (riscv_set_current_function): Add interrupt handler support. * config/riscv/riscv.h (EPILOGUE_USES): Call riscv_epilogue_uses. * config/riscv/riscv.md (UNSPECV_MRET): New. (GP_REGNUM): New. (riscv_frflags, riscv_fsflags): Use tab after opcode. (riscv_mret): New. * doc/extend.texi (RISC-V Function Attributes) <interrupt>: New. gcc/testsuite/ * gcc.target/riscv/interrupt-1.c: New. * gcc.target/riscv/interrupt-2.c: New. * gcc.target/riscv/interrupt-3.c: New. * gcc.target/riscv/interrupt-4.c: New. * gcc.target/riscv/interrupt-5.c: New. From-SVN: r260785
Jim Wilson committed -
2018-05-25 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/85786 * gfortran.dg/pr85786.f90: New test. From-SVN: r260783
Steven G. Kargl committed -
* search.c (lookup_base): Use currently_open_class. (lookup_member): Use it regardless of -fconcepts. * parser.c (cp_parser_postfix_dot_deref_expression): Check it. From-SVN: r260782
Jason Merrill committed -
* gcc.c-torture/compile/20151204.c: Skip if pdp11. * gcc.c-torture/compile/pr55921.c: Ditto. * gcc.c-torture/compile/pr60655-1.c: Ditto. * gcc.c-torture/compile/vector-align-1.c: Add max alignment if pdp11. From-SVN: r260781
Paul Koning committed -
* tree.c (lvalue_kind): Fix handling of ARRAY_REF of pointer. From-SVN: r260780
Jason Merrill committed -
re PR tree-optimization/85712 (ICE in all_phi_incrs_profitable_1 at gcc/gimple-ssa-strength-reduction.c:3479) 2018-05-25 Bill Schmidt <wschmidt@linux.ibm.com> PR tree-optimization/85712 * gimple-ssa-strength-reduction.c (replace_one_candidate): Skip if this candidate has already been replaced in-situ by a copy. From-SVN: r260772
Bill Schmidt committed
-