tree-vrp.c (extract_range_from_unary_expr_1): New function, split out from ...
2011-08-08 Richard Guenther <rguenther@suse.de>
* tree-vrp.c (extract_range_from_unary_expr_1): New function,
split out from ...
(extract_range_from_unary_expr): ... here. Handle BIT_NOT_EXPR
by composition.
modulo-sched.c (get_sched_window): Use a table for the debug output.
gcc/
* modulo-sched.c (get_sched_window): Use a table for the debug output.
Print the current ii.
(sms_schedule_by_order): Reduce whitespace in dump line.
Janus Weil [Sun, 7 Aug 2011 20:59:16 +0000 (22:59 +0200)]
re PR fortran/49638 ([OOP] length parameter is ignored when overriding type bound character functions with constant length.)
2011-08-07 Janus Weil <janus@gcc.gnu.org>
Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/49638
* dependency.c (are_identical_variables): For dummy arguments only
check for equal names, not equal symbols.
* interface.c (gfc_check_typebound_override): Add checking for rank
and character length.
Janus Weil [Sun, 7 Aug 2011 10:12:09 +0000 (12:12 +0200)]
re PR fortran/49638 ([OOP] length parameter is ignored when overriding type bound character functions with constant length.)
2011-08-07 Janus Weil <janus@gcc.gnu.org>
PR fortran/49638
* dependency.h (gfc_is_same_range,gfc_are_identical_variables): Remove
two prototypes.
* dependency.c (gfc_are_identical_variables,are_identical_variables):
Renamed the former to the latter and made static.
(gfc_dep_compare_expr): Renamed 'gfc_are_identical_variables', handle
commutativity of multiplication.
(gfc_is_same_range,is_same_range): Renamed the former to the latter,
made static and removed argument 'def'.
(check_section_vs_section): Renamed 'gfc_is_same_range'.
* gfortran.h (gfc_check_typebound_override): New prototype.
* interface.c (gfc_check_typebound_override): Moved here from ...
* resolve.c (check_typebound_override): ... here (and renamed).
(resolve_typebound_procedure): Renamed 'check_typebound_override'.
libgcc/
* config.host (*-*-darwin*, *-*-freebsd*, *-*-linux*, frv-*-*linux*)
(*-*-kfreebsd*-gnu, *-*-knetbsd*-gnu, *-*-gnu*, *-*-kopensolaris*-gnu):
Add to tmake_file rather than overriding it.
Nicola Pero [Sat, 6 Aug 2011 14:20:09 +0000 (14:20 +0000)]
In libobjc/: 2011-08-06 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2011-08-06 Nicola Pero <nicola.pero@meta-innovation.com>
PR libobjc/50002
* class.c (__objc_update_classes_with_methods): Iterate over meta
classes as well as normal classes when refreshing the method
implementations. This fixes replacing class methods.
2011-08-06 Nicola Pero <nicola.pero@meta-innovation.com>
* class.c (class_getSuperclass): Fixed to work with meta classes
still in construction too.
In gcc/testsuite/:
2011-08-06 Nicola Pero <nicola.pero@meta-innovation.com>
Nicola Pero [Sat, 6 Aug 2011 09:49:30 +0000 (09:49 +0000)]
In libobjc/: 2011-08-06 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2011-08-06 Nicola Pero <nicola.pero@meta-innovation.com>
PR libobjc/49882
* class.c (class_getSuperclass): Return the superclass if the
class is in construction.
* objc/runtime.h (class_getSuperclass): Updated documentation.
In gcc/testsuite/:
2011-08-06 Nicola Pero <nicola.pero@meta-innovation.com>
PR libobjc/49882
* objc.dg/gnu-api-2-class.m (main): Test class_getSuperclass()
with classes that are in construction.
Thomas Koenig [Fri, 5 Aug 2011 21:51:59 +0000 (21:51 +0000)]
re PR fortran/37211 (TRANSFER to characters: Size checking)
2011-08-05 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/37221
* gfortran.h (gfc_calculate_transfer_sizes): Add prototype.
* target-memory.h (gfc_target_interpret_expr): Add boolean
argument wether to convert wide characters.
* target-memory.c (gfc_target_expr_size): Also return length
of characters for non-constant expressions if these can be
determined from the cl.
(interpret_array): Add argument for gfc_target_interpret_expr.
(gfc_interpret_derived): Likewise.
(gfc_target_interpret_expr): Likewise.
* check.c: Include target-memory.h.
(gfc_calculate_transfer_sizes): New function.
(gfc_check_transfer): When -Wsurprising is in force, calculate
sizes and warn if result is larger than size (check moved from
gfc_simplify_transfer).
* simplify.c (gfc_simplify_transfer): Use
gfc_calculate_transfer_sizes. Remove warning.
2011-08-05 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/37221
* gfortran.dg/transfer_check_2.f90: New test case.
This hack to attach a line 0 source_location to the return statement of main...
This hack to attach a line 0 source_location to the
return statement of main, after parsing is over, was
creating a bug in the line_table, creating an extra
entry, which was creating problems now that we are
trying to serialize the line_table in pph.
* decl.c (finish_function): Remove unecessary line 0 hack.
Uros Bizjak [Fri, 5 Aug 2011 16:06:09 +0000 (18:06 +0200)]
i386.md (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for operand 0, alternative 4.
2011-08-05 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (*movdi_internal_rex64): Use "!o" constraint
instead of "!m" for operand 0, alternative 4.
(*movdf_internal_rex64): Ditto for operand 0, alernative 6.
Nicolas Roche [Fri, 5 Aug 2011 15:57:05 +0000 (15:57 +0000)]
Makefile.in: Don't use directly ../xgcc to build shared libgnat.
2011-08-05 Nicolas Roche <roche@adacore.com>
* gcc-interface/Makefile.in: Don't use directly ../xgcc to build shared
libgnat. Use rather the value of GCC_FOR_TARGET. Fix issue with
canadian cross.
* gcc-interface/Make-lang.in: Add support for canadian cross setting.
Arnaud Charlet [Fri, 5 Aug 2011 15:32:47 +0000 (17:32 +0200)]
[multiple changes]
2011-08-05 Matthew Heaney <heaney@adacore.com>
* a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Read): do not use T'Valid
to check count, check sign of value instead.
* a-comutr.adb, a-cimutr.adb (Write): return immediately if tree empty
(Copy_Subtree): allocate copy of source element
(Equal_Subtree): compare elements, not access objects
Uros Bizjak [Fri, 5 Aug 2011 15:30:07 +0000 (17:30 +0200)]
i386.md (*push<mode>2): Use "o" constraint instead of "m" for operand 0.
* config/i386/i386.md (*push<mode>2): Use "o" constraint instead
of "m" for operand 0. Add type and mode attribute.
(*pushxf_nointeger"): Use "<" constraint for operand 0.
(*pushdf_rex64): New pattern, split out of *pushdf. Use "m"
constraint instead of "o" for opreand 1.
(*pushdf): Disable for TARGET_64BIT. Correct mode attribute.
Arnaud Charlet [Fri, 5 Aug 2011 15:17:37 +0000 (17:17 +0200)]
[multiple changes]
2011-08-05 Thomas Quinot <quinot@adacore.com>
* sem_ch11.adb: Add comment.
2011-08-05 Robert Dewar <dewar@adacore.com>
* exp_util.adb: Minor comment fix.
2011-08-05 Robert Dewar <dewar@adacore.com>
* scng.adb (Error_Unterminated_String): Improve flag position when
comma present.
2011-08-05 Matthew Heaney <heaney@adacore.com>
* Makefile.rtl, impunit.adb: Added a-cbmutr.ad[sb] (bounded multiway
tree containers).
* a-cbmutr.ads, a-cbmutr.adb: This is the new Ada 2012 unit for bounded
multiway tree containers.
2011-08-05 Robert Dewar <dewar@adacore.com>
* styleg.adb (Check_Comment): Implement comment spacing of 1 or 2
* stylesw.adb: Implement -gnatyC to control comment spacing
* stylesw.ads (Style_Check_Comments_Spacing): New switch (set by
-gnatyc/C).
* usage.adb: Add line for -gnatyC.
2011-08-05 Robert Dewar <dewar@adacore.com>
* gnat_ugn.texi: Document -gnatyC for J505-006
* vms_data.ads: Implement COMMENTS1/COMMENTS2 (retaining COMMENTS as a
synonym for COMMENTS2).
Arnaud Charlet [Fri, 5 Aug 2011 15:08:15 +0000 (17:08 +0200)]
[multiple changes]
2011-08-05 Pascal Obry <obry@adacore.com>
* a-iteint.ads: Fix copyright year.
2011-08-05 Thomas Quinot <quinot@adacore.com>
* par_sco.adb (Traverse_Declarations_Or_Statements): Do not generate a
statement SCO for a USE clause or a representation clause.
2011-08-05 Yannick Moy <moy@adacore.com>
* lib-xref-alfa.adb (Collect_ALFA): generate the proper relation
between body and spec for stub.
(Detect_And_Add_ALFA_Scope): take into account subprogram stub
* lib-xref.adb (Enclosing_Subprogram_Or_Package): in the case of a
pragma precondition or postcondition, for which the enclosing
subprogram or package in the AST is not the desired one, return empty.
Arnaud Charlet [Fri, 5 Aug 2011 14:59:54 +0000 (16:59 +0200)]
[multiple changes]
2011-08-05 Thomas Quinot <quinot@adacore.com>
* g-expect.adb: Minor reformatting.
2011-08-05 Bob Duff <duff@adacore.com>
* a-fihema.adb: Comment out OS_Lib.
2011-08-05 Matthew Heaney <heaney@adacore.com>
* Makefile.rtl, impunit.adb: Added a-c[oi]mutr.ad[sb]
(unbounded multiway tree containers) and a-iteint.ads.
* a-comutr.ads, a-comutr.adb:
This is the new Ada 2012 unit for unbounded multiway tree containers
* a-cimutr.ads, a-cimutr.adb
This is the new Ada 2012 unit for indefinite multiway tree containers
* a-iteint.ads: New file.
Arnaud Charlet [Fri, 5 Aug 2011 14:29:43 +0000 (16:29 +0200)]
[multiple changes]
2011-08-05 Bob Duff <duff@adacore.com>
* sinfo.ads, sinfo.adb (Subpool_Handle_Name): New attribute for
subpools.
* par-ch4.adb (P_Allocator): Parse new subpool specification syntax.
2011-08-05 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Try_Container_Indexing): New procedure to implement the
general indexing aspects of Ada2012. Called when analyzing indexed
components when other interpretations fail.
* sem_ch8.adb (Find_Direct_Name): check for implicit dereference only
in an expression context where overloading is meaningful. This excludes
the occurrence in an aspect specification (efficiency only).
* sem_attr.adb (Analyze_Attribute): indicate that the attributes
related to iterators can be set by an attribute specification, but
cannot be queried.
* sem_ch13.adb (Analyze_Aspect_Specifications): handle
Constant_Indexing and Variable_Indexing.
(Check_Indexing_Functions): New procedure to perform legality checks.
Additional semantic checks at end of declarations.
Arnaud Charlet [Fri, 5 Aug 2011 14:24:40 +0000 (16:24 +0200)]
[multiple changes]
2011-08-05 Yannick Moy <moy@adacore.com>
* sem_ch12.adb (Analyze_Package_Instantiation,
Need_Subprogram_Instance_Body): do not generate instance bodies in ALFA
mode.
2011-08-05 Ed Schonberg <schonberg@adacore.com>
* sem_type.adb (Specific_Type): in an instance, the type-specific
operand of an equality check that involves null may have a private
type. Use full view to determine legality of construct.
Arnaud Charlet [Fri, 5 Aug 2011 14:21:03 +0000 (16:21 +0200)]
[multiple changes]
2011-08-05 Vincent Celier <celier@adacore.com>
* gnatcmd.adb (Get_Closure): Do not crash when it is not possible to
delete or close the file when the call to gnatmake was successful.
2011-08-05 Yannick Moy <moy@adacore.com>
* gnat1drv.adb (Adjust_Global_Switches): in ALFA mode, set
Global_Discard_Names.
2011-08-05 Ed Schonberg <schonberg@adacore.com>
* sinfo.ads: comments on use of entity field for aspect specifications.
2011-08-05 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Reset_Entity): If the entity field of the associated
node is not itself an entity but a selected component, it is a
rewritten parameterless call to an en enclosing synchronized operation,
and this expansion will be performed again in the instance, so there is
no global information to preserve.
Arnaud Charlet [Fri, 5 Aug 2011 14:18:09 +0000 (16:18 +0200)]
[multiple changes]
2011-08-05 Javier Miranda <miranda@adacore.com>
* exp_disp.adb (Set_All_DT_Position): Cleanup code and improve support
for renamings of predefined primitives.
(In_Predef_Prims_DT): New subprogram.
2011-08-05 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb, sem_util.ads (Check_Implicit_Dereference): If a
possible interpretation of name is a reference type, add an
interpretation that is the designated type of the reference
discriminant of that type.
* sem_res.adb (resolve): If the interpretation imposed by context is an
implicit dereference, rewrite the node as the deference of the
reference discriminant.
* sem_ch3.adb (Analyze_Subtype_Declaration, Build_Derived_Record_Type,
Build_Discriminated_Subtype): Inherit Has_Implicit_Dereference from
parent type or base type.
* sem_ch4.adb (Process_Indexed_Component,
Process_Overloaded_Indexed_Component, Indicate_Name_And_Type,
Analyze_Overloaded_Selected_Component, Analyze_Selected_Component):
Check for implicit dereference.
(List_Operand_Interps): Indicate when an implicit dereference is
ambiguous.
* sem_ch8.adb (Find_Direct_Name): Check for implicit dereference.
2011-08-05 Thomas Quinot <quinot@adacore.com>
* scos.ads: Update documentation of SCO table. Pragma statements can now
be marked as disabled (using 'p' instead of 'P' as the statement kind).
* par_sco.ads, par_sco.adb: Implement the above change.
(Process_Decisions_Defer): Generate a P decision for the first parameter
of a dyadic pragma Debug.
* sem_prag.adb (Analyze_Pragma, case Debug): Mark pragma as enabled if
necessary.
* put_scos.adb: Code simplification based on above change.
Bob Duff [Fri, 5 Aug 2011 14:11:05 +0000 (14:11 +0000)]
a-fihema.ads: Minor comment fix.
2011-08-05 Bob Duff <duff@adacore.com>
* a-fihema.ads: Minor comment fix.
* a-fihema.adb (Allocate, Deallocate): Assert that the alignment is
correct.
(Attach, Detach): Remove some unnecessary code.
(Finalize): Remove Node_Ptr_To_Address, replace with a constant.
Bob Duff [Fri, 5 Aug 2011 14:09:33 +0000 (14:09 +0000)]
a-fihema.ads, [...] (Finalization_Collection): Avoid heap allocation for Objects component.
2011-08-05 Bob Duff <duff@adacore.com>
* a-fihema.ads, a-fihema.adb (Finalization_Collection): Avoid heap
allocation for Objects component. This simplifies the code somewhat. It
is also a little more efficient in the not-so-unusual case where there
are no controlled objects allocated.
Make Finalization_Started flag atomic.
(Finalize): Avoid unnecessary detachment of items from the list.
(pcol): Minor cleanup.
Arnaud Charlet [Fri, 5 Aug 2011 14:03:20 +0000 (16:03 +0200)]
[multiple changes]
2011-08-05 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Analyze_Formal_Package_Declaration): reject a formal
package whose name is the same as that of the generic unit, or its
ultimate prefix.
2011-08-05 Bob Duff <duff@adacore.com>
* a-fihema.adb, a-fihema.ads: Minor comment improvements.
* sem_ch3.adb, exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb:
Minor comment fixes.
Arnaud Charlet [Fri, 5 Aug 2011 13:56:17 +0000 (15:56 +0200)]
[multiple changes]
2011-08-05 Arnaud Charlet <charlet@adacore.com>
* make.adb (Linking_Phase): No longer need to set source search path
before calling gnatlink in CodePeer mode.
* gnatlink.adb (Gnatlink): No longer pass -gnat83/95/05/12 switch to
gcc in CodePeer mode, since the binder generated file no longer has a
'with Main'.
* switch.ads, switch.adb (Is_Language_Switch): Removed.
* switch-c.adb: Update comment.
2011-08-05 Thomas Quinot <quinot@adacore.com>
* exp_strm.adb, bindgen.adb, s-ficobl.ads: Minor reformatting.
2011-08-05 Nicolas Roche <roche@adacore.com>
* gnat_ugn.texi: Fix minor syntax error issue.
2011-08-05 Vincent Celier <celier@adacore.com>
* gnatcmd.adb (Get_Closure): Do not crash when it is not possible to
delete or close the file when the call to gnatmake returns a non
successful return code.
2011-08-05 Ed Schonberg <schonberg@adacore.com>
* exp_ch4.adb (Expand_N_Type_Conversion): When expanding a predicate
check, indicate that the copy of the original node does not come from
source, to prevent an infinite recursion of the expansion.
2011-08-05 Johannes Kanig <kanig@adacore.com>
* debug.adb: document switch -gnatd.G for gnat2why, which deactivates
VC generation for subprogram bodies.
2011-08-05 Yannick Moy <moy@adacore.com>
* einfo.ads: Typo.
* sem_ch3.adb (Signed_Integer_Type_Declaration): in ALFA mode, define
the base type with the smallest allowed base type.
2011-08-05 Sergey Rybin <rybin@adacore.com>
* tree_gen.adb, tree_in.adb, aspects.adb: Fix tree read-write for
aspects.
2011-08-05 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.ads: minor comment updates.
2011-08-05 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Analyze_Formal_Package_Declaration): in an
instantiation and a formal package the compiler generates a package
renaming declaration so that the generic name within the declaration
is interpreted as a renaming of the instance. At the end of a formal
package declaration, this renaming must become invisible.
* exp_ch7.adb (Is_Init_Call): Reimplemented to avoid character
comparison and rely on concrete entities instead.
2011-08-05 Ed Schonberg <schonberg@adacore.com>
* einfo.ads, einfo.adb (Has_Implicit_Dereference): new flag on types
and discriminants, to indicate that the type has an access discriminant
that supports implicit dereference.
* snames.ads-tmpl: Add names of aspects and attributes related to Ada2012 iterators: constant_indexing, default_iterator,
iterator_element, implicit_dereference, variable_indexing.
* aspects.ads, aspects.adb: entries for iterator-related aspects.
* sem_ch13.adb (Analyze_aspect_specifications): dummy entries for
iterator-related aspects.
* sem_attr.adb, exp_attr.adb Dummy entries for iterator-related aspects.
2011-08-05 Sergey Rybin <rybin@adacore.com>
* gnat_ugn.texi, vms_data.ads: Extend the subsection about coupling
metrics in gnatmetric to cover new kinds of coupling mentrics.
2011-08-05 Steve Baird <baird@adacore.com>
* bindgen.adb (Gen_CodePeer_Wrapper): Call Ada_Main_Program instead
of calling the user-defined main subprogram.
(Gen_Main): Declare Ada_Main_Program and (if CodePeer_Mode
is set) Call_Main_Subprogram ahead of, as opposed to
inside of, Main.
(Gen_Output_File_Ada): Remove CodePeer_Mode-conditional
generation of a "with" of the user-defined main subprogram.
Remove CodePeer_Mode-conditional call to Gen_CodePeer_Wrapper
(which is now called from Gen_Main instead).
* exp_ch7.adb (Find_Last_Init): Use Next_Suitable_Statement to retrieve
the two potential initialization calls. This accounts for any
access-before-elaboration checks which may precede the initialization
calls.
(Next_Suitable_Statement): New routine. Returns the next real statement
after the input node while skipping generated checks.
* sem_elab.adb (Check_A_Call): New formal parameter In_Init_Proc along
with comment on usage.
Do not generate Elaborate_All when the trigger is a finalization call
coming from a type init proc.
(Check_Elab_Call): Propagate the initialization procedure context to
subsequent calls to Check_A_Call.
(Check_Internal_Call_Continue): Propagate the initialization procedure
context to subsequent calls to Check_Elab_Call.
(Is_Finalization_Procedure): New routine. Returns True if the input
entity denotes a [Deep_]Finalize routine.
* sem_elab.ads (Check_Elab_Call): New formal parameter In_Init_Proc
along with comment on usage.
2011-08-05 Vadim Godunko <godunko@adacore.com>
* s-atocou.ads: Add list of supported platforms.
2011-08-05 Yannick Moy <moy@adacore.com>
* sem_prag.adb, restrict.adb: Correct style for or'ing Boolean variables
* opt.ads (Disable_ALI_File): new Boolean flag
* lib-writ.adb (Write_ALI): when Disable_ALI_File is set, do nothing
2011-08-05 Ed Falis <falis@adacore.com>
* env.c (__gnat_environ): Fix includes for RTPs and VTHREADS so that
environ is properly defined.
2011-08-05 Vincent Celier <celier@adacore.com>
* make.adb (Compilation_Phase): Exit immediately when all objects have
been found up to date, to avoid multiple exit messages.
* prj-nmsc.adb (Add_Source): Allow duplicate source file names in the
same project for languages with no compiler.
* gnat_ugn.texi: Document compiler switch -gnateI and gnatmake switch
-eI.