2011-12-21 Pascal Obry <obry@adacore.com>
* prj-attr.adb, snames.ads-tmpl: Add Library_Standalone,
Library_Fully_Standalone_Options and
Library_Fully_Standalone_Supported attributes.
* prj-nmsc.adb (Check_Library): Update check to take into
account fully standalone libraries. Such shared libraries can
only depend on static libraries.
(Check_Stand_Alone_Library): Add support for fully standalone libraries.
(Process_Project_Level_Simple_Attributes): Store value for
configuration attribute Library_Fully_Standalone_Supported.
* prj.ads, makeutl.adb (Standalone): New enumeration type.
(Project_Data): Standalone_Library now of type Standlone.
(Project_Configuration): Add Lib_Fully_Standalone_Supported
field.
(Default_Project_Config): Initialize new Lib_Fully_Standalone_Supported
field.
* clean.adb (Clean_Project): Adjust to new type for Standalone.
* make.adb (Library_Phase): Adjust to new type for Standalone.
(Gnatmake): Likewise.
* mlib-prj.adb (Build_Library): Adjust to new type for
Standalone.
2011-12-21 Thomas Quinot <quinot@adacore.com>
* gnatls.adb (Gnatls): Call Set_Standard_Error at startup, and then
Set_Standard_Output just before producing normal (non-diagnostic)
output.
* gnatcmd.adb (Gnatcmd): Call Set_Standard_Error at initialization
(and again after parsing project files).
2011-12-21 Vincent Celier <celier@adacore.com>
* prj-conf.adb (Do_Autoconf): When the object directory does
not exist, create auto.cgpr in the directory where temporary
files are created.
From-SVN: r182573
2011-12-21 Richard Guenther <rguenther@suse.de>
PR lto/41159
* tree-outof-ssa.c (insert_value_copy_on_edge): Use the
mode of the pseudo as destination mode. Only assert that
is equal to the promoted mode of the decl if it is a REG.
From-SVN: r182570
Also decompose vectors in large integer modes.
* tree-vect-generic.c (expand_vector_operations_1): Correct tests
for vector types -- use the type not the mode. Fix optab selection
for vector shifts by a scalar. Handle over-large integer modes
like BLKmode.
From-SVN: r182563
This puts xorsi3 in the same format as andsi3 and iorsi3.
This similarity fixes code generation issues with splitting
atomic_fetch_xor post-reload.
* config/arm/arm.md (*arm_xorsi3): Match iorsi3 and perform
post-reload splitting.
From-SVN: r182562
This changes code generation from "eors; eors; orrs" (which ranges
from 6 to 12 bytes and requires three scratch registers), to
"cmp; it; cmp" (which is always 6 bytes for register inputs and
requires no scratch registers).
* config/arm/arm.md (*arm_cmpdi_unsigned): Enable for thumb2.
* config/arm/arm.c (arm_select_cc_mode): Use it.
From-SVN: r182561
* config/i386/morestack.S (__morestack_non_split): If there is
enough stack space already, don't split. Ask for more stack space
than we required.
From-SVN: r182555
gcc/
* tree-ssa-math-opts.c (convert_plusminus_to_widen): Restrict
handling of signedness differences to integer types. Only build
a new optype if type1 isn't correct.
From-SVN: r182554
2011-12-20 Vladimir Makarov <vmakarov@redhat.com>
PR target/49865
* ira-costs.c (find_costs_and_classes): Prefer registers even
if the memory cost is the same.
From-SVN: r182553
2011-12-20 Sergio Durigan Junior <sergiodj@redhat.com>
* unwind-arm-common.inc: Include `tconfig.h', `tsystem.h' and
`sys/sdt.h'.
(_Unwind_DebugHook): New function.
(uw_restore_core_regs): New define.
(unwind_phase2): Use uw_restore_core_regs instead of
restore_core_regs.
(unwind_phase2_forced): Likewise.
(__gnu_Unwind_Resume): Likewise.
From-SVN: r182552
* c-decl.c (diagnose_mismatched_decls, grokdeclarator, grokfield)
(finish_struct): Refer to C11 in comments. Use flag_isoc11.
* c-parser.c (c_parser_static_assert_declaration)
(c_parser_static_assert_declaration_no_semi, c_parser_declspecs)
(c_parser_alignas_specifier, c_parser_alignof_expression): Refer
to C11 in comments. Use flag_isoc11.
* c-typeck.c (comptypes_check_different_types): Refer to C11 in
comment.
* doc/cpp.texi (Overview): Refer to -std=c11 instead of -std=c1x.
* doc/cppopts.texi (-std=c11, -std=gnu11): Document in preference
to -std=c1x and -std=gnu1x.
* doc/extend.texi (Inline, Alternate Keywords, Other Builtins)
(__builtin_complex, Unnamed Fields): Refer to -std=c11 and C11
instead of -std=c1x and C1X.
* doc/invoke.texi (-std=c11, -std=iso9899:2011): Document in
preference to -std=c1x.
(-std=gnu11): Document in preference to -std=gnu1x.
* doc/standards.texi: Document C11 instead of C1X. Document C11
as actual standard. Document headers required from freestanding
C11 implementations.
* ginclude/float.h, ginclude/stddef.h: Test __STDC_VERSION__ >=
201112L for C11. Update comments to refer to C11.
gcc/c-family:
* c-common.c (flag_isoc99): Update comment to refer to C11.
(flag_isoc1x): Change to flag_isoc11.
* c-common.h (flag_isoc99): Update comment to refer to C11.
(flag_isoc1x): Change to flag_isoc11.
* c-cppbuiltin.c (cpp_atomic_builtins): Change comment to refer to
C11.
* c-opts.c (set_std_c1x): Change to set_std_c11.
(c_common_handle_option): Handle OPT_std_c11 and OPT_std_gnu11.
Call set_std_c11.
(set_std_c89, set_std_c99, set_std_c11): Use flag_isoc11.
(set_std_c1): Use CLK_STDC11 and CLK_GNUC11.
* c.opt (std=c1x): Change to std=c11. Document as non-draft
standard.
(std=c1x, std=iso9899:2011): Add as aliases of std=c11.
(std=gnu1x): Change to std=gnu11. Refer to non-draft standard.
(std=gnu1x): Make alias of std=gnu11.
gcc/testsuite:
* gcc.dg/c11-version-1.c, gcc.dg/c11-version-2.c,
gcc.dg/c94-version-1.c, gcc.dg/c99-version-1.c,
gcc.dg/gnu11-version-1.c: New tests.
libcpp:
* include/cpplib.h (CLK_GNUC1X): Change to CLK_GNUC11.
(CLK_STDC1X): Change to CLK_STDC11.
* init.c (lang_defaults): Update comments.
(cpp_init_builtins): Update language tests. Use 201112L for C11
__STDC_VERSION__.
From-SVN: r182551
gcc/
* expr.c (store_field): Avoid a direct store if the mode is larger
than the size of the bit field.
* stor-layout.c (layout_decl): If flag_strict_volatile_bitfields,
treat non-volatile bit fields like volatile ones.
* toplev.c (process_options): Disallow combination of
-fstrict-volatile-bitfields and ABI versions less than 2.
* config/arm/arm.c (arm_option_override): Don't enable
flag_strict_volatile_bitfields if the ABI version is less than 2.
* config/h8300/h8300.c (h8300_option_override): Likewise.
* config/rx/rx.c (rx_option_override): Likewise.
* config/m32c/m32c.c (m32c_option_override): Likewise.
* config/sh/sh.c (sh_option_override): Likewise.
gcc/testsuite/
* gcc.target/arm/volatile-bitfields-4.c: New test.
* c-c++-common/abi-bf.c: New test.
From-SVN: r182545
2011-12-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Insert_Freeze_Node_For_Instance): Further
refinements on the placement of a freeze node for a package
instantiation, when the generic appears within a previous
instantiation in the same unit.If the current instance is within
the one that contains the generic, the freeze node for the
current one must appear in the current declarative part. Ditto
if the current instance is within another package instance. In
these cases the freeze node of the previous instance is is not
relevant. New predicate Enclosing_Body simplifies the process.
(Freeze_Subprogram_Body): Rename Enclosing_Body to
Enclosing_Package_Body, to prevent confusion with subprogram of
same name elsewhere.
(Install_Body): Recognize enclosing subprogram bodies to determine
whether freeze_node belongs in current declarative list.
2011-12-20 Robert Dewar <dewar@adacore.com>
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Allow
attribute definition clause for renaming if generated internally
and generate duplicate clause to apply to renamed object.
(Rep_Item_Too_Late): Only diagnose source level entities
* prj-nmsc.adb: Minor reformatting.
* gcc-interface/Make-lang.in: Update dependencies.
From-SVN: r182542
2011-12-20 Bob Duff <duff@adacore.com>
* opt.ads (List_Inherited_Aspects): Default to False
(i.e. -gnatw.L is the default).
* usage.adb: Document new default for -gnatw.L.
* gnat_ugn.texi: Document -gnatw.l and -gnatw.L switches.
* warnsw.adb (Set_Warning_Switch): Do not include
List_Inherited_Aspects in -gnatwa.
2011-12-20 Ed Schonberg <schonberg@adacore.com>
* checks.adb (Apply_Type_Conversion_Checks): For a discrete type
with predicates, indicate unconditionally that a range check
is needed.
* exp_ch4.adb (Expand_N_In): When the membership test is rewritten
to incorporate a call to a predicate function, analyze expression
with checks suppressed, to prevent infinite recursion.
From-SVN: r182540
2011-12-20 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch11.adb (Find_Local_Handler): Guard the
search over individual exception choices in case the list of
handlers contains other (possibly illegal) constructs.
2011-12-20 Gary Dismukes <dismukes@adacore.com>
* sem_ch8.adb (Find_Type): Test taggedness
of the Available_Type when checking for an illegal use of an
incomplete type, when the incomplete view is a limited view of
a type. Remove redundant Is_Tagged test.
2011-12-20 Hristian Kirtchev <kirtchev@adacore.com>
* exp_util.adb: Add with and use clause for Aspects.
(Is_Finalizable_Transient): Objects which denote Ada containers
in the context of iterators are not considered transients. Such
object must live for as long as the loop is around.
(Is_Iterated_Container): New routine.
2011-12-20 Hristian Kirtchev <kirtchev@adacore.com>
* exp_imgv.adb (Expand_Width_Attribute): Add a
type conversion from the enumeration subtype to its base subtype.
From-SVN: r182539
2011-12-20 Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch4.adb (Operator_Check): Update the call to
Is_Dimensioned_Type.
* sem_dim.adb: Remove with and use clause for Namet.Sp. Reorganize
all type declarations and datastructures involved. Propagate
all changes involving data structures and types throughout
the pakage. Alphabetize all subprograms. Add ??? comments.
(AD_Hash): Removed.
(Analyze_Aspect_Dimension): Rewritten. This
routine now does all its checks in one pass rather than
two. Refactor code. The error message are now in a more GNAT-ish style.
(Create_Rational_From_Expr): This is now a function.
(Get_Dimensions): Removed.
(Get_Dimensions_String_Id): Removed.
(Dimensions_Of): New rouitne.
(Exists): New routines.
(Is_Invalid): New routine.
(Permits_Dimensions): Removed.
(Present): Removed.
(Set_Symbol): New routine.
(System_Of): New routine.
* sem_dim.ads: Rewrite the top level description of the
package. Alphabetize subprograms. Add various comments on
subprogram usage. Add ??? comments.
(Is_Dimensioned_Type):
Renamed to Has_Dimension_System.
* sem_res.adb (Resolve_Op_Expon): Update the call to Is_Dimensioned_Type
From-SVN: r182537
2011-12-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb (Check_Indexing_Functions): The return type of an
indexing function can be the default element type, and does not
need to be a reference type.
* sem_ch4.adb (Try_Container_Indexing): Ditto.
From-SVN: r182536
2011-12-20 Robert Dewar <dewar@adacore.com>
* a-cdlili.ads, sem_cat.adb, sem_ch10.adb: Minor reformatting.
2011-12-20 Bob Duff <duff@adacore.com>
* s-taprop-mingw.adb (Yield): Do_Yield is no longer Unreferenced.
2011-12-20 Vincent Pucci <pucci@adacore.com>
* impunit.adb: s-dimkio, s-dimmks and s-dmotpr defined as GNAT
Defined Additions to System.
* Makefile.rtl: s-dimkio, s-dimmks and s-dmotpr added.
* s-dimkio.ads, s-dimmks.ads, s-dmotpr.ads: New files.
2011-12-20 Gary Dismukes <dismukes@adacore.com>
* sem_ch4.adb (Traverse_Homonyms): Allow a homonym to match when
within an instance, even if the homonym is marked Is_Hidden at
this point.
From-SVN: r182535
2011-12-20 Robert Dewar <dewar@adacore.com>
* sem_ch3.adb, sem_ch5.adb, s-diinio.adb, s-diinio.ads, sem_dim.adb,
sem_dim.ads, sem_res.adb, s-stposu.adb, s-stposu.ads, sem_ch4.adb,
s-diflio.adb, s-diflio.ads, exp_disp.adb, s-llflex.ads: Minor
reformatting.
* aspects.ads: Dimension[_Aspects] are GNAT defined.
2011-12-20 Robert Dewar <dewar@adacore.com>
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Check
renaming case.
2011-12-20 Thomas Quinot <quinot@adacore.com>
* sem_cat.adb, sem_ch10.adb (Analyze_With_Clause): For a WITH clause on
a child unit that is an illegal instantiation, mark the WITH clause in
error.
(Install_Siblings, Validate_Categorization_Dependency): Guard
against WITH clause marked as in error.
From-SVN: r182534
2011-12-20 Hristian Kirtchev <kirtchev@adacore.com>
* sem_res.adb (Resolve_Allocator): Warning on allocation
of tasks on a subpool and rewrite the allocator into a raise
Program_Error statement.
* s-stposu.ads, s-stposu.adb: Code reformatting.
(Create_Subpool): Remove formal parameter Storage_Size.
(Default_Subpool_For_Pool): Add the default implementation of this
routine.
(Set_Pool_Of_Subpool): Rename formal parameter Pool to To. Update
all the uses of the parameter.
From-SVN: r182533
gcc/cp/
PR debug/49951
* decl.c (cxx_maybe_build_cleanup): Don't set location of the call
to the destructor.
gcc/testsuite/
PR debug/49951
* g++.dg/gcov/gcov-2.C: Adjust.
From-SVN: r182532
* gcc-interface/Makefile.in (%86 linux%):
(LIBGNAT_TARGET_PAIRS_32): Split off from LIBGNAT_TARGET_PAIRS.
(LIBGNAT_TARGET_PAIRS_64): New.
(LIBGNAT_TARGET_PAIRS): Add either depending on multilib.
From-SVN: r182527
/cp
2011-12-20 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51612
* semantics.c (is_valid_constexpr_fn): In case of constexpr
constructors also check for virtual base classes.
/testsuite
2011-12-20 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51612
* g++.dg/cpp0x/constexpr-ice4.C: New.
From-SVN: r182526
2011-12-20 Richard Guenther <rguenther@suse.de>
PR lto/46796
* dwarf2out.c (modified_type_die): When the type variant
chain is corrupt use the types name, if available, instead
of __unknown__.
From-SVN: r182524
* config/alpha/linux-unwind.h: Update copyright years.
(MD_FROB_UPDATE_CONTEXT): New define.
(alpha_frob_update_context): New function.
From-SVN: r182522
2011-12-19 Benjamin Kosnik <bkoz@redhat.com>
* libsupc++/eh_tm.cc (free_any_cxa_exception): Use
__GCC_ATOMIC_INT_LOCK_FREE, not _GLIBCXX_ATOMIC_BUILTINS_4.
From-SVN: r182512
/cp
2011-12-19 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51328
* pt.c (convert_template_argument): Early error out and return
error_mark_node for invalid uses of destructors as types.
/testsuite
2011-12-19 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51328
* g++.dg/template/crash109.C: New.
From-SVN: r182508