Ilya Enkovich [Wed, 25 Feb 2015 15:05:48 +0000 (15:05 +0000)]
re PR target/65167 (ICE: in assign_by_spills, at lra-assigns.c:1383 (unable to find a register to spill) with -O -fschedule-insns -fcheck-pointer-bounds -mmpx)
gcc/
PR target/65167
* gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
bounds registers.
(avoid_func_arg_motion): Add dependencies for BNDSTX insns.
DJ Delorie [Tue, 24 Feb 2015 21:52:19 +0000 (16:52 -0500)]
rl78-protos.h (rl78_split_movsi): Accept a mode as well.
* config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as
well.
* config/rl78/rl78-expand.md (movsf): New, same as movsi.
* config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
instead of hardcoding SImode.
Alan Modra [Tue, 24 Feb 2015 00:00:59 +0000 (10:30 +1030)]
re PR middle-end/65182 (-Wuninitialized fails when pointer to variable later passed to function (fixed? add testcase?))
PR target/65182
* config/rs6000/rs6000.c (get_memref_parts): Only return true
when *base is a reg. Handle nested plus addresses. Simplify
pre_modify test.
Max Filippov [Mon, 23 Feb 2015 23:35:31 +0000 (23:35 +0000)]
xtensa: align data naturally when optimizing for size
gcc for xtensa always aligns data at least to a word boundary, even when
it has smaller natural alignment. This results in unexpectedly high data
section sizes and unreasonable amount of wasted space when linking
objects compiled with -fdata-sections flag.
Align data naturally when optimization for size is enabled.
2015-02-22 Max Filippov <jcmvbkbc@gmail.com>
gcc/
* config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
use natural alignment when optimizing for size.
Martin Sebor [Mon, 23 Feb 2015 21:46:18 +0000 (21:46 +0000)]
re PR target/65109 (r220674 causes FAIL: gcc.target/powerpc/ppc64-abi-1.c execution test)
PR target/65109
* gcc.target/powerpc/ppc64-abi-1.c: Split test functions into
two parts. One to save registers, the other to verify the
registers have the right values. Save register state into
static data rather than on the stack.
Thomas Schwinge [Mon, 23 Feb 2015 17:51:41 +0000 (18:51 +0100)]
[PR target/65181] nvptx libgcc: Prevent building "advanced" stuff (for example, gcov support)
When building GCC against a proper newlib sysroot, the libgcc build will
include more than what's built in the -Dinhibit_libc configuration used when
building newlib as part of the GCC build process. See the inhibit_libc logic
in gcc/configure.ac.
To avoid...
ptxas _gcov_indirect_call_topn_profiler.o, line 101; error : Type or alignment of argument does not match formal parameter 'ptr'
ptxas _gcov_indirect_call_topn_profiler.o, line 101; error : Call has wrong number of parameters
ptxas _gcov_indirect_call_topn_profiler.o, line 101; error : Type or alignment of argument does not match formal parameter 'size'
ptxas fatal : Ptx assembly aborted due to errors
nvptx-as: ptxas returned 255 exit status
make[2]: *** [_gcov_indirect_call_topn_profiler.o] Error 1
..., "dumb down" the libgcc build:
libgcc/
PR target/65181
* config/nvptx/t-nvptx (INHIBIT_LIBC_CFLAGS): Define to
-Dinhibit_libc.
Andreas Krebbel [Mon, 23 Feb 2015 08:10:26 +0000 (08:10 +0000)]
hoist-register-pressure-1.c: Make S/390 target check work with -m31 on 64 bit.
2015-02-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* gcc.dg/hoist-register-pressure-1.c: Make S/390 target check work
with -m31 on 64 bit.
* gcc.dg/hoist-register-pressure-2.c: Likewise.
* gcc.dg/hoist-register-pressure-3.c: Likewise.
PR fortran/64980
PR fortran/61960
* trans-expr.c (gfc_apply_interface_mapping_to_expr): Remove mapping
for component references to class objects.
(gfc_conv_procedure_call): Compare the class by name.
Jakub Jelinek [Fri, 20 Feb 2015 16:44:37 +0000 (17:44 +0100)]
re PR target/63892 (gcc.dg/sibcall-3.c fails on darwin with -m32)
PR target/63892
* ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
don't try to create_thunk if stdarg_p. If
!sem_item::target_supports_symbol_aliases_p (), similarly, and try to
redirect_callers if possible.
(sem_item_optimizer::execute): Call unregister_hooks here...
(ipa_icf_driver): ... instead of here.
Co-Authored-By: Martin Liska <mliska@suse.cz>
From-SVN: r220875
Arnaud Charlet [Fri, 20 Feb 2015 14:35:51 +0000 (15:35 +0100)]
[multiple changes]
2015-02-20 Robert Dewar <dewar@adacore.com>
* errout.ads: Document replacement of Name_uPre/Post/Type_Invariant.
* erroutc.adb (Set_Msg_Str): Replace _xxx.
(Pre/Post/Type_Invariant) by xxx'Class.
* erroutc.ads (Set_Msg_Str): Replace _xxx.
(Pre/Post/Type_Invariant) by xxx'Class.
* sem_prag.adb (Fix_Error): Remove special casing of
Name_uType_Invariant.
(Analyze_Pre_Post_Condition_In_Decl_Part): Remove special casing of
Name_uPre and Name_uPost in aspect case (done in Errout now).
2015-02-20 Robert Dewar <dewar@adacore.com>
* g-alveop.adb: Minor style fixes.
2015-02-20 Robert Dewar <dewar@adacore.com>
* freeze.adb (Warn_Overlay): Guard against blow up with address
clause.
2015-02-20 Bob Duff <duff@adacore.com>
* exp_attr.adb (May_Be_External_Call): Remove this. There is no need
for the compiler to guess whether the call is internal or external --
it is always external.
(Expand_Access_To_Protected_Op): For P'Access, where P
is a protected subprogram, always create a pointer to the
External_Subprogram.
Robert Dewar [Fri, 20 Feb 2015 14:29:49 +0000 (14:29 +0000)]
a-dispat.adb, [...]: Minor reformatting.
2015-02-20 Robert Dewar <dewar@adacore.com>
* a-dispat.adb, a-stcoed.ads: Minor reformatting.
2015-02-20 Robert Dewar <dewar@adacore.com>
* sem_ch13.adb (Build_Discrete_Static_Predicate): Allow static
predicate for non-static subtype.
(Build_Predicate_Functions): Do not assume subtype associated with a
static predicate must be static.
2015-02-20 Robert Dewar <dewar@adacore.com>
* errout.adb (Set_Msg_Node): Better handling of internal names
(Set_Msg_Node): Kill message when we cannot eliminate internal name.
* errout.ads: Document additional case of message deletion.
* namet.adb (Is_Internal_Name): Refined to consider wide
strings in brackets notation and character literals not to be
internal names.
* sem_ch8.adb (Find_Selected_Component): Give additional error
when selector name is a subprogram whose first parameter has
the same type as the prefix, but that type is untagged.
Arnaud Charlet [Fri, 20 Feb 2015 14:26:06 +0000 (15:26 +0100)]
[multiple changes]
2015-02-20 Tristan Gingold <gingold@adacore.com>
* opt.ads (GNAT_Mode_Config): New variable.
* opt.adb (Set_Opt_Config_Switches): Consider GNAT_Mode_Config
to set Assertions_Enabled.
* switch-c.adb (Scan_Front_End_Switches): Set GNAT_Mode_Config
for -gnatg.
2015-02-20 Robert Dewar <dewar@adacore.com>
* s-valllu.ads (Scan_Raw_Long_Long_Unsigned): Add an additional
comment regarding the handling of unterminated fixed-point
constants.
* s-valuns.ads (Scan_Raw_Unsigned): Add comments
corresponding to those previously added for
System.Val_LLU.Scan_Raw_Long_Long_Unsigned.
Kyrylo Tkachov [Fri, 20 Feb 2015 14:05:51 +0000 (14:05 +0000)]
[AArch64] Fix wrong-code bug in right-shift SISD patterns
* config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
Mark operand 0 as earlyclobber in 2nd alternative.
(1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
Write negated shift amount into QI lowpart operand 0 and use it
in the shift step.
(2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
Arnaud Charlet [Fri, 20 Feb 2015 13:52:31 +0000 (14:52 +0100)]
[multiple changes]
2015-02-20 Robert Dewar <dewar@adacore.com>
* switch-c.adb, bindgen.adb: Minor reformatting.
2015-02-20 Ed Schonberg <schonberg@adacore.com>
* sem_prag.adb (Analyze_Pragma, case Type_Invariant):
Invariant'class is allowed on an abstract type.
2015-02-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Access_Definition): If the access definition is
for a protected component and defines an access to protected
subprogram, do not create an itype reference for it because a
full type declaration will be built in order to generate the
proper equivalent type.
(Analyze_Subtype_Declaration): Add information of incomplete
subtypes, for Ada 2012 extended uses of incomplete types.
* sem_prag.adb (Fix_Error): For an illegal Type_Invariant'Class
aspect, use name that mentions Class explicitly, rather than
compiler-internal name.
2015-02-20 Robert Dewar <dewar@adacore.com>
* debug.adb: Add documentation for -gnatd.2 (allow statements
in decl sequences).
* par-ch3.adb (P_Identifier_Declarations): Handle
statement appearing where declaration expected more cleanly.
(Statement_When_Declaration_Expected): Implement debug flag
-gnatd.2.
2015-02-20 Jose Ruiz <ruiz@adacore.com>
* a-dinopr.ads: Add spec for this package (Unimplemented_Unit).
* a-dispat.ads (Yield): Include procedure added in Ada 2012.
* a-dispat.adb (Yield): Implement procedure added in Ada 2012.
* impunit.adb (Non_Imp_File_Names_05): Mark unit a-dinopr.ads as
defined by Ada 2005.
* snames.ads-tmpl (Name_Non_Preemptive_FIFO_Within_Priorities):
This is the correct name for the dispatching policy (FIFO was
missing).
2015-02-20 Javier Miranda <miranda@adacore.com>
* sem_res.adb (Resolve_Type_Conversion): If the type of the
operand is the limited-view of a class-wide type then recover
the class-wide type of the non-limited view.
Arnaud Charlet [Fri, 20 Feb 2015 11:40:20 +0000 (11:40 +0000)]
Makefile.in: Remove references to nucleus.
* gcc-interface/Makefile.in: Remove references to nucleus.
* gcc-interface/decl.c (gnat_to_gnu_entity, case E_Procedure): Set
extern_flag to true for Inline_Always subprograms with
Intrinsic convention.
* makeutl.adb (Get_Directories.Add_Dir): Add a directory only
if it exists.
2015-02-20 Robert Dewar <dewar@adacore.com>
* sem_eval.ads: Minor reformatting.
2015-02-20 Eric Botcazou <ebotcazou@adacore.com>
* freeze.adb (Size_Known): Do not set the packed size for
independent type or component.
(Freeze_Array_Type): Check for Independent[_Components] with packing
or explicit component size clause.
* gnat1drv.adb (Post_Compilation_Validation_Checks): Do the validation
of independence pragmas only for non-GCC back-ends.
* sem_ch13.adb (Initialize): Likewise for the initialization.
* sem_prag.adb (Record_Independence_Check): New procedure to record an
independence check in the table.
(Analyze_Pragma): Use it throughout instead of doing it manually.
* gcc-interface/decl.c (gnat_to_gnu_field): Add support for
independent type or component.
2015-02-20 Thomas Quinot <quinot@adacore.com>
* adaint.c (__gnat_readdir): For Solaris, use 64 bit variants of
struct direct and readdir. This is required for NFS filesystems
mounted from servers that use 64-bit cookies.
2015-02-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Analyze_Subprogram_Instantiaion): New subprogram
Build_Subprogram_Renaming, to create renaming of subprogram
instance in the the declaration of the wrapper package rather
than in its body, so that it is available for analysis of aspects
propagated from generic to instantiation.
(Check_Mismatch): An actual for a formal package that is an
incomplete type matches a formal type that is incomplete.
(Instantiate_Package_Body): Move code that builds subprogram
renaming to Analyze_Subprogram_Instantiation.
(Instantiate_Type): The generated subtype is a limited view if
the actual is a limited view.
(Load_Parent_Of_Generic): Retrieve instance declaration from
its new position within wrapper package.
Georg-Johann Lay [Fri, 20 Feb 2015 10:30:24 +0000 (10:30 +0000)]
re PR target/64452 (ICE in avr-gcc when passing struct member to varargs function)
gcc/
PR target/64452
* config/avr/avr.md (pushhi_insn): New insn.
(push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
gcc/testsuite/
PR target/64452
* gcc.target/avr/torture/pr64452.c: New test.
Arnaud Charlet [Fri, 20 Feb 2015 09:53:22 +0000 (10:53 +0100)]
[multiple changes]
2015-02-20 Eric Botcazou <ebotcazou@adacore.com>
* inline.adb (Expand_Inlined_Call): Skip again calls to subprogram
renamings.
* exp_ch6.adb (Expand_Call): Use back-end inlining
instead of expansion for simple subprogram renamings.
Arnaud Charlet [Fri, 20 Feb 2015 09:51:22 +0000 (10:51 +0100)]
[multiple changes]
2015-02-20 Vincent Celier <celier@adacore.com>
* switch-c.adb (Scan_Front_End_Switches): Do not fail when --RTS=
is specified several times with different values that indicates
the same runtime directory.
2015-02-20 Ed Schonberg <schonberg@adacore.com>
* sem_attr.adb (Check_Not_Incomplete_Type): Clean up code to
handle properly illegal uses of attributes on prefixes on an
incomplete type, both when the type of the prefix is locally
incomplete, and when it is a limited view of a type whose
non-limited view is not available.
(Analyze_Attribute): Add calls to Check_Not_Incomplete_Type for
'Address and others.
Arnaud Charlet [Fri, 20 Feb 2015 09:48:22 +0000 (10:48 +0100)]
[multiple changes]
2015-02-20 Eric Botcazou <ebotcazou@adacore.com>
* sinfo.ads: Add comment.
2015-02-20 Olivier Hainque <hainque@adacore.com>
* opt.ads: Replace Opt.Suppress_All_Inlining by two separate
flags controlling the actual FE inlining out of pragma Inline
and pragma Inline_Always.
* adabkend.adb (Scan_Compiler_Arguments): Set both flags to True
on -fno-inline, which disables all inlining in compilers with
an Ada back-end and without back-end inlining support.
* back_end.adb (Scan_Back_End_Switches): Set the Inline related
flag to True on -fno-inline and leave Inline_Always alone for
gcc back-ends.
* back_end.ads (Scan_Compiler_Arguments): Adjust spec wrt the
names of the Opt flags it sets.
* gnat1drv.adb (Adjust_Global_Switches): Remove test on
Opt.Suppress_All_Inlining in the Back_End_Inlining computation.
* sem_prag.adb (Make_Inline): Remove early return conditioned
on Opt.Suppress_All_Inlining.
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Use the flags to
disable the calls to Build_Body_To_Inline otherwise triggered
by pragma Inline or Inline_Always. This will prevent actual
front-end inlining of the subprogram on calls.
Arnaud Charlet [Fri, 20 Feb 2015 09:43:40 +0000 (10:43 +0100)]
[multiple changes]
2015-02-20 Eric Botcazou <ebotcazou@adacore.com>
* s-stalib.ads: Fix typo.
2015-02-20 Ed Schonberg <schonberg@adacore.com>
* exp_ch3.adb (Default_Initialize_Object): If the object has a
delayed freeze, the actions associated with default initialization
must be part of the freeze actions, rather that being inserted
directly after the object declaration.
2015-02-20 Robert Dewar <dewar@adacore.com>
* lib-load.adb: Minor comment update.
2015-02-20 Vincent Celier <celier@adacore.com>
* prj-proc.adb (Process_Case_Construction): When there are
incomplete withed projects and the case variable is unknown,
skip the case construction.
2015-02-20 Ed Schonberg <schonberg@adacore.com>
* exp_ch6.adb (Expand_Actuals): Add caller-side invariant checks
when an actual is a view conversion, either because the call is
to an inherited operation, or because the actual is an explicit
type conversion to an ancestor type. Fixes ACATS 4.0D: C732001
Arnaud Charlet [Fri, 20 Feb 2015 09:42:04 +0000 (10:42 +0100)]
[multiple changes]
2015-02-20 Robert Dewar <dewar@adacore.com>
* einfo.ads: Minor comment updates Fix missing pragma Inline
for Set_Partial_View_Has_Unknown_Discr.
* einfo.adb (Write_Entity_Flags): Add missing entry for
Partial_View_Has_Unknown_Discr.
* sem_ch3.adb: Minor reformatting.
2015-02-20 Vincent Celier <celier@adacore.com>
* opt.ads: Minor cleanup: remove mention of gprmake.
* s-stalib.ads (Abort_Undefer_Direct): Do not inline.
* s-tataat.adb: Do not call System.Tasking.Self but directly
System.Task_Primitives.Operations.Self.
Arnaud Charlet [Fri, 20 Feb 2015 09:11:44 +0000 (10:11 +0100)]
gnat_rm.texi, [...]: Now automatically generated from sphinx in the doc directory.
2015-02-20 Arnaud Charlet <charlet@adacore.com>
* gnat_rm.texi, gnat_ugn.texi: Now automatically generated from
sphinx in the doc directory.
* doc: New directory containing sphinx versions of gnat_rm and gnat_ugn
Arnaud Charlet [Fri, 20 Feb 2015 09:08:30 +0000 (10:08 +0100)]
[multiple changes]
2015-02-20 Robert Dewar <dewar@adacore.com>
* sem_res.adb: Minor reformatting.
* exp_ch9.adb (Build_Protected_Spec): Copy Aliased setting when
building spec.
* sem_ch13.adb (Analyze_Aspect_Specifications): Exclude Boolean
aspects from circuitry setting delay required to false if the
argument is an integer literal.
2015-02-20 Ed Schonberg <schonberg@adacore.com>
* einfo.ads. einfo.adb (Partial_View_Has_Unknown_Discr): New flag
on type entities, to enforce AI12-0133: default initialization
of types whose partial view has unknown discriminants does not
get an invariant check, because clients of the unit can never
declare objects of such types.
* sem_ch3.adb (Find_Type_Name); Set new flag
Partial_View_Has_Unknown_Discr when needed.
* exp_ch3.adb (Expand_N_Object_Declaration): Use flag to suppress
generation of invariant call on default-initialized object.