PR c++/23211
* name-lookup.c (do_class_using_decl): Use dependent_scope_p
instead of dependent_type_p, to check that a non-dependent
nested-name-specifier of a class-scope using declaration refers to
a base, even if the current scope is dependent.
* parser.c (cp_parser_using_declaration): Set
USING_DECL_TYPENAME_P to 1 if the DECL is not null. Re-indent a
'else' close to the prior modification.
Paolo Carlini [Wed, 28 Dec 2011 15:52:54 +0000 (15:52 +0000)]
re PR c++/51547 (auto, type deduction, reference collapsing and const: invalid initialization of reference of type 'const X&&' from expression of type 'const X')
2011-12-27 Paolo Carlini <paolo.carlini@oracle.com>
Ira Rosen [Wed, 28 Dec 2011 09:20:16 +0000 (09:20 +0000)]
re PR tree-optimization/51684 (ICE in gfortran.dg/maxloc_bounds_5 on ia64)
PR tree-optimization/51684
* tree-vect-slp.c (vect_schedule_slp_instance): Get gsi of
original statement in case of a pattern.
(vect_schedule_slp): Likewise.
Ian Lance Taylor [Wed, 28 Dec 2011 00:06:10 +0000 (00:06 +0000)]
go-gcc.cc (Gcc_backend::set_placeholder_struct_type): Use build_distinct_type_copy rather than build_variant_type_copy.
* go-gcc.cc (Gcc_backend::set_placeholder_struct_type): Use
build_distinct_type_copy rather than build_variant_type_copy.
(Gcc_backend::set_placeholder_array_type): Likewise.
(Gcc_backend::named_type): Add special handling for builtin
basic types.
Paolo Carlini [Tue, 27 Dec 2011 19:04:24 +0000 (19:04 +0000)]
re PR c++/51547 (auto, type deduction, reference collapsing and const: invalid initialization of reference of type 'const X&&' from expression of type 'const X')
2011-12-27 Paolo Carlini <paolo.carlini@oracle.com>
Arnaud Charlet [Fri, 23 Dec 2011 09:36:49 +0000 (10:36 +0100)]
[multiple changes]
2011-12-23 Pascal Obry <obry@adacore.com>
* prj.ads (For_Every_Project_Imported): Add In_Aggregate_Lib
parameter to generic formal procedure.
* prj.adb (For_Every_Project_Imported): Update accordingly.
(Recursive_Check): Likewise. Do not parse imported project for
aggregate library. This is needed as the imported projects are
there just to handle dependencies.
(Look_For_Sources): Likewise.
(Recursive_Add): Likewise.
* prj-env.adb, prj-conf.adb, makeutl.adb, gnatcmd.adb:
Add In_Aggregate_Lib parameter to routines used with
For_Every_Project_Imported generic procedure.
* prj-nmsc.adb (Tree_Processing_Data): Add In_Aggregate_Lib field.
(Check): Move where it is used. Fix implementation
to not check libraries that are inside aggregate libraries.
(Recursive_Check): Add In_Aggregate_Lib parameter.
2011-12-23 Ed Schonberg <schonberg@adacore.com>
* sem_ch7.adb (Analyze_Package_Body, Has_Referencer): A generic
package is a referencer regardless of whether there is a
subsequent subprogram with an Inline pragma.
2011-12-23 Geert Bosch <bosch@adacore.com>
* sem_ch3.adb (Can_Derive_From): Check matching Float_Rep on VMS.
Ian Lance Taylor [Thu, 22 Dec 2011 20:49:18 +0000 (20:49 +0000)]
go-gcc.cc (set_placeholder_pointer_type): Arrange for the type name to have a DECL_ORIGINAL_TYPE as gcc expects.
* go-gcc.cc (set_placeholder_pointer_type): Arrange for the type
name to have a DECL_ORIGINAL_TYPE as gcc expects.
(set_placeholder_struct_type): Likewise.
(set_placeholder_array_type): Likewise.
(named_type): Set DECL_ORIGINAL_TYPE.
Janne Blomqvist [Thu, 22 Dec 2011 20:44:32 +0000 (22:44 +0200)]
PR 51646 Use POSIX mode flags in open() argument.
2011-12-22 Janne Blomqvist <jb@gcc.gnu.org>
Tobias Burnus <burnus@net-b.de>
PR libfortran/51646
* acinclude.m4 (LIBGFOR_CHECK_UNLINK_OPEN_FILE): Use POSIX mode
flags, omit mode argument when flags argument does not have
O_CREAT.
* io/unix.c (tempfile): Use POSIX mode flags.
* configure: Regenerate.
Aldy Hernandez [Thu, 22 Dec 2011 20:18:11 +0000 (20:18 +0000)]
re PR middle-end/51212 (ICE: verify_flow_info failed: BB 3 can not throw but has an EH edge with -fgnu-tm -fnon-call-exceptions and transaction_callable)
PR middle-end/51212
* opts.c (finish_options): Call sorry on -fgnu-tm and
-fnon-call-exceptions combination.
Bernd Schmidt [Thu, 22 Dec 2011 15:01:25 +0000 (15:01 +0000)]
tree-pass.h (pass_reload): Declare.
* tree-pass.h (pass_reload): Declare.
* ira.c (overall_cost_before, saved_flag_ira_share_spill_slots):
New global variables, moved out of ira.
(do_reload): New static function, split off from the second half
of ...
(ira): ... here.
(gate_ira): Remove.
(pass_ira): Use TV_IRA, set gate to NULL, and set flags to
TODO_dump_func.
(rest_of_handle_reload): New static function.
(pass_reload): New.
* exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Create the objects
associated with exception handling unconditionally.
(Build_Adjust_Statements): Create the objects associated with
exception handling unconditionally.
(Build_Components): Create the objects associated with exception
handling unconditionally.
(Build_Finalize_Statements): Create the objects associated with
exception handling unconditionally.
(Build_Initialize_Statements): Create the objects associated with
exception handling unconditionally.
(Build_Object_Declarations): Set the proper location of the data
record when exception propagation is forbidden.
2011-12-22 Gary Dismukes <dismukes@adacore.com>
* a-tienio.adb (Put): Test validity of Item parameters before
applying Image, and raise Constraint_Error for invalid values.
Ed Schonberg [Thu, 22 Dec 2011 08:54:26 +0000 (08:54 +0000)]
a-cohase.ads, [...]: Update to latest RM version.
2011-12-22 Ed Schonberg <schonberg@adacore.com>
* a-cohase.ads, a-cohase.adb: Update to latest RM version. Add
aspect Constant_Reference to set type, and corresponding
functions.
* a-cihama.ads, a-cihama.adb: Update to latest RM version. Add
function Reference to provide a proper element iterator construct
over indefinite maps.
2011-12-22 Ed Schonberg <schonberg@adacore.com>
* exp_attr.adb (Expand_N_Attribute, case 'Access): Do not insert
implicit conversion on prefix of Unrestricted_Access when prefix
is an explicit dereference.
Arnaud Charlet [Thu, 22 Dec 2011 08:49:14 +0000 (09:49 +0100)]
[multiple changes]
2011-12-22 Vincent Pucci <pucci@adacore.com>
* sem_dim.adb: Addressed all ??? comments. Replacement of warnings by
errors using continuation marks.
(Error_Dim_Msg_For_?): Renaming of Error_Dim_For_?.
2011-12-22 Robert Dewar <dewar@adacore.com>
* sem_ch3.adb, sem_ch3.ads, sem_prag.adb: Minor code clean up.
Richard Guenther [Wed, 21 Dec 2011 15:56:11 +0000 (15:56 +0000)]
lto.c (GIMPLE_REGISTER_TYPE): New define.
2011-12-21 Richard Guenther <rguenther@suse.de>
lto/
* lto.c (GIMPLE_REGISTER_TYPE): New define.
(LTO_FIXUP_TREE): Use it.
(uniquify_nodes): Mark new non-prevailing types and avoid
calling gimple_register_type on others.
(lto_read_decls): Add comment.
Jakub Jelinek [Wed, 21 Dec 2011 14:52:34 +0000 (15:52 +0100)]
tree-vect-patterns.c (vect_operation_fits_smaller_type): Initialize *op0 and *op1 to NULL_TREE first to avoid warnings.
* tree-vect-patterns.c (vect_operation_fits_smaller_type): Initialize
*op0 and *op1 to NULL_TREE first to avoid warnings.
* calls.c (initialize_argument_information): Initialize base to avoid
warnings.
Jakub Jelinek [Wed, 21 Dec 2011 14:51:19 +0000 (15:51 +0100)]
re PR middle-end/51644 (va_list vs. warning: ‘noreturn’ function does return is not fixable)
PR middle-end/51644
PR middle-end/51647
* tree-eh.c (decide_copy_try_finally): At -O0, return true
even when ndests is not 1, if there are only gimple_clobber_p
(or debug) stmts in the finally sequence.
* tree-inline.c (estimate_num_insns): Return 0 for gimple_clobber_p
stmts.
* gcc.dg/pr51644.c: New test.
* g++.dg/warn/Wreturn-4.C: New test.
Javier Miranda [Wed, 21 Dec 2011 13:54:55 +0000 (13:54 +0000)]
sem_ch3.ads, [...] (Check_CPP_Type): New subprogram.
2011-12-21 Javier Miranda <miranda@adacore.com>
* sem_ch3.ads, sem_ch3.adb (Check_CPP_Type): New subprogram.
(Process_Full_View): Invoke Check_CPP_Type if processing the
full-view of a CPP type.
* sem_prag.adb (Process_Import_Or_Interface): Add missing support
for importing a CPP type that has an incomplete declaration. Move
to new routine Check_CPP_Type the code that verifies that
components of imported CPP types do not have default expressions.
Arnaud Charlet [Wed, 21 Dec 2011 13:51:03 +0000 (14:51 +0100)]
[multiple changes]
2011-12-21 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb (Report_No_Sources): Remove argument Lang. Report
no sources even for languages that are not allowed.
(Add_Source): Get the source even when the language is not allowed.
* sem_ch7.adb, sem_ch13.adb (Analyze_Package_Specification): Build the
invariant procedure of a type declaration that is a completion and has
aspect specifications.
(Build_Invariant_Procedure): If the procedure is built for a
type declaration that is a completion, analyze body expliitly
because all private declarations have been already analyzed.
2011-12-21 Claire Dross <dross@adacore.com>
* a-cfdlli.adb, a-cfhase.adb, a-cforma.adb, a-cforse.adb,
a-cofove.adb: Minor reformating on formal containers
2011-12-21 Vincent Celier <celier@adacore.com>
* makeutl.adb (Mains.Complete_Mains.Do_Complete): Remove
any main that is not in the list of restricted languages.
(Insert_Project_Sources.Do_Insert): Only add sources of languages
in the list of restricted languages.
2011-12-21 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Valid_Conversion): A type conversion is valid when
the target type is an anonymous access type and the operand is a
rewriting of an allocator. The conversion is typically inserted
when the designated type is an interface.
2011-12-21 Ed Schonberg <schonberg@adacore.com>
* exp_ch9.adb (Establish_Task_Master): If the enclosing block
has no declarations, create new declarative list for it.
Arnaud Charlet [Wed, 21 Dec 2011 13:45:42 +0000 (14:45 +0100)]
[multiple changes]
2011-12-21 Yannick Moy <moy@adacore.com>
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not
ignore representation attributes in Alfa mode, since formal
verification backend does not depend on actual physical
representation, but code may still refer to attribute values.
2011-12-21 Yannick Moy <moy@adacore.com>
* par-ch13.adb (P_Aspect_Specifications): Recognize the cases
where a comma between two aspects is missing, or erroneously
replaced by a semicolon, issue an error and proceed with next
aspect.
* par.adb, sinfo.ads: Fix typos.
2011-12-21 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb (Mark_Coextensions): A coextension for an
object that is part of the expression in a return statement,
or part of the return object in an extended return statement,
must be allocated dynamically.
* sem_ch5.adb (Analyze_Iterator_Specification): If the name
of an element iterator is not an entity name we introduce a
local renaming declaration for it. To prevent spurious warnings
on parameterless function calls that return a container, when
expansion is disabled (either explicitly or because of a previous
errors) the name must be marked as not coming from source.
2011-12-21 Arnaud Charlet <charlet@adacore.com>
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Separate
handling in CodePeer mode and only ignore Component_Size
attribute.
2011-12-21 Robert Dewar <dewar@adacore.com>
* sem_ch6.adb (Process_Formals): Set proper mechanism for
formals whose types have conventions Ada_Pass_By_Copy or
Ada_Pass_By_Reference.
Arnaud Charlet [Wed, 21 Dec 2011 13:34:12 +0000 (14:34 +0100)]
[multiple changes]
2011-12-21 Arnaud Charlet <charlet@adacore.com>
* gnat1drv.adb (Gnat1Drv): Always delete old scil files in
CodePeer mode.
2011-12-21 Robert Dewar <dewar@adacore.com>
* comperr.adb: Minor reformatting.
2011-12-21 Ed Schonberg <schonberg@adacore.com>
* aspects.ads: New table Base_Aspect, to indicate that an aspect
is defined on a base type.
* aspects.adb (Find_Aspect): If the aspect is a Base_Aspect,
examine the representation items of the base type.
2011-12-21 Pascal Obry <obry@adacore.com>
* gnat_ugn.texi, prj.ads, prj-nmsc.adb, prj-attr.adb, projects.texi,
snames.ads-tmpl: Use Encapsulated instead of Fully Standalone library.
2011-12-21 Pascal Obry <obry@adacore.com>
* adaint.c (__gnat_is_executable_file_attr) [_WIN32]: Add parentheses
to kill warning.
Martin Jambor [Wed, 21 Dec 2011 12:44:31 +0000 (13:44 +0100)]
tree-into-ssa.c (rewrite_update_stmt): Do not dump extra newlines.
2011-12-21 Martin Jambor <mjambor@suse.cz>
* tree-into-ssa.c (rewrite_update_stmt): Do not dump extra newlines.
(rewrite_update_enter_block): Likewise.
(dump_update_ssa): Likewise.
(update_ssa): Likewise but also dump a newline at the beginning.
Arnaud Charlet [Wed, 21 Dec 2011 12:08:32 +0000 (13:08 +0100)]
[multiple changes]
2011-12-21 Arnaud Charlet <charlet@adacore.com>
* comperr.adb (Delete_SCIL_Files): Also delete .scilx files.
Fix implementation for child packages and package specs.
(Delete_SCIL_Files.Decode_Name_Buffer): New function.
Arnaud Charlet [Wed, 21 Dec 2011 12:03:53 +0000 (13:03 +0100)]
[multiple changes]
2011-12-21 Thomas Quinot <quinot@adacore.com>
* thread.c, s-oscons-tmplt.c, init.c (pthread_condattr_setclock): For
AIX 5.2, define as a dummy weak symbol in init.c.
(CLOCK_RT_Ada): Set to CLOCK_MONOTONIC on all versions of AIX.
2011-12-21 Thomas Quinot <quinot@adacore.com>
* snames.ads-tmpl, sem_ch8.adb: Minor reformatting.
* sem_prag.adb: Minor comment clarification.
2011-12-21 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb (Report_No_Sources): New argument Lang for the
language name as a Name_Id. Do not report no sources if language
is not allowed.
(Add_Source): Do not add source if language is not allowed.
* prj.adb (Add_Restricted_Language): New procedure
(Is_Allowed_Language): New function
* prj.ads (Add_Restricted_Language): New procedure
(Is_Allowed_Language): New function
Arnaud Charlet [Wed, 21 Dec 2011 11:53:33 +0000 (12:53 +0100)]
[multiple changes]
2011-12-21 Gary Dismukes <dismukes@adacore.com>
* gnat_ugn.texi: Minor reformatting.
2011-12-21 Ed Schonberg <schonberg@adacore.com>
* exp_ch5.adb (Expand_Iterator_Loop): The cursor operation
Has_Element is the formal of Iterator_Interfaces, and within
the instantion of this package it is a renaming of some local
function with an unrelated name. Retrieve the operation from
the instance itself, not from the container package.
2011-12-21 Vincent Pucci <pucci@adacore.com>
* exp_ch6.adb (Expand_Call): Expand_Put_Call_With_Dimension_String
replaced by Expand_Put_Call_With_Dimension_Symbol
* sem_ch12.adb (Analyze_Package_Instantiation): New check for
System.Dim_Float_IO and System.Dim_Integer_IO instantiation.
* sem_ch3.adb (Analyze_Declarations): Removed
Remove_Dimension_In_Declaration call.
* sem_dim.adb: Update comments. Redefine the
representation of a Rational. Propagate all changes involving
data structures and types throughout the pakage. Output the
dimension aggregates for each error messages.
("/"): Rational constructor "/" removed for Whole operands.
("/"): New rational operation "/" for Rational operands.
("*"): Operation "*" between Rational and Int removed.
("abs"): New unary operator "abs" for Rational.
(Analyze_Aspect_Dimension_System): Reorganized.
(Analyze_Dimension_Identifier): Removed.
(Copy_Dimensions): Removed.
(Create_Rational_From_Expr): New Boolean parameter.
(Dimensions_Msg_Of): New routine. Return
a string with the dimensions of the parameter.
(From_Dimension_To_String_Of_Symbols): Renaming of
From_Dimension_To_String_Id.
* sem_dim.ads: Update comments.
(Is_Dim_IO_Package_Instantiation): New routine.
(Remove_Dimension_In_Declaration): Removed.
* sem_res.adb (Resolve_Op_Expon): Reorganized calls of
Eval_Op_Expon_For_Dimensioned_Type and Eval_Op_Expon.
* s-diflio.ads, s-diinio.ads: Update comments.
Arnaud Charlet [Wed, 21 Dec 2011 11:50:02 +0000 (12:50 +0100)]
[multiple changes]
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.