2005-03-29 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
indicator, indicate that the formal can never be null.
(Process_Formals): If a formal has a non_null indicator, insert the
resulting subtype immediately before the enclosing subprogram decl,
and not at the beginning of the corresponding declarative part, to
prevent access before elaboration (Ada2005).
From-SVN: r97185
2005-03-29 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
subtype if code is being pre-analyzed, to prevent un-expanded
references to protected formals, among others.
(Analyze_Explicit_Dereference): If the overloaded prefix includes some
interpretation that can be a call, include the result of the call as a
possible interpretation of the dereference.
* sem_ch5.adb (Process_Bounds): Determine type of range by
pre-analyzing a copy of the original range, and then analyze the range
with the expected type.
* sem_res.adb (Check_Parameterless_Call): For an explicit dereference
with an overloaded prefix where not all interpretations yield an
access to subprogram, do not rewrite node as a call.
(Resolve_Explicit_Dereference): Recognize the previous case and rewrite
the node as a call once the context identifies the interpretation of
the prefix whose call yields the context type.
(Valid_Conversion): For the case of a conversion between
local access-to-subprogram types, check subtype conformance using
Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
detailed error message.
From-SVN: r97184
2005-03-29 Thomas Quinot <quinot@adacore.com>
* sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
forbid conversion of a local access-to-subprogram type to a remote one.
* sem_util.adb (Wrong_Type): For a record type that is the expanded
equivalent type for a remote access-to-subprogram type, go back to the
original RAS entity when displaying an error message, so the casing is
the original source casing.
From-SVN: r97182
2005-03-29 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
file and the reference symbol file to be the same file.
From-SVN: r97181
2005-03-29 Vincent Celier <celier@adacore.com>
* prj.ads, prj.adb: (Project_Data): Add new component Display_Name
* prj-part.adb (Parse_Single_Project): Set the location of a project
on its defining identifier, rather than on the reserved word "project".
* prj-proc.adb (Expression): Adapt to the fact that default of external
references may be string expressions, not always literal strings.
(Recursive_Process): Set Display_Name equal to Name
when Location is No_Location, that is when there is no actual file.
Get the Display_Name of the project from the source, when it is not a
virtual project.
(Process): Use the Display_Name in error messages
* prj-strt.adb (External_Reference): Allow default to be string
expressions, not only literal strings.
From-SVN: r97180
2005-03-29 Robert Dewar <dewar@adacore.com>
* par-ch4.adb (P_Name): When a bad attribute is returned, return error,
rather than proceed ahead using a junk attribute name.
From-SVN: r97179
2005-03-29 Robert Dewar <dewar@adacore.com>
* par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
missing TYPE Improve the error message generated when compiling a
limited interface in Ada83 or Ada95 mode.
From-SVN: r97178
2005-03-29 Vincent Celier <celier@adacore.com>
* make.adb (Gnatmake): Don't fail if the main project file is declared
as having no Ada sources. Do not display message "no sources to
compile" in quiet output.
From-SVN: r97175
2005-03-29 Ed Schonberg <schonberg@adacore.com>
* freeze.adb (Freeze_Record_Type): If the type of the component is an
itype whose parent is controlled and not yet frozen, do not create a
freeze node for the itype if expansion is disabled.
From-SVN: r97174
2005-03-29 Robert Dewar <dewar@adacore.com>
* exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
recursive calls.
(Is_Possibly_Unaligned_Object): Correct typo that
resulted in inaccurate result for unaligned scalars within records.
From-SVN: r97173
2005-03-29 Gary Dismukes <dismukes@adacore.com>
Robert Dewar <dewar@adacore.com>
* exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
expand a call to an instance of
Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
Constructor actual of the instance. A class-wide membership
check is also generated, to ensure that the tag passed to the instance
denotes a type in the class.
(Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
of Name_Generic_Dispatching_Constructor.
* Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
05 unit for AI-260-02).
* a-tgdico.ads: New file.
* impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
* snames.ads, snames.adb (Preset_Names): Add entry for
Generic_Dispatching_Constructor.
PR ada/20300
* sem_ch8.adb (Find_Direct_Name): Go to root type for check of
character type cases.
(Analyze_Subprogram_Renaming): Add special handling for
the case of renaming of stream attributes when the renaming denotes a
generic formal subprogram association for an abstract formal subprogram.
Check that the attribute is a primitive stream attribute (and not
a class-wide stream attribute) and then rewrite the attribute name
as the name of the appropriate compiler-generated stream primitive.
From-SVN: r97172
2005-03-29 Thomas Quinot <quinot@adacore.com>
* exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
of using Set_Renaming_TSS. This ensures that the TSS bodies are not
analyzed if expansion is disabled (which could otherwise cause spurious
error messages if expansion has been disabled due to previous
(unrelated) errors).
* sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
is disabled, the entity denoted by the argument is the access type
itself, not an underlying record type, so there is no need to go back
to the Corresponding_Remote_Type.
From-SVN: r97171
2005-03-29 Ed Schonberg <schonberg@adacore.com>
* exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
order to retrieve the component list of the type, before examining
individual components.
* sem_type.adb (Covers): Types are compatible if one is the base type
of the other, even though their base types might differ when private
views are involved.
From-SVN: r97170
2005-03-29 Robert Dewar <dewar@adacore.com>
* errutil.adb, errout.adb:
Minor comment updates on Line_Terminator references
* par-ch10.adb: Add ??? comment about line terminator
* styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
(check dos line terminator).
(Check_Line_Max_Length): New procedure, split off from the existing
Check_Line_Terminator routine. Separating this out allows -gnatyf to
be properly recognized.
* styleg.adb: Add ??? comment for line terminator reference
* scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
(Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
* styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
(check dos line terminator).
(Check_Line_Max_Length): New procedure, split off from the existing
Check_Line_Terminator routine. Separating this out allows -gnatyf to
be properly recognized.
* stylesw.ads, stylesw.adb:
Add handling for new -gnatyd switch (check dos line terminator)
* switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
Recognize -gnatwb/-gnatwB switches
Include Warn_On_Bad_Fixed_Value for -gnatg
* usage.adb:
Add line for new -gnatyd switch (check dos line terminator)
* usage.adb: Add lines for -gnatwb/-gnatwB
* vms_data.ads: Add entry for NOCRLF (-gnatyd)
* vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
* gnat_ugn.texi: Fix overlong lines
Document new -gnatyd switch
Document new -gnatwb/-gnatwB switches
From-SVN: r97169
2005-03-29 Javier Miranda <miranda@adacore.com>
* a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
(Inherit_DT): The first formal has been redefined as a Tag.
This allows us the removal of the subprogram Get_TSD.
(TSD): Replace the call to Get_TSD by the actual code.
* exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
(Make_DT): Upgrade the call to Inherit_TSD according to the
new interface: the first formal is now a Tag.
* i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
redefined as a Tag.
This change allows us to remove the subprogram Get_TSD.
(CPP_Get_TSD): Subprogram removed.
(TSD): Replace the call to CPP_Get_TSD by the actual code.
* rtsfind.ads: Remove support to call the run-time
subprogram Get_TSD
From-SVN: r97168
* mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
(Build_Dynamic_Library.Version_String): Return the empty string when
Lib_Version is empty or when the symbol policy is not Autonomous.
* symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
a symbol is not in the reference symbol file, increase the Major ID
and set the Minor ID to 0.
Use gsmatch=lequal instead of gsmatch=equal
From-SVN: r97166
2005-03-29 Robert Dewar <dewar@adacore.com>
* sem_res.adb (Resolve_Real_Literal): Generate warning if static
fixed-point expression has value that is not a multiple of the Small
value.
* opt.ads (Warn_On_Bad_Fixed_Value): New flag
* s-taprop-tru64.adb (RT_Resolution): Return an integer number of
nanoseconds.
* ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
From-SVN: r97165
* tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
(duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
* tree-vect-analyze.c (vect_object_analysis): additional parm
pass back a "struct ptr_info_def *" with the points-to info.
(vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
statement using info returned from vect_object_analysis.
* tree-vect-transform.c (update_vuses_to_preheader): New function.
(vect_create_data_ref_ptr): Remove updates to vars_to_rename
for virtual uses and defs when creating a replacement vector
reference. Call duplicate_ssa_name_ptr_info to define points-to
info for vector pointer replacement using STMT_VINFO_PTR_INFO.
(vectorizable_store): copy_virtual_operands and update
definition statements.
(vectorizable_load): copy_virtual_operands. Remove call to
mark_call_clobbered_vars_to_rename for call to "const" builtin.
* tree-vectorizer.c (vectorize_loops): Remove calls to
rewrite_into_ssa and bitmap_clear (vars_to_rename).
(new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
* tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
define macro STMT_VINFO_PTR_INFO for use in accessing.
* tree.h add export of duplicate_ssa_name_ptr_info.
* rs6000.c (altivec_init_builtins): Declare builtin function
__builtin_altivec_mask_for_load to be "const".
From-SVN: r97164
PR libfortran/20163
* io/open.c (st_open): call library_end() before returning even if
an error arises.
* gfortran.dg/pr20163-2.f: New test.
From-SVN: r97153
PR libfortran/20163
* io/open.c (st_open): call library_end() before returning even if
an error arises.
* gfortran.dg/pr20163-2.f: New test.
From-SVN: r97152
PR middle-end/20635
* varasm.c (mark_decl_referenced): Do not mark extern inline functions
as needed.
* compile/gcc.c-torture/compile/20050328-1.c: New testcase made
by Jakub Jelinek.
From-SVN: r97133
* boehm.cc (_Jv_MarkObj): Don't follow null pointer to static field,
which can happen if class is JV_STATE_LOADED but not JV_STATE_PREPARED.
From-SVN: r97128
* c.opt (fshow-column): Move option from here ...
* common.opt (fshow-column): ... to here.
* diagnostic.c (diagnostic_build_prefix): Only print column number
if flag_show_column.
From-SVN: r97127