aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/make.adb
AgeCommit message (Collapse)AuthorFilesLines
2007-09-26makeutl.ads (Main_Config_Project): Moved to gpr_util.adsVincent Celier1-19/+46
2007-09-26 Vincent Celier <celier@adacore.com> * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads * prj.ads, prj.adb (Default_Language): Remove function, no longer used Replace components Compiler_Min_Options and Binder_Min_Options with Compiler_Required_Switches and Binder_Required_Switches in record Language_Config. Remove components Default_Language and Config in Project_Tree_Data, no longer used. * prj-attr.adb: New attributes Required_Switches (<language>) in packages Compiler and Binder. * prj-nmsc.adb: Major rewrite of the processing of configuration attributes for gprbuild. No impact on GNAT tools. * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer process configuration attributes: this is done in Prj.Nmsc.Check. (Recursive_Process): Make a full copy of packages inherited from project being extended, instead of a shallow copy. (Process_Project_Tree_Phase_1): New procedure (Process_Project_Tree_Phase_1): New procedure (Process): Implementation now uses the two new procedures * prj-util.adb (Executable_Of): Get the suffix and the default suffix from the project config, not the tree config that no longer exists. From-SVN: r128796
2007-09-10exp_atag.ads, [...]: Replace headers with GPL v3 headers.Robert Dewar1-4/+3
2007-09-10 Robert Dewar <dewar@adacore.com> * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads, ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads, bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads, bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb, butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb, comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads, elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads, err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb, exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads, exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads, exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads, exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads, get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb, gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads, gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads, inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads, lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads, make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads, mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads, mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt, osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads, par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads, prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads, prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads, restrict.adb, restrict.ads, rtsfind.adb, rtsfind.ads, scn.adb, scn.ads, scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb, sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads, sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb, sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads, stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb, styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads, switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb, switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb, tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads, treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads, types.h, uintp.h, urealp.h, usage.adb, usage.ads, validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb, gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb, mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb, symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb, mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb, mlib-tgt-vms.ads: Replace headers with GPL v3 headers. From-SVN: r128332
2007-08-31re PR ada/4720 (GNAT programs do not support --help and --version)Vincent Celier1-82/+20
2007-08-30 Vincent Celier <celier@adacore.com> PR ada/4720 * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb, gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb (Check_Version_And_Help): New procedure in package Switch to process switches --version and --help. Use Check_Version_And_Help in GNAT tools * make.adb: Ditto. (Compile_Sources): Make sure that sources that are "excluded" are not compiled. (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a project file is used. (Version_Switch): Remove, moved to Switch (Help_Switch): Remove, moved to Switch (Display_Version): Remove, moved to Switch * switch.ads, switch.adb (Check_Version_And_Help): New procedure in package Switch to process switches --version and --help. (Display_Version): New procedure * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function. From-SVN: r127967
2007-08-16make.adb (Collect_Arguments): Call Test_If_Relative_Path with ↵Vincent Celier1-4/+11
Including_Non_Switch set to False. 2007-08-16 Vincent Celier <celier@adacore.com> * make.adb (Collect_Arguments): Call Test_If_Relative_Path with Including_Non_Switch set to False. (Gnatmake): For the compiler, call Test_If_Relative_Path with Including_Non_Switch set to False. * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean parameter Including_Non_Switch, defaulted to True. When Including_Non_Switch is False, options that are not switches and appear as relative path are not converted to absolute paths. From-SVN: r127542
2007-08-14gnatls.adb: (Corresponding_Sdep_Entry): Always return a valueVincent Celier1-121/+399
2007-08-14 Vincent Celier <celier@adacore.com> * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value (Output_Source): Do nothing if parameter is No_Sdep_Id * make.adb (Gnatmake): Do not rebuild an archive simply because a shared library it imports has a later time stamp. (Check): Resolve the symbolic links in the path name of the object directory. Check that the ALI file is in the correct object directory Check if a file name does not correspond to the mapping of units to file names. (Display_Version): New procedure (Initialize): Process switches --version and --help Use type Path_Name_Type for path name From-SVN: r127453
2007-06-06lib-writ.adb: Handle Convention_CIL in addition to Convention_Java, since ↵Arnaud Charlet1-322/+634
both are separated. 2007-04-20 Arnaud Charlet <charlet@adacore.com> Vincent Celier <celier@adacore.com> * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java, since both are separated. Add support for imported CIL packages. Add further special handling of "value_type" for CIL. Add special handling of pragma Import for CIL. * make.ads, make.adb: When switch -eS is used, direct all outputs to standard output instead of standard error, except errors. (Absolute_Path): Use untouched casing for the parent directory. (Add_Library_Search_Dir): Use the untouched directory name. (Add_Source_Search_Dir): Idem. (Change_To_Object_Directory): Update output to use proper casing. (Create_Binder_Mapping_File): Use the untouched filename to set ALI_Name. (Gnatmake): Use untouched library and executable directory names. (Insert_Project_Sources): Use untouched filename for spec and body. (Is_In_Object_Directory): Use untouched object directory. (Mark_Directory): Idem. (Collect_Arguments_And_Compile): Ensure that Full_Source_File always contains the non-canonical filename in all cases. (Change_To_Object_Directory): In verbose mode, display the name of the object directory we're changing to. (Compile_Sources): Make sure, when a project file is used, to compile the body of the unit, when there is one, even when only the spec is recorded in an ALI file. (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the spec to the body. (Report_Compilation_Failed): New procedure (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg): procedures moved from the spec to the body. (Extract_Failure): Removed, not used Replace explicit raises of exception Bind_Failed and Link_Failed with calls to Make_Failed with the proper message. Replace explicit raises of exception Compilation_Failed with calls to procedure Report_Compilation_Failed. (Initialize): Create mapping files unconditionally when using project files. * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL, Pragma_CIL_Constructor): New names. * targparm.ads, targparm.adb (Compiler_System_Version): Removed, no longer used. (Get_Target_Parameters): Relax checks on system.ads validity. Add handling of two new system flags: JVM and CLI. From-SVN: r125432
2007-04-06errutil.adb (Initialize): Initialize warnings table...Vincent Celier1-146/+170
2007-04-06 Vincent Celier <celier@adacore.com> * errutil.adb (Initialize): Initialize warnings table, if all warnings are suppressed, supply an initial dummy entry covering all possible source locations. * make.adb (Scan_Make_Arg): Reject options that should start with "--" and start with only one, such as "-RTS=none". (Collect_Arguments): Do not check for sources outside of projects. Do not collect arguments if project is externally built. (Compile_Sources): Do nothing, not even check if the source is up to date, if its project is externally built. (Compile): When compiling a predefined source, add -gnatpg as the second switch, after -c. (Compile_Sources): Allow compilation of Annex J renames without -a (Is_In_Object_Directory): Check if the ALI file is in the object even if there is no project extension. (Create_Binder_Mapping_File): Only put a unit in the mapping file for gnatbind if the ALI file effectively exists. (Initialize): Add the directory where gnatmake is invoked in front of the path if it is invoked from a bin directory, even without directory information, so that the correct GNAT tools will be used when spawned without directory information. * makeusg.adb: Change switch -S to -eS Add lines for new switches -we, -wn and -ws Add line for new switch -p * prj-proc.adb (Process): Set Success to False when Warning_Mode is Treat_As_Error and there are warnings. * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip -gnatww Change gnatmake switch -S to -eS (Scan_Make_Switches): Code reorganisation. Process separately multi character switches and single character switches. (Scan_Make_Switches): New Boolean out parameter Success. Set Success to False when switch is not recognized by gnatmake. (Scan_Make_Switches): Set Setup_Projects True when -p or --create-missing-dirs is specified. * fname.adb (Is_Predefined_File_Name): Return True for annex J renamings Calendar, Machine_Code, Unchecked_Conversion and Unchecked_Deallocation only when Renamings_Included is True. * par.adb: Allow library units Calendar, Machine_Code, Unchecked_Conversion and Unchecked_Deallocation to be recompiled even when -gnatg is not specified. (P_Interface_Type_Definition): Remove the formal Is_Synchronized because there is no need to generate always a record_definition_node in case of synchronized interface types. (SIS_Entry_Active): Initialize global variable to False (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to indicate cases where AI-447 says "not null" is legal. * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function * makegpr.adb (Check_Compilation_Needed): Take into account dependency files with with several lines starting with the object fileb name. (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs is specified. (Initialize): Add the directory where gprmake is invoked in front of the path, if it is invoked from a bin directory or with directory information, so that the correct GNAT tools will be used when invoked directly. (Check_Compilation_Needed): Process correctly backslashes on Windows. * vms_data.ads: Update switches/qualifiers From-SVN: r123560
2006-10-31gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of handling ↵Arnaud Charlet1-104/+91
executable extension manually and... 2006-10-31 Arnaud Charlet <charlet@adacore.com> Robert Dewar <dewar@adacore.com> * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of handling executable extension manually and duplicating code. * make.adb: Implement new -S switch (Gnatmake): Use new function Osint.Executable_Name instead of handling executable extension manually. * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix is specified, the executable name ends with this suffix. Take advantage of Osint.Executable_Name instead of duplicating code. * switch-m.adb: Recognize new gnatmake -S switch * targparm.ads, targparm.adb (Executable_Extension_On_Target): New variable. (Get_Target_Parameters): Set Executable_Extension_On_Target if available. * makeusg.adb: Add line for gnatmake -S switch From-SVN: r118276
2006-02-15make.adb (Collect_Arguments_And_Compile): For VMS...Vincent Celier1-20/+56
2006-02-13 Vincent Celier <celier@adacore.com> * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the main source, add switch -mdebug-main=_ada_ so that the executable can be debugged by the standard VMS debugger. (Gnatmake): Set No_Main_Subprogram to True when there is no main subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly. Exit the Multi_Main_Loop when Unique_Compile is True after compilation of the last source, as the binding and linking phases are never performed. Set all executable obsolete when rebuilding a library. * makeutl.adb (Linker_Options_Switches): Do not process empty linker options. From-SVN: r111078
2005-12-09mlib-tgt-vms-ia64.adb, [...] (Is_Interface): Change Ada bind file prefix on ↵Doug Rupp1-2/+2
VMS from b$ to b__. 2005-12-05 Doug Rupp <rupp@adacore.com> * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change Ada bind file prefix on VMS from b$ to b__. (Build_Dynamic_Library): Change Init file suffix on VMS from $init to __init. * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target. (Object_Suffix): Initialize with target object suffix. (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__. * butil.adb: Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target. * clean.adb: Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target. (Object_Suffix): Initialize with call to Get_Target_Object_Suffix. ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change Ada bind file prefix on VMS from b$ to b__. * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in --GCC so that Get_Target_Parameters can find system.ads. (Gnatlink): Call Get_Target_Parameters in mainline. Initialize standard packages for Targparm. Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target. (Process_Args): Also Check for object files with target object extension. (Make_Binder_File_Names): Create with target object extension. (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$ to b__. * mlib-prj.adb: Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target. ({declaration},Build_Library,Check_Library): Change Ada bind file prefix on VMS from b$ to b__. * osint-b.adb: Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target. (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to b__. * targext.c: New file. * Makefile.in: add support for vxworks653 builds (../../vxaddr2line): gnatlink with targext.o. (TOOLS_LIBS): Move targext.o to precede libgnat. (init.o, initialize.o): Minor clean up in dependencies. (GNATLINK_OBJS): Add targparm.o, snames.o Add rules fo building targext.o and linking it explicitly with all tools. Also add targext.o to gnatlib. * Make-lang.in: Add rules for building targext.o and linking it in with gnat1 and gnatbind. Add entry for exp_sel.o. * osint.adb Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target. (Object_File_Name): Use target object suffix. * osint.ads (Object_Suffix): Remove, no longer used. (Target_Object_Suffix): Initialize with target object suffix. * rident.ads: Add special exception to license. * targparm.adb (Get_Target_Parameters): Set the value of Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive value. (Get_Target_Parameters): Set OpenVMS_On_Target if openvms. * targparm.ads: Add special exception to license. * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New function. (Copy_File): Make sure from file is closed if error on to file (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions. * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix. (Executable_Suffix): Intialize with Get_Target_Executable_Suffix. * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with target object suffix. From-SVN: r108285
2005-11-15make.adb (Compile_Sources): Change verbose message to minimum verbosity ↵Vincent Celier1-157/+474
level High for "is in an Ada... 2005-11-14 Vincent Celier <celier@adacore.com> * make.adb (Compile_Sources): Change verbose message to minimum verbosity level High for "is in an Ada library", "is a read-only library" and "is an internal library", (Create_Binder_Mapping_File): Path name of ALI file for library project must include the library directory, not the object directory. (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called for new switches -vl, -vm and -vh. (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity (Check): Use minimum verbosity Medium for some Verbose_Msg calls (Compile_Sources): Do not attempt to compile if an ALI file is missing in a project that is externally built. (Compute_All_Imported_Projects): New procedure (Gnatmake): Check if importing libraries should be regenerated because at least an imported library is more recent. (Initialize): For each project compute the list of the projects it imports directly or indirectly. (Add_Library_Search_Dir): New procedure, used in place of Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are put in the search paths. (Add_Source_Search_Dir): New procedure, used in place of Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are put in the search paths. (Mark_Directory): Resolve the absolute path the directory before marking it. * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with call to new procedure Bad_Switch. Call Scan_Pos with new parameter Switch. Do not handle any exception. (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh so that the switch is recognized as valid. (Scan_Make_Switches): Implement new switches -vl, -vm and -vh. From-SVN: r106989
2005-07-04make.adb (Change_To_Object_Directory): When unable to change the current dir ↵Vincent Celier1-1/+5
to the object directory... 2005-07-04 Vincent Celier <celier@adacore.com> * make.adb (Change_To_Object_Directory): When unable to change the current dir to the object directory, output the full path of the directory. From-SVN: r101580
2005-07-01Update FSF addressR. Kelley Cook1-2/+2
From-SVN: r101492
2005-06-16clean.adb (Clean_Project): Correctly delete executable specified as absolute ↵Vincent Celier1-100/+57
path names. 2005-06-14 Vincent Celier <celier@adacore.com> * clean.adb (Clean_Project): Correctly delete executable specified as absolute path names. * make.adb (Gnatmake): Allow relative executable path names with directory information even when project files are used. (Change_To_Object_Directory): Fail gracefully when unable to change current working directory to object directory of a project. (Gnatmake): Remove exception handler that could no longer be exercized (Compile_Sources.Compile): Use deep copies of arguments, as some of them may be deallocated by Normalize_Arguments. (Collect_Arguments): Eliminate empty arguments * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False, and set to True when -U is used for GNAT PRETTY or GNAT METRIC. (Check_Project): Return False when Project is No_Project. Return True when All_Projects is True. (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set All_Projects to True. Minor reformatting From-SVN: r101028
2005-03-29make.adb (Gnatmake): Don't fail if the main project file is declared as ↵Vincent Celier1-2/+12
having no Ada sources. 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-18make.adb (Insert_Project_Sources): Make sure the Q is always initialized.Vincent Celier1-0/+7
2005-03-17 Vincent Celier <celier@adacore.com> * make.adb (Insert_Project_Sources): Make sure the Q is always initialized. * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against the default for the tree, not the global default naming. * prj-proc.adb (Recursive_Process): No need to put the default naming in the project data, it's already there. From-SVN: r96669
2005-03-15mlib-tgt-tru64.adb, [...] (Library_Exist_For, [...]): Add new parameter ↵Vincent Celier1-180/+311
In_Tree to specify the project tree... 2005-03-08 Vincent Celier <celier@adacore.com> * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For, Library_File_Name_For): Add new parameter In_Tree to specify the project tree: needed by the project manager. Adapt to changes in project manager using new parameter In_Tree. Remove local imports, use functions in System.CRTL. * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed to use the project manager. * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter In_Tree to designate the project tree. Adapt to changes in the project manager, using In_Tree. * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library, Copy_Interface_Sources): Add new parameter In_Tree to specify the project tree: needed by the project manager. (Build_Library): Check that Arg'Length >= 6 before checking if it contains "--RTS=...". * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For, Library_File_Name_For): Add new parameter In_Tree to specify the project tree: needed by the project manager. * prj.ads, prj.adb: Major modifications to allow several project trees in memory at the same time. Change tables to dynamic tables and hash tables to dynamic hash tables. Move tables and hash tables from Prj.Com (in the visible part) and Prj.Env (in the private part). Move some constants from the visible part to the private part. Make other constants deferred. (Project_Empty): Make it a variable, not a function (Empty_Project): Add parameter Tree. Returns the data with the default naming data of the project tree Tree. (Initialize): After updating Std_Naming_Data, copy its value to the component Naming of Project Empty. (Register_Default_Naming_Scheme): Use and update the default naming component of the project tree, instead of the global variable Std_Naming_Data. (Standard_Naming_Data): Add defaulted parameter Tree. If project tree Tree is not defaulted, return the default naming data of the Tree. (Initial_Buffer_Size): Constant moved from private part (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new variables initialized in procedure Initialize. (Add_To_Buffer): Add two in out parameters to replace global variables Buffer and Buffer_Last. (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New functions. Adapt to changes to use new type Project_Tree_Ref and dynamic tables and hash tables. (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter for the project tree. (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and constant at the beginning of the package spec, so that they cane be used in subprograms before their full declarations. (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref (Empty_Project): Add parameter of type Project_Node_Ref (Private_Project_Tree_Data): Add component Default_Naming of type Naming_Data. (Buffer, Buffer_Last): remove global variables (Add_To_Buffer): Add two in out parameters to replace global variables Buffer and Buffer_Last. (Current_Packages_To_Check): Remove global variable (Empty_Name): Move to private part (No-Symbols): Make it a constant (Private_Project_Tree_Data): New type for the private part of the project tree data. (Project_Tree_Data): New type for the data of a project tree (Project_Tree_Ref): New type to designate a project tree (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter for the project tree. * prj-attr.ads: Add with Table; needed, as package Prj no longer imports package Table. * prj-com.adb: Remove empty, no longer needed body * prj-com.ads: Move most of the content of this package to package Prj. * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to designate the project node tree and Packages_To_Check to replace global variable Current_Packages_To_Check. Add new parameters In_Tree and Packages_To_Check to local subprograms, when needed. Adapt to changes in project manager with project node tree In_Tree. * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the project tree to most subprograms. Move tables and hash tables to private part of package Prj. Adapt to changes in project manager using project tree In_Tree. * prj-makr.adb (Tree): New constant to designate the project node tree Adapt to change in project manager using project node tree Tree * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly display the Library_Src_Dir and the Library_Dir. Add new parameter In_Tree to designate the project node tree to most subprograms. Adapt to changes in the project manager, using project tree In_Tree. (Check_Naming_Scheme): Do not alter the casing on platforms where the casing of file names is not significant. (Check): Add new parameter In_Tree to designate the * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to designate the project tree. Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables, to replace those that were in the private part of package Prj. Add new parameter In__Tree to designate the project node tree to most subprograms. Adapt to change in Prj.Tree with project node tree In_Tree. (Post_Parse_Context_Clause): When specifying the project node of a with clause, indicate that it is a limited with only if there is "limited" in the with clause, not necessarily when In_Limited is True. (Parse): Add new parameter In_Tree to designate the project node tree * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to designate the project node tree. Adapt to change in Prj.Tree with project node tree In_Tree. * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project tree In_Tree in the call to function Empty_Process to give its initial value to the project data Processed_Data. Add new parameters In_Tree to designate the project tree and From_Project_Node_Tree to designate the project node tree to several subprograms. Adapt to change in project manager with project tree In_Tree and project node tree From_Project_Node_Tree. * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables, to replace those that were in the private part of package Prj. Add new parameter In_Tree to designate the project node tree to most subprograms. Adapt to change in Prj.Tree with project node tree In_Tree. * prj-tree.ads, prj-tree.adb: Add new parameter of type Project_Node_Tree_Ref to most subprograms. Use this new parameter to store project nodes in the designated project node tree. (Project_Node_Tree_Ref): New type to designate a project node tree (Tree_Private_Part): Change table to dynamic table and hash tables to dynamic hash tables. * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate the project tree to most subprograms. Adapt to changes in project manager using project tree In_Tree. * makegpr.adb (Project_Tree): New constant needed to use project manager. From-SVN: r96481
2005-02-10make.adb (Gnatmake): Do not fail when the main project has no object directory.Arnaud Charlet1-46/+48
* make.adb (Gnatmake): Do not fail when the main project has no object directory. From-SVN: r94817
2005-01-03make.adb (Collect_Arguments_And_Compile): Do not attempt to build libraries ↵Arnaud Charlet1-2/+6
when Unique_Compile is True (-u switch). * make.adb (Collect_Arguments_And_Compile): Do not attempt to build libraries when Unique_Compile is True (-u switch). (Gnatmake): ditto. From-SVN: r92843
2004-12-08make.adb (Check_Mains, [...]): Adapt to name changes in package Prj ↵Arnaud Charlet1-98/+117
(Current_Spec_Suffix => Ada_Spec_Suffix... * make.adb (Check_Mains, Switches_Of): Adapt to name changes in package Prj (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix). Take into account Externally_Built attribute. * clean.adb (In_Extension_Chain): Always return False when one of the parameter is No_Project. (Clean_Project): Adapt to changes in package Prj (Lang_Ada => Ada_Language_Index). (Gnatclean): Adapt to change in package Prj.Pars (no parameter Process_Languages for procedure Parse). * gnatcmd.adb (Carg_Switches): New table. (GNATCmd): Put all switches following -cargs in the Carg_Switches table. Adapt to name changes in package Prj (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix). * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type Header_Num and function Hash are now declared in package Prj, not Prj.Com. * prj.adb (Suffix_Of): New function. (Set (Suffix)): New procedure. (Hash): One function moved from Prj.Com (Is_Present, Language_Processing_Data_Of): New functions (Set): Two new procedures (Add_Language_Name, Display_Language_Name): New procedures * prj.ads: (Suffix_Of): New function (Set (Suffix)): New procedure Add several types and tables for multi-language support. (Header_Num): Type moved from Prj.Com (Hash): Two functions moved from Prj.Com (Is_Present, Language_Processing_Data_Of): New functions (Set): Two new procedures (Add_Language_Name, Display_Language_Name): New procedures (Naming): Component name changes: Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix. Add new components: Impl_Suffixes, Supp_Suffixes. (Project_Data): New components: Externally_Built, Supp_Languages, First_Language_Processing, Supp_Language_Processing, Default_Linker, Default_Linker_Path. * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and new package Language_Processing with its attributes (Compiler_Driver, Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option, Binder_Driver, Default_Linker). * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj. (Header_Num): Type moved to package Prj * prj-env.adb: Adapt to name changes in package Prj (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix). * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by default to the project path, except the "-" is one of the directories in env var ADA_PROJECT_PATH. (Current_Project_Path): Global variable, replacing Project_Path that was in the body of Prj.Part. (Project_Path): New function (Set_Project_Path): New procedure Initialize Current_Project_Path during elaboration of the package Remove dependency on Prj.Com, no longer needed * prj-ext.ads (Project_Path): New function (Set_Project_Path): New procedure * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no suffix is defined for language <lang>. (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of accessing directly the components of Naming. (Look_For_Sources): Use Set (Suffix) to set the suffix of a language. Reorganise of this package. Break procedure Check in several procedures. * prj-nmsc.ads: Replace all procedures (Ada_Check, Other_Languages_Check and Language_Independent_Check) with a single procedure Check. * prj-pars.ads, prj-pars.adb (Parse): Remove parameter Process_Languages, no longer needed. * prj-part.adb (Project_Path): Move to the body of Prj.Ext as Current_Project_Path. Remove elaboration code, moved to the body of Prj.Ext Use new function Prj.Ext.Project_Path instead of old variable Project_Path. (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path. When comparing with project paths on the stack, first put the resolved path in canonical case. (Parse_Single_Project): Set the path name of the project file in the tree to the normalized path. * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove parameter Process_Languages, no longer needed. (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and Other_Languages_Check. * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path to store the resolved canonical path of the project file. Remove dependency to Prj.Com, no longer needed * prj-util.adb: Adapt to name changes in package Prj (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix). * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver, Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker, Externally_Built, Include_Option, Language_Processing. * makegpr.adb: Numerous changes due to changes in packages Prj and Prj.Nmsc. * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by default to the project path, except whe "-" is one of the directories in env var ADA_PROJECT_PATH. (Gnatls): In verbose mode, add the new section "Project Search Path:" From-SVN: r91877
2004-11-19make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when gnatbind is ↵Arnaud Charlet1-26/+38
invoked with -shared. * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when gnatbind is invoked with -shared. From-SVN: r90912
2004-07-26[multiple changes]Arnaud Charlet1-11/+24
2004-07-26 Arnaud Charlet <charlet@act-europe.fr> * sem_util.adb (Requires_Transient_Scope): Temporarily disable optimization, not supported by the tree-ssa back-end. 2004-07-26 Olivier Hainque <hainque@act-europe.fr> * s-mastop-irix.adb: Update comments. * a-except.adb (Exception_Information): Raise Constraint_Error if exception Id is Null_Id. This is required behavior, which is more reliably and clearly checked at the top level interface level. 2004-07-26 Javier Miranda <miranda@gnat.com> * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization call if a component has no default_expression and the box is used. * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no default_expression and you use box, it behaves as if you had declared a stand-alone object. (Resolve_Record_Aggregate): If a component has no default_expression and you use box, it behaves as if you had declared a stand-alone object. * sem_ch10.adb (Install_Siblings): Do not make visible the private entities of private-with siblings. 2004-07-26 Ed Schonberg <schonberg@gnat.com> * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view for a component of an itype, set the parent pointer for analysis, there is no list in which to insert it. * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for bona-fide renamings, not for inherited operations. * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an actual for a formal that is an access parameter, create local finalization list even if the expression is not an aggregate. 2004-07-26 Ed Schonberg <schonberg@gnat.com> PR ada/16213 * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming): Diagnose properly illegal subprogram renamings that are library units. 2004-07-26 Ed Schonberg <schonberg@gnat.com> PR ada/15588 * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type conversion rewritten as an unchecked conversion, check that original expression is a variable. * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an unchecked_conversion, create new node rather than rewriting in place, to preserve original construct. 2004-07-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * gigi.h (gnat_expand_body): Deleted. * Make-lang.in: (trans.o): Depends on function.h. * misc.c: (gnat_expand_body): Moved to here. * trans.c (gnat_expand_body_1): Deleted. (gnat_expand_body): Moved from here. (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc. (add_stmt): Check for marked visited with global_bindings_p. (gnat_gimplify_expr, case COMPONENT_REF): New case. (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp. * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a VIEW_CONVERT_EXPR if not operation type. * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for fat pointer. * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor changes: reformatting of negation operators, removing unneeded inequality comparison with zero, converting equality comparisons with zero to negations, changing int/0/1 to bool/false/true, replace calls to gigi_abort with abort, and various other similar changes. 2004-07-26 Vincent Celier <celier@gnat.com> * gnatcmd.adb (GNATCmd): Add processing for new built-in command "setup". * make.adb (Gnatmake): Fail when a library is not present and there is no object directory. * mlib-prj.adb (Check_Library): No need to check if the library needs to be rebuilt if there is no object directory, hence no object files to build the library. * opt.ads (Setup_Projects): New Boolean flag. * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and Location. Create directory when Kind /= "" and in "gnat setup". Report error if directory cannot be created. (Ada_Check): Create library interface copy dir if it does not exist and we are in "gnat setup". (Find_Sources): No error if in "gnat setup" and no Ada sources were found. (Language_Independent_Check): Create object directory, exec directory and/or library directory if they do not exist and we are in "gnat setup". * vms_conv.ads: (Command_Type): New command Setup. * vms_conv.adb (Initialize): Add Setup component of Cammand_List. * vms_data.ads: Add qualifiers/switches for new built-in command "setup". From-SVN: r85188
2004-07-15[multiple changes]Arnaud Charlet1-2/+3
2004-07-15 Robert Dewar <dewar@gnat.com> * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor reformatting * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with access values as an example of a warning. * gnat_rm.texi: Document new attribute Has_Access_Values * gnat-style.texi: Document that box comments belong on nested subprograms * sem_util.ads (Has_Access_Values): Improved documentation * s-finimp.ads, s-finimp.adb: Fix spelling error in comment * sem_prag.adb (Check_Duplicated_Export_Name): New procedure (Process_Interface_Name): Call to this new procedure (Set_Extended_Import_Export_External_Name): Call to this new procedure * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values * einfo.ads: Minor comment typo fixed 2004-07-15 Jose Ruiz <ruiz@act-europe.fr> * snames.adb: Add _atcb. * snames.ads: Add Name_uATCB. * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated (in the expanded code) when using the restricted run time. * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into a in parameter in order to allow ATCBs to be preallocated (in the expanded code). * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in order to allow ATCBs to be preallocated. In case of error, the ATCB is deallocated in System.Tasking.Stages. * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in order to allow ATCBs to be preallocated. * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated here. It was previously done in Initialize_ATCB. * rtsfind.ads: Make the Ada_Task_Control_Block visible. * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the Restricted run time. * exp_ch3.adb: When using the Restricted run time, pass the preallocated Ada_Task_Control_Block when creating a task. 2004-07-15 Ed Schonberg <schonberg@gnat.com> * sem_util.adb (Normalize_Actuals): If there are no actuals on a function call that is itself an actual in an enclosing call, diagnose problem here rather than assuming that resolution will catch it. * sem_ch7.adb (Analyze_Package_Specification): If the specification is the local copy of a generic unit for a formal package, and the generic is a child unit, install private part of ancestors before compiling private part of spec. * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to use scope entities rather than tree structures, to handle properly parent units that are instances rewritten as bodies for inlining purposes. * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent, Remove_Parents): Handle properly a parent unit that is an instantiation, when the unit has been rewritten as a body for inlining purposes. * par.adb (Goto_List): Global variable to collect goto statements in a given unit, for use in detecting natural loops. * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for use in detecting natural loops. * par-labl.adb (Find_Natural_Loops): Recognize loops create by backwards goto's, and rewrite as a infinite loop, to improve locality of temporaries. * exp_util.adb (Force_Evaluation): Recognize a left-hand side subcomponent that includes an indexed reference, to prevent the generation of copies that would miscompile the desired assignment statement. (Build_Task_Image_Decls): Add a numeric suffix to generated name for string variable, to avoid spurious conflicts with the name of the type of a single protected object. * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a loop with an explicit exit statement, to avoid generating an out-of-range value with 'Succ leading to spurious constraint_errors when compiling with -gnatVo. 2004-07-15 Thomas Quinot <quinot@act-europe.fr> * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it might not be analyzed yet, even if its Etype is already set (case of an unchecked conversion built using Unchecked_Convert_To, for example). If the prefix has already been analyzed, this will be a nop anyway. * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a controller type, or an assignment of a record type with controlled components, copy only user data, and leave the finalization chain pointers untouched. 2004-07-15 Vincent Celier <celier@gnat.com> * make.adb (Collect_Arguments): Improve error message when attempting to compile a source not part of any project, when -x is not used. * prj.ads: (Defined_Variable_Kind): New subtype * prj-attr.adb (Register_New_Package): Two new procedures to register a package with or without its attributes. (Register_New_Attribute): Mew procedure to register a new attribute in a package. New attribute oriented subprograms: Attribute_Node_Id_Of, Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of, Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of, Next_Attribute. New package oriented subprograms: Package_Node_Id_Of, Add_Unknown_Package, First_Attribute_Of, Add_Attribute. * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized type. (Package_Node_Id): Now a private, self initialized type (Register_New_Package): New procedure to register a package with its attributes. New attribute oriented subprograms: Attribute_Node_Id_Of, Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of, Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of, Next_Attribute. New package oriented subprograms: Package_Node_Id_Of, Add_Unknown_Package, First_Attribute_Of, Add_Attribute. * prj-dect.adb (Parse_Attribute_Declaration, Parse_Package_Declaration): Adapt to new spec of Prj.Attr. * prj-makr.adb (Make): Parse existing project file before creating other files. Fail if there was an error during parsing. * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to new spec of Prj.Attr. * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt to new spec of Prj.Attr. 2004-07-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * utils2.c: Fix typo in comment. From-SVN: r84774
2004-07-06[multiple changes]Arnaud Charlet1-1/+1
2004-07-06 Vincent Celier <celier@gnat.com> * vms_conv.ads: Minor reformatting. Alphabetical order for enumerated values of type Command_Type, to have the command in alphabetical order for the usage. * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters). * gnat_ugn.texi: Document new switch -dn for the GNAT driver. * makegpr.adb (Global_Archive_Exists): New global Boolean variable (Add_Archive_Path): Only add the global archive if there is one. (Build_Global_Archive): Set Global_Archive_Exists depending if there is or not any object file to put in the global archive, and don't build a global archive if there is none. (X_Switches): New table (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored in the X_Switches table, if any. (Initialize): Make sure the X_Switches table is empty (Scan_Arg): Record -X switches in table X_Switches * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False. * make.adb: Minor comment fix * gnatname.adb (Gnatname): When not on VMS, and gnatname has been invoked with directory information, add the directory in front of the path. * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been invoked with directory information, add the directory in front of the path. * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files when Keep_Temporary_Files is False. (GNATCmd): When not on VMS, and the GNAT driver has been invoked with directory information, add the directory in front of the path. When not on VMS, handle new switch -dn before the command to set Keep_Temporary_Files to True. (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid everywhere. * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been invoked with directory information, add the directory in front of the path. 2004-07-06 Thomas Quinot <quinot@act-europe.fr> * snames.ads, snames.adb (Name_Stub): New name for the distributed systems annex. * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB. New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA. * g-socket.adb (To_Timeval): Fix incorrect conversion of Selector_Duration to Timeval for the case of 0.0. * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of documentation from Evolve_And_Then. 2004-07-06 Jose Ruiz <ruiz@act-europe.fr> * s-taprop-tru64.adb, s-taprop-os2.adb, s-taprop-mingw.adb, s-taprop-posix.adb: Update comment. 2004-07-06 Robert Dewar <dewar@gnat.com> * s-osinte-hpux.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb, s-interr-sigaction.adb, s-taprop-irix-athread.adb, s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb, s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb, a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb, a-tags.ads, bindgen.ads, checks.adb, checks.adb, csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb, exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb, g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb, i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb, sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb, sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb, sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads, s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads, s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb, s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb, vms_data.ads: Minor reformatting, Fix bad box comment format. * gnat_rm.texi: Fix minor grammatical error * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many more cases of discriminated records to be recognized as not needing a secondary stack. (Has_Access_Values): New function. * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence with LRM terminology). Change terminology in comments primitive type => elementary type. 2004-07-06 Ed Schonberg <schonberg@gnat.com> PR ada/15602 * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal parameters do not impose any requirements on the presence of a body. 2004-07-06 Ed Schonberg <schonberg@gnat.com> PR ada/15593 * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a compilation unit and is in an open scope at the point of instantiation, assume that a body may be present later. 2004-07-06 Ed Schonberg <schonberg@gnat.com> * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size): Improve error message when specified size is not supported. * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram is never a primitive operation. From-SVN: r84152
2004-06-28[multiple changes]Arnaud Charlet1-7/+9
2004-06-28 Robert Dewar <dewar@gnat.com> * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to deal with problem of inefficient slices on machines with strict alignment, when the slice is a component of a composite. * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit machines, we need the check there as well. 2004-06-28 Ed Schonberg <schonberg@gnat.com> * exp_ch5.adb (Expand_Assign_Array): Use correct condition to determine safe copying direction for overlapping slice assignments when component is controlled. * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a formal derived type in the actual for a formal package are visible in the enclosing instance. 2004-06-28 Ed Schonberg <schonberg@gnat.com> PR ada/15600 * sem_util.adb (Trace_Components): Diagnose properly an illegal circularity involving a private type whose completion includes a self-referential component. (Enter_Name): Use Is_Inherited_Operation to distinguish a source renaming or an instantiation from an implicit derived operation. 2004-06-28 Pascal Obry <obry@gnat.com> * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from DLL. (Library_File_Name_For): Idem. 2004-06-28 Matthew Gingell <gingell@gnat.com> * g-traceb.ads: Add explanatory note on the format of addresses expected by addr2line. 2004-06-28 Jerome Guitton <guitton@act-europe.fr> * Makefile.in: Force debugging information on s-tasdeb.adb, a-except.adb and s-assert.adb needed by the debugger. 2004-06-28 Vincent Celier <celier@gnat.com> * make.adb (Collect_Arguments_And_Compile): Change Flag1 to Need_To_Build_Lib. (Gnatmake): Ditto. * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib * prj.adb: Minor reformatting (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2. * prj.ads: Comment updates Minor reformatting (Project_Data): Change Flag1 to Need_To_Build_Lib. Remove Flag2: not used. * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a declaration. * gnat_ugn.texi: Put a "null;" declaration in one project file example * gnat_rm.texi: Document Empty declarations "null;". * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in front of the linker options. (Link_Foreign): Put the global archives and the libraries in front of the linker options. 2004-06-28 Javier Miranda <miranda@gnat.com> * rtsfind.adb: (Get_Unit_Name): Fix typo in comment (RTU_Loaded): Code cleanup (Set_RTU_Loaded): New procedure to register as *loaded* explicitly withed predefined units. * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded* explicitly withed predefined units. Fix typo in comment * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded* explicitly withed predefined units. From-SVN: r83789
2004-06-25revert: [multiple changes]Arnaud Charlet1-389/+434
2004-06-25 Pascal Obry <obry@gnat.com> * makegpr.adb (Build_Library): Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library call. * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and Relocatable are now synonym. * Makefile.in: Use s-parame-mingw.adb on MingW platform. * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition. Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library call. * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable. (Default_DLL_Address): Removed. * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb: (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable. (Default_DLL_Address): Removed. * mlib-tgt-mingw.adb: Ditto. (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name. * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute the initial thread stack size. * a-strmap.ads: Move package L to private part as it is not used in the spec. Found while reading code. 2004-06-25 Olivier Hainque <hainque@act-europe.fr> * tracebak.c: Introduce support for a GCC infrastructure based implementation of __gnat_backtrace. * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record any more. Use accessors instead. This eases maintenance and relaxes some alignment constraints. (_GNAT_Exception structure): Remove the Ada specific fields (EID_For, Adjust_N_Cleanups_For): New accessors, exported by a-exexpr.adb. (is_handled_by, __gnat_eh_personality): Replace component references to exception structure by use of the new accessors. * init.c (__gnat_initialize): Adjust comments to match the just reverted meaning of the -static link-time option. * adaint.c (convert_addresses): Arrange not to define a stub for mips-irix any more, as we now want to rely on a real version from a recent libaddr2line. * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that the personality routine can use them and not have to rely on a C counterpart of the record anymore. This simplifies maintenance and relaxes the constraint of having Standard'Maximum_Alignment match BIGGEST_ALIGNMENT. Update comments, and add a section on the common header alignment issue. 2004-06-25 Geert Bosch <bosch@gnat.com> * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in polynomial approximation. Fixes inconsistency with Cody/Waite algorithm. 2004-06-25 Robert Dewar <dewar@gnat.com> * gnat_rm.texi: Fix section on component clauses to indicate that the restriction on byte boundary placement still applies for bit packed arrays. Add comment on stack usage from Initialize_Scalars * gnat_ugn.texi: Add documentation for -gnatyLnnn * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for limiting nesting level. * usage.adb: Add line for -gnatyLnnn switch * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads, sem_ch13.adb, exp_aggr.adb: Minor reformatting * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base type as well as on the subtype. This corrects a problem in freeze in setting alignments of atomic types. * sem_eval.ads: Minor comment typo fixed * par-util.adb (Push_Scope_Stack): Check for violation of max nesting level. Minor reformatting. * fname.adb (Is_Predefined_File_Name): Require a letter after the minus sign. This means that file names like a--b.adb will not be considered predefined. * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing record Test new flag and give diagnostic for bad component clause. (Freeze_Entity): Set alignment of array from component alignment in cases where this is safe to do. * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed arrays. * cstand.adb: (Create_Standard): Set alignment of String to 1 * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated code in the common constrained array cases. * a-storio.adb: Change implementation to avoid possible alignment problems on machines requiring strict alignment (data should be moved as type Buffer, not type Elmt). * checks.adb (Apply_Array_Size_Check): Improve these checks by killing the overflow checks which we really do not need (64-bits is enough). 2004-06-25 Vincent Celier <celier@gnat.com> * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path inconditionally for the main project. (Recursive_Add_Archives.Add_Archive_Path): New procedure (Link_Executables.Check_Time_Stamps): New procedure (Link_Executables.Link_Foreign): New procedure Changes made to reduce nesting level of this package (Check): New procedure (Add_Switches): When not in quiet output, check that a switch is not the concatenation of several valid switches. If it is, issue a warning. (Build_Global_Archive): If the global archive is rebuilt, linking need to be done. (Compile_Sources): Rebuilding a library archive does not imply rebuilding the global archive. (Build_Global_Archive): New procedure (Build_Library): New name for Build_Archive, now only for library project (Check_Archive_Builder): New procedure (Create_Global_Archive_Dependency_File): New procedure (Gprmake): Call Build_Global_Archive before linking * makegpr.adb: Use Other_Sources_Present instead of Sources_Present throughout. (Scan_Arg): Display the Copyright notice when -v is used * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=) for gnatls. * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT COMPILE. Add new GNAT LIST qualifier /FILES= Added qualifier /DIRECTORY= to GNAT METRIC Added qualifier /FILES= to GNAT METRIC Added qualifier /FILES to GNAT PRETTY * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS, to take into account both versions of the switch. * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should always be the last switch to the gcc driver. Disable switch storing so that switches automatically added by the gcc driver are not put in the ALI file. * prj.adb (Project_Empty): Take into account changes in components of Project_Data. * prj.ads (Languages_Processed): New enumaration value All_Languages. * prj.ads (Project_Data): Remove component Lib_Elaboration: never used. Split Boolean component Ada_Sources_Present in two Boolean components Ada_Sources_Present and Other_Sources_Present. Minor reformatting * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present instead of Sources_Present. (Set_Ada_Paths.Add.Recursive_Add): Ditto * prj-nmsc.adb: Minor reformatting (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme (Check_Ada_Naming_Scheme_Validity): New name of previous procedure Check_Ada_Naming_Scheme. Change Sources_Present to Ada_Sources_Present or Other_Sources_Present throughout. * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter In_Limited. Make sure that all cycles where there is at least one "limited with" are detected. (Parse_Single_Project): New Boolean parameter In_Limited * prj-proc.adb (Recursive_Check): When Process_Languages is All_Languages, call first Prj.Nmsc.Ada_Check, then Prj.Nmsc.Other_Languages_Check. * prj-proc.adb (Process): Use Ada_Sources_Present or Other_Sources_Present (instead of Sources_Present) depending on Process_Languages. * lang-specs.h: Keep -g and -m switches in the same order, and as the last switches. * lib.adb (Switch_Storing_Enabled): New global Boolean flag (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to False. (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is False. * lib.ads (Disable_Switch_Storing): New procedure. * make.adb: Modifications to reduce nesting level of this package. (Check_Standard_Library): New procedure (Gnatmake.Check_Mains): New procedure (Gnatmake.Create_Binder_Mapping_File): New procedure (Compile_Sources.Compile): Add switch -gnatez as the last option (Display): Never display -gnatez * Makefile.generic: When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT) * gnatcmd.adb (Check_Project): New function (Process_Link): New procedure to reduce nesting depth (Check_Files): New procedure to reduce the nesting depth. For GNAT METRIC, include the inherited sources in extending projects. (GNATCmd): When GNAT LS is invoked with a project file and no files, add the list of files from the sources of the project file. If this list is too long, put it in a temp text files and use switch -files= (Delete_Temp_Config_Files): Delete the temp text file that contains a list of source for gnatpp or gnatmetric, if one has been created. (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources in the project file is too large, create a temporary text file that list them and pass it to the tool with "-files=<temp text file>". (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the generated file is in not in Ada. * gnatls.adb: Remove all parameters And_Save that are no longer used. (Scan_Ls_Arg): Add processing for -files= (Usage): Add line for -files= * g-os_lib.adb (On_Windows): New global constant Boolean flag (Normalize_Pathname): When on Windows and the path starts with a directory separator, make sure that the resulting path will start with a drive letter. * clean.adb (Clean_Archive): New procedure (Clean_Project): When there is non-Ada code, delete the global archive, the archive dependency files, the object files and their dependency files, if they exist. (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only. 2004-06-25 Thomas Quinot <quinot@act-europe.fr> * sinfo.ads: Fix typo in comment. * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses the TSS for remote access-to-subprogram types, since these TSS are always present once the type has been analyzed. (RAS_E_Dereference): Same. * sem_attr.adb (Analyze_Attribute): When analysis of an attribute reference raises Bad_Attribute, mark the reference as analyzed so the node (and any children resulting from rewrites that could have occurred during the analysis that ultimately failed) is not analyzed again. * exp_ch7.ads (Find_Final_List): Fix misaligned comment. * exp_dist.adb: Minor comment fix. * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected type is an anonymous access type, no unchecked deallocation of the allocated object can occur. If the object is controlled, attach it with a count of 1. This allows attachment to the Global_Final_List, if no other relevant list is available. (Get_Allocator_Final_List): For an anonymous access type that is the type of a discriminant or record component, the corresponding finalisation list is the one of the scope of the type. 2004-06-25 Ed Schonberg <schonberg@gnat.com> * sem_ch3.adb (Replace_Type): When computing the signature of an inherited subprogram, use the first subtype if the derived type declaration has no constraint. * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array before applying previous optimization. Minor code cleanup. * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is placed at the beginning of an unpacked record without explicit alignment, a slice of it will be aligned and does not need a copy when used as an actual. 2004-06-25 Ed Schonberg <schonberg@gnat.com> PR ada/15591 PR ada/15592 * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute reference is written with expressions mimicking parameters. 2004-06-25 Hristian Kirtchev <kirtchev@gnat.com> PR ada/15589 * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to STEP 2a. The constraints of a full type declaration of a derived record type are checked for conformance with those declared in the corresponding private extension declaration. The message "not conformant with previous declaration" is emitted if an error is detected. 2004-06-25 Vasiliy Fofanov <fofanov@act-europe.fr> * g-traceb.ads: Document the need for -E binder switch in the spec. * g-trasym.ads: Document the need for -E binder switch in the spec. 2004-06-25 Jose Ruiz <ruiz@act-europe.fr> * sem_prag.adb: Add handling of pragma Detect_Blocking. * snames.h, snames.ads, snames.adb: Add entry for pragma Detect_Blocking. * s-rident.ads: Change reference to pragma Detect_Blocking. * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in system.ads. * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False) to indicate whether pragma Detect_Blocking is active. * par-prag.adb: Add entry for pragma Detect_Blocking. * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug of not handling WITH. Note that this replaces the previous update which was incorrect. 2004-06-25 Javier Miranda <miranda@gnat.com> * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the use-clauses to have a clean environment. * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force the installation of the use-clauses to stablish a clean environment in case of compilation of a separate unit; otherwise the call to use_one_package is protected by the barrier Applicable_Use. * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force the installation of the use-clauses to stablish a clean environment in case of compilation of a separate unit. (End_Use_Clauses): Minor comment cleanup. 2004-06-25 Sergey Rybin <rybin@act-europe.fr> * gnat_ugn.texi: Add description of the gnatpp 'files' switch From-SVN: r83658
2004-06-14[multiple changes]Arnaud Charlet1-2/+7
2004-06-14 Pascal Obry <obry@gnat.com> * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on Windows. Fix minor typo. * mlib-tgt-mingw.adb: New implementation using the GCC -shared option which is now supported on Windows. With this implementation using the Library Project feature is no different on Windows than on UNIX. 2004-06-14 Vincent Celier <celier@gnat.com> * makegpr.adb (Compile_Sources): Nothing to do when there are no non-Ada sources. * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment * prj-part.adb (Parse_Single_Project): When a duplicate project name is found, show the project name and the path of the previously parsed project file. 2004-06-14 Ed Schonberg <schonberg@gnat.com> * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an array, avoid copying the actual before the call. 2004-06-14 Thomas Quinot <quinot@act-europe.fr> * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools. Instead, allocate memory on worst-case alignment assumptions, and then return an aligned address within the allocated zone. 2004-06-14 Robert Dewar <dewar@gnat.com> * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to elab entities in predefined units in No_Run_Time_Mode. (Gen_Adainit_C): Same fix (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined units in No_Run_Time_Mode (Gen_Elab_Calls_C): Same fix * symbols-vms-alpha.adb: Minor reformatting * g-debpoo.ads: Minor reformatting * lib.adb (In_Same_Extended_Unit): Version working on node id's * lib.ads (In_Same_Extended_Unit): Version working on node id's * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit working on nodes. * make.adb: Minor reformatting * par-ch12.adb: Minor reformatting * par-prag.adb: Add dummy entry for pragma Profile_Warnings * prj-strt.adb: Minor reformatting * restrict.ads, restrict.adb: Redo handling of profile restrictions to be more general. * sem_attr.adb: Minor reformatting * sem_ch7.adb: Minor reformatting * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc for type in the same unit as the object declaration. * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows static string expressions and not just string literals. Minor reformatting (Set_Warning): Reset restriction warning flag for restriction pragma Implement pragma Profile_Warnings Implement pragma Profile (Restricted) Give obolescent messages for old restrictions and pragmas * snames.h, snames.ads, snames.adb: Add new entry for pragma Profile_Warnings. * s-rident.ads: Add declarations for restrictions required by profile Restricted and profile Ravenscar. * targparm.ads, targparm.adb: Allow pragma Profile in system.ads * gnat_ugn.texi: Correct some missing entries in the list of GNAT configuration pragmas. From-SVN: r83099
2004-06-11[multiple changes]Arnaud Charlet1-41/+55
2004-06-11 Vincent Celier <celier@gnat.com> * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to gnatsym, when symbol policy is Restricted. * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to gnatsym, when symbol policy is Restricted. * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted, read the symbol file. (Finalize): Fail in symbol policy Restricted if a symbol in the original symbol file is not in the object files. Do not create a new symbol file when symbol policy is Restricted. * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used in Scng. * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy Restricted. (Usage): Line for new switch -R * make.adb (Initialize): When the platform is not VMS, add the directory where gnatmake is invoked in the front of the path, if gnatmake is invoked with directory information. Change the Scan_Args while loop to a for loop. (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency: if Depth is equal or greater than the proposed depth, there is nothing to do. (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1 instead of 0. * prj.ads: Add new symbol policy Restricted. * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction with the new parameters Check_All_Labels and Case_Location. * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted (Library_Symbol_File needs to be defined). * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels and Case_Location If Check_All_Labels is True, check that all values of the string type are used, and output warning(s) if they are not. * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels and Case_Location. * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc" * gnat_ugn.texi: Update documentation about the library directory in Library Projects. * makegpr.adb (Display_Command): In verbose mode, also display the value of the CPATH env var, when the compiler is gcc. (Initialize): Change the Scan_Args while loop to a for loop (Compile_Individual_Sources): Change directory to object directory before compilations. * symbols.ads: New symbol policy Restricted. 2004-06-11 Olivier Hainque <hainque@act-europe.fr> * a-except.adb (Raise_After_Setup family): Remove. The responsibility is now taken care of internally in the Exception_Propagation package and does not require clients assistance any more. * a-exexpr.adb (Is_Setup_And_Not_Propagated, Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New functions. Helpers to maintain a predicate required in the handling of occurrence transfer between tasks. This is now handled internally and does not require clients assistance for the setup/propagate separation anymore. (Setup_Exception, Propagate_Exception): Simplify the Private_Data allocation strategy, handle the Setup_And_Not_Propagated predicate and document. * s-taenca.adb (Check_Exception): Use raise_with_msg instead of raise_after_setup, now that everything is handled internally within the setup/propagation engine. 2004-06-11 Hristian Kirtchev <kirtchev@gnat.com> * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once. Add additional conditions for the case of an actual being a simple name or literal. Improve inlining by preventing the generation of temporaries with a short lifetime (one use). 2004-06-11 Hristian Kirtchev <kirtchev@gnat.com> PR ada/15587 * einfo.ads: Minor comment updates for Has_Completion and E_Constant list of flags. * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations and constant redeclarations now set the Has_Completion flag of their defining identifiers. * sem_ch7.adb (Analyze_Package_Spec): Add procedure Inspect_Deferred_Constant_Completion. Used to detect private deferred constants that have not been completed either by a constant redeclaration or pragma Import. Emits error message "constant declaration requires initialization expression". * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now completes a deferred constant. 2004-06-11 Geert Bosch <bosch@gnat.com> * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers. * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in calculating exponent for scaling denormal numbers. (Leading_Part): Properly raise Constraint_Error for zero or negative Adjustment. (Remainder): Properly raise Constraint_Error for zero divisor. 2004-06-11 Thomas Quinot <quinot@act-europe.fr> * sem_util.adb: Minor reformatting. * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit dereference when accessing the entry parameter record. (Check_Array_Type): Always check for possible implicit dereference. (maybe_implicit_dereference): Rename to check_no_implicit_derefence. Abort if a pointer is still present (denoting that an implicit dereference was left in the tree by the front-end). * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit dereference when accessing the entry parameter record. (Check_Array_Type): Always check for possible implicit dereference. (maybe_implicit_dereference): Rename to check_no_implicit_derefence. Abort if a pointer is still present (denoting that an implicit dereference was left in the tree by the front-end). 2004-06-11 Emmanuel Briot <briot@act-europe.fr> * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error message, like the compiler itself does. Easier to parse the output. * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments. * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should be base names, and not includes directories. 2004-06-11 Arnaud Charlet <charlet@act-europe.fr> * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES), so that dependencies are properly taken into account by make. 2004-06-11 Arnaud Charlet <charlet@act-europe.fr> PR ada/15622 * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads, exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic 2004-06-11 Jerome Guitton <guitton@act-europe.fr> * Makefile.in (install-gnatlib): install target-specific run-time files. * Make-lang.in: Remove obsolete targets. 2004-06-11 Ed Schonberg <schonberg@gnat.com> * par-ch12.adb (P_Generic): Add scope before analyzing subprogram specification, to catch misuses of program unit names. * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on superfluous conversions in an instance. 2004-06-11 Ed Schonberg <schonberg@gnat.com> PR ada/15403 * sem_ch12.adb (Save_References): If operator node has been folded to enumeration literal, associated_node must be discarded. 2004-06-11 Jose Ruiz <ruiz@act-europe.fr> * s-stchop-vxworks.adb: Add required pragma Convention to Task_Descriptor because it is updated by a C function. From-SVN: r82973
2004-05-10[multiple changes]Arnaud Charlet1-2/+8
2004-05-10 Doug Rupp <rupp@gnat.com> * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to system.aux_dec. * s-auxdec.ads: Add Short_Address subtype (moved here from System). * Makefile.in: [VMS]: Add translation for 5qauxdec.ads. * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha. Fixes undefined symbols in IA64 gnatlib. * 5vinmaop.adb: Reference s-auxdec for Short_Address. * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype Short_Address). This will be moved to system.auxdec. 2004-05-10 Thomas Quinot <quinot@act-europe.fr> * sem_util.adb: Replace test for presence of a node that is always present with a call to Discard_Node. * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to Analyze on the library unit node after generation of distribution stub constructs. The call was a no-op because Unit_Node has already been Analyzed, and the tree fragments for the distribution stubs are analyzed as they are inserted in Exp_Dist. Update comment regarding to distribution stubs to reflect that we do not generate stub in separate files anymore. * einfo.ads: Clarify the fact that a tagged private type has the E_Record_Type_With_Private Ekind. * erroutc.adb: Minor reformatting * erroutc.ads (Max_Msg_Length): Increase to cover possible larger values if line length is increased using -gnatyM (noticed during code reading). * eval_fat.adb: Minor reformatting Put spaces around exponentiation operator 2004-05-10 Ed Schonberg <schonberg@gnat.com> PR ada/15005 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix has been rewritten as an explicit dereference, retrieve type of original node to check for possibly unconstrained record type. 2004-05-10 Ed Schonberg <schonberg@gnat.com> * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not overriding, use the operation of the parent unconditionally. * sem_ch4.adb (Remove_Address_Interpretations): Remove address operation when either operand is a literal, to avoid further ambiguities. * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and overridden by a previous explicit declaration, mark the previous entity as overriding. * sem_disp.adb (Check_Dispatching_Operation): New predicate Is_Visibly_Controlled, to determine whether a declaration of a primitive control operation for a derived type overrides an inherited one. Add warning if the explicit declaration does not override. 2004-05-10 Vincent Celier <celier@gnat.com> * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in some cases when the sources are no longer present. * make.adb (Collect_Arguments): Fail if an external source, not part of any project need to be compiled, when switch -x has not been specified. * makeusg.adb: Document new switch -x * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag, defaulted to False. * switch-m.adb (Scan_Make_Switches): New switch -x * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for gnatmake switch -x. * gnat_ugn.texi: Document new gnatmake switch -x 2004-05-10 Eric Botcazou <ebotcazou@act-europe.fr> * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0. * utils.c (create_var_decl): Do not modify the DECL_COMMON flag. (process_attributes): Likewise. 2004-05-10 Joel Brobecker <brobecker@gnat.com> * s-inmaop.ads: Fix spelling mistake in one of the comments. 2004-05-10 Robert Dewar <dewar@gnat.com> * gnat_ugn.texi: Document that for config pragma files, the maximum line length is always 32767. * gnat_rm.texi: For pragma Eliminate, note that concatenation of string literals is now allowed. * gnat-style.texi: Remove statement about splitting long lines before an operator rather than after, since we do not follow this rule at all. Clarify rule (really lack of rule) for spaces around exponentiation * sem_elim.adb: Allow concatenation of string literals as well as a single string literal for pragma arguments. * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function * a-textio.adb (Terminate_Line): Do not add line feed if nothing written for append case. * frontend.adb: Changes to avoid checking max line length in config pragma files. * g-os_lib.ads: Minor reformatting * mlib-utl.adb: Do not define Max_Line_Length locally (definition was wrong in any case. Instead use standard value. Noticed during code reading. * opt.ads (Max_Line_Length): New field, used to implement removal of limitation on length of lines when scanning config pragma files. * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb, makeutl.ads, makeutl.adb: Minor reformatting * scn.adb: Do not check line length while scanning config pragma files Do not check line length while scanning out license information * scng.adb: Changes to avoid line length checks while parsing config pragma files. 2004-05-10 GNAT Script <nobody@gnat.com> * Make-lang.in: Makefile automatically updated From-SVN: r81671
2004-05-05[multiple changes]Arnaud Charlet1-312/+374
2004-05-05 Emmanuel Briot <briot@act-europe.fr> * g-os_lib.ads (Invalid_Time): New constant * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now return OS_Time instead of time_t to match what is imported by Ada. Now return -1 if the file doesn't exist, instead of a random value 2004-05-05 Robert Dewar <dewar@gnat.com> * usage.adb: Add line for -gnatR?s switch * sem_ch13.adb, exp_ch2.adb: Minor reformatting * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size and for Match (Data_First, Data_last) * lib-writ.adb (Write_With_Lines): Ensure that correct index number is written when we are dealing with multi-unit files. 2004-05-05 Jerome Guitton <guitton@act-europe.fr> * Makefile.in: Remove unused targets and variables. 2004-05-05 Vincent Celier <celier@gnat.com> * switch-m.adb: New gnatmake switch -eI * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and of new gnatmake switch -eInnn. * makegpr.adb: Take into account new parameters Index and Src_Index in Prj.Util. * clean.adb: Implement support for multi-unit sources, including new switch -i. * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter Src_Index. * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0 (Extract_From_Q): New out parameter Index (Mark, Is_Marked): Subprograms moved to Makeutl (Switches_Of): New parameter Source_Index (Add_Switch): New parameter Index (Check): New parameter Source_Index (Collect_Arguments): New parameter Source_Index (Collect_Arguments_And_Compile): New parameter Source_Index (Compile): New parameter Source_Index Put subprograms in alphabetical order Add support for multi-source sources, including in project files. * makeutl.ads, makeutl.adb (Unit_Index_Of): New function (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from Make. * makeusg.adb: New gnatmake switch -eInnn * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to Prj.Util.Value_Of. * opt.ads (Main_Index): New variable, defaulted to 0. * osint.ads, osinte.adb (Add_File): New parameter Index (Current_Source_Index): New function * prj.adb: Take into account new components Index and Src_Index * prj.ads (String_Element): New component Index (Variable_Value): New component Index (Array_Element): New component Src_Index * prj-attr.adb: Indicate that optional index may be specified for attributes Main, Executable, Spec, Body and some of Switches. * prj-attr.ads (Attribute_Kind): New values for optional indexes (Attribute_Record): New component Optional_Index * prj-com.ads (File_Name_Data): New component Index * prj-dect.adb (Parse_Attribute_Declaration): Process optional index * prj-env.adb (Put): Output optional index * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and attributes Spec and Body. * prj-nmsc.adb: Process optional indexes * prj-pp.adb: Ouput "at" for optional indexes * prj-proc.adb: Take into account optional indexes * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter Optional_Index. For string literal, process optional index when Optional_Index is True. (Parse_Expresion): New Boolean parameter Optional_Index * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function (Set_Source_Index_Of): New procedure * prj-util.adb (Executable_Of, Value_Of): Take into account optional index. * prj-util.ads (Executable_Of): New parameter Index (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value): New parameter Src_Index, defaulted to 0. 2004-05-05 Ed Schonberg <schonberg@gnat.com> PR ada/15257 * sem_ch3.adb (Access_Definition): If this is an access parameter whose designated type is imported through a limited_with clause, do not add the enclosing subprogram to the list of private dependents of the type. 2004-05-05 Ed Schonberg <schonberg@gnat.com> PR ada/15258 * sem_ch6.adb (Base_Types_Match): True if one type is imported through a limited_with clause, and the other is its non-limited view. 2004-05-05 Thomas Quinot <quinot@act-europe.fr> * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals. * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb, exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use Stand.Boolean_Literals to produce references to entities Standard_False and Standard_True from compile-time computed boolean values. * stand.ads (Boolean_Literals): New variable, provides the entity values for False and True, for use by the expander. 2004-05-05 Doug Rupp <rupp@gnat.com> * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype 5vinmaop.adb: Unchecked convert Short_Address vice Address * adaint.c, raise.c: Caste CRTL function return value to avoid gcc error on 32/64 bit IVMS. * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and target = IA64/VMS. * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS. * 5qsystem.ads (Address): Declare as Long_Integer (Short_Address): Declare as 32 bit subtype of Address Declare abstract address operations to avoid gratuitous ambiguities. 2004-05-05 Jose Ruiz <ruiz@act-europe.fr> * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249) instead of the old Boolean_Entry_Barriers. Ditto for No_Task_Attributes_Package instead of No_Task_Attributes. 2004-05-05 GNAT Script <nobody@gnat.com> * Make-lang.in: Makefile automatically updated From-SVN: r81519
2004-05-03[multiple changes]Arnaud Charlet1-5/+7
2004-05-03 Olivier Hainque <hainque@act-europe.fr> PR ada/15152 * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments alone. Replacing object references by literals is inappropriate in a so low level context. 2004-05-03 Arnaud Charlet <charlet@act-europe.fr> * a-exexpr.adb: Add comments 2004-05-03 Joel Brobecker <brobecker@gnat.com> * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to declare the Ancestor_Tags array in Type_Specific_Data with a small size without risking a bounds check error when accessing one of its components. (Type_Specific_Data): Define Ancestor_Tags as a small array. This prevents us from hitting a limitation during the debug info generation when using stabs. * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a small array. This prevents us from hitting a limitation during the debug info generation when using stabs. 2004-05-03 Eric Botcazou <ebotcazou@act-europe.fr> lang-specs.h: Remove -gnatz* from specs. 2004-05-03 Vincent Celier <celier@gnat.com> * gprmake.adb, makegpr.ads, makegpr.adb: New files. * Make-lang.in, Makefile.in: Add gprmake 2004-05-03 Thomas Quinot <quinot@act-europe.fr> * sem_aggr.adb: Fix typo in comment. 2004-05-03 Robert Dewar <dewar@gnat.com> * make.adb: Minor reformatting * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address so that it works when address is not a private type. * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal properly with rewritten unchecked conversions. This prevents order-of-elaboration issues that can otherwise arise. (Minimum_Size): Don't check size of access types under VMS * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove interpretations of integer literals as type System.Address. * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function (Is_Descendent_Of): New function 2004-05-03 Jose Ruiz <ruiz@act-europe.fr> * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers. Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length. No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment. * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead of the old Max_Entry_Queue_Depth. * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers. Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment * snames.ads: New entry for proper handling of Boolean_Entry_Barriers. New entry for proper handling of Max_Entry_Queue_Depth. New entry for proper handling of No_Dynamic_Interrupts. * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that supersedes the GNAT specific restriction Boolean_Entry_Barriers. Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes the GNAT specific restriction Max_Entry_Queue_Depth. Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes the GNAT specific restriction No_Dynamic_Interrupts. * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers instead of the old Boolean_Entry_Barriers. Use the new restriction No_Dynamic_Attachment instead of the old No_Dynamic_Interrupts. * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that supersedes the GNAT specific restriction Boolean_Entry_Barriers. * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead of the old Max_Entry_Queue_Depth. 2004-05-03 GNAT Script <nobody@gnat.com> * Make-lang.in: Makefile automatically updated From-SVN: r81429
2004-04-29[multiple changes]Arnaud Charlet1-1/+13
2004-04-29 Ed Schonberg <schonberg@gnat.com> * checks.adb (Enable_Range_Check): If the prefix of an index component is an access to an unconstrained array, perform check unconditionally. 2004-04-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * decl.c (gnat_to_gnu_field): Also call make_packable_type if Component_Clause. 2004-04-29 Olivier Hainque <hainque@act-europe.fr> * init.c (__gnat_install_handler, __gnat_error_handler): Remove alternate stack setting. There was no support for the tasking cases and the changes eventually caused a number of side-effect failures in the non-tasking case too. 2004-04-29 Eric Botcazou <ebotcazou@act-europe.fr> lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or -gnats is passed. 2004-04-29 Vincent Celier <celier@gnat.com> * make.adb (Gnatmake): Increase max size of argument array for gnatbind for the potential addition of -F. If there are Stand-Alone Library projects, invoke gnatbind with -F to be sure that elaboration flags will be checked. * switch-c.adb: Correct call to Scan_Pos for -gnateI 2004-04-29 Thomas Quinot <quinot@act-europe.fr> * sem_warn.adb (Check_References): Move '<access-variable> may be null' warning out of under Warn_On_No_Value_Assigned. 2004-04-29 Ed Falis <falis@gnat.com> * gnat_ugn.texi: Fixed texi error 2004-04-29 Robert Dewar <dewar@gnat.com> * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove abstract operations if they come from predefined files. * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be Dynamic, not RM). * s-addope.adb: Correct obvious error in mod function From-SVN: r81289
2004-04-19[multiple changes]Arnaud Charlet1-335/+22
2004-04-19 Arnaud Charlet <charlet@act-europe.fr> * 5isystem.ads: Removed, unused. * gnat_rm.texi: Redo 1.13 change. 2004-04-19 Robert Dewar <dewar@gnat.com> * s-stoele.ads: Clean up definition of Storage_Offset (the new definition is cleaner, avoids the kludge of explicit Standard operator references, and also is consistent with a visible System.Address with no visible operations. * s-geveop.adb: Add declarations to avoid assumption of visible operations on type System.Address (since these might not be available if Address is a non-private type for which the operations are made abstract). * sem_eval.adb: Minor reformatting * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads, s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor reformatting (new function spec format). * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb: Add declarations to avoid assumption of visible operations on type System.Address (since these might not be available if Address is a non-private type for which the operations are made abstract). * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure. * exp_intr.adb: Minor comment update * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting. * 5omastop.adb: Add declarations to avoid assumption of visible operations on type System.Address (since these might not be available if Address is a non-private type for which the operations are made abstract). 2004-04-19 Vincent Celier <celier@gnat.com> * switch-m.adb: (Scan_Make_Switches): Process new switch -eL * prj-pars.ads (Parse): New Boolean parameter Process_Languages, defaulted to Ada. * prj-proc.adb (Process): New Boolean parameter Process_Languages, defaulted to Ada. Call Check with Process_Languages. (Check): New Boolean parameter Process_Languages. Call Recursive_Check with Process_Languages. (Recursive_Check): New Boolean parameter Process_Languages. Call Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to Process_Languages. * prj-proc.ads (Process): New Boolean parameter Process_Languages, * prj-util.ads, prj-util.adb (Executable_Of): New Boolean parameter Ada_Main, defaulted to True. Check for Ada specific characteristics only when Ada_Main is True. * opt.ads: (Follow_Links): New Boolean flag for gnatmake * prj.adb: (Project_Empty): Add new Project_Data components. * prj.ads: New types and tables for non Ada languages. (Project_Data): New components Languages, Impl_Suffixes, First_Other_Source, Last_Other_Source, Imported_Directories_Switches, Include_Path, Include_Data_Set. * prj-env.ads, prj-env.adb: Minor reformatting * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure Put subprograms in alphabetical order * prj-pars.adb (Parse): New Boolean parameter Process_Languages, defaulted to Ada; Call Prj.Proc.Process with Process_Languages and Opt.Follow_Links. * mlib-prj.adb: Back out modification in last version, as they are incorrect. (Build_Library.Check_Libs): Remove useless pragma Warnings (Off) * make.adb: (Mains): Moved to package Makeutl (Linker_Opts): Moved to package Makeutl (Is_External_Assignment): Moved to package Makeutl (Test_If_Relative_Path): Moved to package Makeutl (Gnatmake): Move sorting of linker options to function Makeutl.Linker_Options_Switches. * Makefile.in: Add makeutl.o to the object files for gnatmake * makeusg.adb: Add line for new switch -eL. * gnatls.adb (Image): New function. (Output_Unit): If in verbose mode, output the list of restrictions specified by pragmas Restrictions. * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use Text_IO. * a-calend.adb (Split): Shift the date by multiple of 56 years, if needed, to put it in the range 1970 (included) - 2026 (excluded). (Time_Of): Do not shift Unix_Min_Year (1970). Shift the date by multiple of 56 years, if needed, to put it in the range 1970 (included) - 2026 (excluded). * adaint.h, adaint.c (__gnat_set_executable): New function. 2004-04-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push and pop GC context. (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE. (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH. (tree_transform, case N_Procedure_Call_Statement): Build a tree. (tree_transform, case N_Code_Statement): Likewise. (gnat_expand_stmt, case LABEL_STMT): Don't look at LABEL_STMT_FIRST_IN_EH. (gnat_expand_stmt, case ASM_STMT): New case. * utils2.c (build_unary_op): Properly set TREE_READONLY of UNCONSTRAINED_ARRAY_REF. * utils.c (poplevel): Temporarily push/pop GC context around inline function expansion. * decl.c (maybe_variable): Properly set TREE_READONLY of UNCONSTRAINED_ARRAY_REF. (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE. * ada-tree.def: (ASM_STMT): New. * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted. (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT, ASM_STMT_INPUT): New. (ASM_STMT_CLOBBER): Likewise. 2004-04-19 Thomas Quinot <quinot@act-europe.fr> * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use general rcheck mechanism to raise Program_Error for E.4(18), instead of a custom raiser in System.Partition_Interface. Part of general cleanup work before PolyORB integration. * snames.ads, snames.adb: Add new runtime library entities and names for PolyORB DSA. * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to exp_dist. (Build_Subprogram_Id): New subprogram provided by exp_dist Code reorganisation in preparation for PolyORB integration. * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to exp_dist. (Build_Subprogram_Id): New subprogram provided by exp_dist * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in actual parameter types for call to dereference of an access-to-subprogram type. * rtsfind.ads: Add new runtime library entities and names for PolyORB DSA. * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value instead, which has the same behaviour here since we never pass it a NULL pointer. * link.c (run_path_option, Solaris case): Use -Wl, as for other platforms. * Makefile.in: adjust object file lists for gnatlink and gnatmake to account for new dependency upon Interfaces.C.Strings + link.o For x86 FreeBSD, use 86numaux. * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up from Mlib.Tgt to Mlib. * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now target-independent. * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove target-specific versions of this subprogram, now implemented as a target-independent function in Mlib. * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb, 5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb (Linker_Library_Path_Option): Remove target-specific versions of this subprogram, now implemented as a target-independent function in Mlib. * atree.adb: (Allocate_Initialize_Node): New subprogram. Factors out node table slots allocation. (Fix_Parents): New subprogram. Encapsulate the pattern of fixing up parent pointers for syntactic children of a rewritten node. (New_Copy_Tree): Use New_Copy to copy non-entity nodes. (Rewrite): Use New_Copy when creating saved copy of original node. (Replace): Use Copy_Node to copy nodes. 2004-04-19 Javier Miranda <miranda@gnat.com> * sprint.adb (Sprint_Node_Actual): Give support to the new Access_To_Subprogram node available in Access_Definition nodes. In addition, give support to the AI-231 node fields: null-exclusion, all-present, constant-present. * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram * sinfo.ads, sinfo.adb: New field Access_To_Subprogram_Definition in Access_Definition nodes * sem_ch6.adb (Process_Formals): Move here the code that creates and decorates internal subtype declaration corresponding to the null-excluding formal. This code was previously in Set_Actual_Subtypes. In addition, carry out some code cleanup on this code. In case of access to protected subprogram call Replace_Anonymous_Access_To_Protected_Subprogram. (Set_Actual_Subtypes): Code cleanup. * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to Find_Type in case of anonymous access renamings. Add warning in case of null-excluding attribute used in anonymous access renaming. * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New subprogram * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New subprogram. (Access_Definition): In case of anonymous access to subprograms call the corresponding semantic routine to decorate the node. (Access_Subprogram_Declaration): Addition of some comments indicating some code that probably should be added here. Detected by comparison with the access_definition subprogram. (Analyze_Component_Declaration): In case of access to protected subprogram call Replace_Anonymous_Access_To_Protected. (Array_Type_Declaration): In case of access to protected subprogram call Replace_Anonymous_Access_To_Protected_Subprogram. (Process_Discriminants): In case of access to protected subprogram call Replace_Anonymous_Access_To_Protected_Subprogram. * par.adb (P_Access_Definition): New formal that indicates if the null-exclusion part was present. (P_Access_Type_Definition): New formal that indicates if the caller has already parsed the null-excluding part. * par-ch3.adb (P_Subtype_Declaration): Code cleanup. (P_Identifier_Declarations): Code cleanup and give support to renamings of anonymous access to subprogram types. (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup. (P_Array_Type_Definition): Give support to AI-254. (P_Component_Items): Give support to AI-254. (P_Access_Definition): New formal that indicates if the header was already parsed by the caller. (P_Access_Type_Definition): New formal that indicates if the caller has already parsed the null-excluding part. * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the call to P_Access_Definition. 2004-04-19 Geert Bosch <bosch@gnat.com> * checks.adb (Apply_Float_Conversion_Check): New procedure to implement the delicate semantics of floating-point to integer conversion. (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check. * eval_fat.adb (Machine_Mantissa): Moved to spec. (Machine_Radix): New function. * eval_fat.ads (Machine_Mantissa): Moved from body for use in conversion checks. (Machine_Radix): New function also for use in conversion checks. 2004-04-19 Ed Schonberg <schonberg@gnat.com> * par-prag.adb (Source_File_Name_Project): Fix typo in error message. * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze to decorate the access-to-protected subprogram and the equivalent type. * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support to anonymous access to subprogram types. * exp_ch4.adb (Expand_N_In): Preserve Static flag before constant-folding, for legality checks in contexts that require an RM static expression. * exp_ch6.adb (Expand_N_Function_Call): If call may generate large temporary but stack checking is not enabled, increment serial number to so that symbol generation is consistent with and without stack checking. * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is independent on whether stack checking is enabled, caller must check the corresponding flag. * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need range checks. (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from parent if it has discriminants. (Build_Derived_Private_Type): Constructed full view does not come from source. (Process_Discriminants): Default discriminants on a tagged type are legal if this is the internal completion of a private untagged derivation. * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs no constraint checks, because it corresponds to an existing object. * sem_prag.adb (Process_Convention): Pragma applies only to subprograms in the same declarative part, i.e. the same unit, not the same scope. * sem_res.adb (Valid_Conversion): In an instance or inlined body, ignore type mismatch on a numeric conversion if expression comes from expansion. 2004-04-19 Sergey Rybin <rybin@act-europe.fr> * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for Homonym_Number parameter, add processing for Source_Location parameter corresponding. (Check_Eliminated): Remove the check for homonym numbers, add the check for source location traces. * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number with Arg_Source_Location corresponding to the changes in the format of the pragma. * sem_prag.adb: (Analyze_Pragma): Changes in the processing of Eliminate pragma corresponding to the changes in the format of the pragma: Homonym_Number is replaced with Source_Location, two ways of distinguishing homonyms are mutially-exclusive. 2004-04-19 Joel Brobecker <brobecker@gnat.com> * get_targ.ads (Get_No_Dollar_In_Label): Remove. * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of No_Dollar_In_Label, no longer necessary, as it is always True. (Strip_Suffixes): Likewise. 2004-04-19 Gary Dismukes <dismukes@gnat.com> * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of modulus for compatibility with size clause on targets with 16-bit Integer. * layout.adb (Discrimify): In the case of private types, set Vtyp to full type to fix type mismatches on calls to size functions for discriminant-dependent array components. 2004-04-19 Jerome Guitton <guitton@act-europe.fr> * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time lib. 2004-04-19 Pascal Obry <obry@gnat.com> * mdll-utl.adb (Locate): New version is idempotent. From-SVN: r80856
2004-04-05[multiple changes]Arnaud Charlet1-2/+7
2004-04-05 Vincent Celier <celier@gnat.com> * adaint.h, adaint.c: Add function __gnat_named_file_length * impunit.adb: Add Ada.Directories to the list * Makefile.in: Add VMS and Windows versions of Ada.Directories.Validity package body. * Makefile.rtl: Add a-direct and a-dirval * mlib-tgt.ads: Minor comment update. * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb, a-direct.ads, a-direct.adb: New files. 2004-04-05 Vincent Celier <celier@gnat.com> PR ada/13620 * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not just to the compiler. 2004-04-05 Robert Dewar <dewar@gnat.com> * a-except.adb (Exception_Name_Simple): Make sure lower bound of returned string is 1. * ali-util.adb: Use proper specific form for Warnings (Off, entity) * eval_fat.ads: Minor reformatting * g-curexc.ads: Document that lower bound of returned string values is always one. * gnatlink.adb: Add ??? comment for previous change (need to document why this is VMS specific) * s-stoele.ads: Minor reformatting * tbuild.ads: Minor reformatting throughout (new function specs) * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon after WITH. * scng.adb: Minor reformatting 2004-04-05 Geert Bosch <bosch@gnat.com> * eval_fat.adb (Machine): Remove unnecessary suppression of warning. (Leading_Part): Still perform truncation to machine number if the specified radix_digits is greater or equal to machine_mantissa. 2004-04-05 Javier Miranda <miranda@gnat.com> * par-ch3.adb: Complete documentation of previous change Correct wrong syntax documentation of the OBJECT_DECLARATION rule (aliased must appear before constant). * par-ch4.adb: Complete documentation of previous change. * par-ch6.adb: Complete documentation of previous change. * sinfo.ads: Fix typo in commment. 2004-04-05 Ed Schonberg <schonberg@gnat.com> * sem_ch3.adb (Inherit_Components): If derived type is private and has stored discriminants, use its discriminants to constrain parent type, as is done for non-private derived record types. * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement Ada 2005 AI-310: an abstract non-dispatching operation is not a candidate interpretation in an overloaded call. * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if expression is Null and target type is not an access type (e.g. a non-private address type). 2004-04-05 Thomas Quinot <quinot@act-europe.fr> * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment statement whose right-hand side is an inlined call, save a copy of the original assignment subtree to preserve enough consistency for Analyze_Assignment to proceed. * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the complete assignment subtree which is now unnecessary, as the expansion of inlined call has been improved to preserve a consistent assignment tree. Note_Possible_Modification must be called only after checks have been applied, or else unnecessary checks will be generated. * sem_util.adb (Note_Possible_Modification): Reorganise the handling of explicit dereferences that do not Come_From_Source: - be selective on cases where we must go back to the dereferenced pointer (an assignment to an implicit dereference must not be recorded as modifying the pointer); - do not rely on Original_Node being present (Analyze_Assignment calls Note_Possible_Modification on a copied tree). * sem_warn.adb (Check_References): When an unset reference to a pointer that is never assigned is encountered, prefer '<pointer> may be null' warning over '<pointer> is never assigned a value'. 2004-04-05 Ramon Fernandez <fernandez@gnat.com> * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with the ABI. 2004-04-05 Olivier Hainque <hainque@act-europe.fr> * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for libexc. We currently don't reference anything in this library and linking it in triggers linker warnings we don't want to see. * init.c: Update comments. From-SVN: r80431
2004-04-01[multiple changes]Arnaud Charlet1-18/+23
2004-04-01 Robert Dewar <dewar@gnat.com> * checks.adb: Minor reformatting throughout Note that prev checkin added RM reference to alignment warning 2004-04-01 Ed Schonberg <schonberg@gnat.com> * exp_aggr.adb (Get_Component_Val): Treat a string literal as non-static when building aggregate for bit-packed array. * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a function call that is itself the actual in a procedure call, build temporary for it. * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is a string literal, create a temporary for it, constant folding only handles scalars here. 2004-04-01 Vincent Celier <celier@gnat.com> * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC, Error_Msg_SP): New empty procedures to instantiate the Scanner. (Style, Scanner): Instantiations of Styleg and Scng to be able to scan tokens. (Accumulate_Checksum, Initialize_Checksum): Remove procedures. (Get_File_Checksum): Use the instantiated scanner to scan all the tokens and get the checksum. * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is already in the Q. Increase the Marking_Label at the end of the Multiple_Main_Loop, instead of at the beginning. * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~' directly. (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if on VMS. * osint.ads (Multi_Unit_Index_Character): New Character global variable * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character, not '~' directly. * par.adb: Remove test on file name to detect language defined units. Add test on unit name, after parsing, to detect language defined units that are not compiled with -gnatg (except System.RPC and its children) * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the following units without style checking. * switch-c.adb: Change -gnatC to -gnateI * usage.adb: Document new switch -gnateInnn * scng.adb (Accumulate_Token_Checksum): New procedure (Scan): Call Accumulate_Token_Checksum after each identifier, reserved word or literal number. (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral numbers. 2004-04-01 Thomas Quinot <quinot@act-europe.fr> * a-tasatt.adb, g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb, switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb, 5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5vtpopde.adb: Add missing 'constant' keywords. 2004-04-01 Javier Miranda <miranda@gnat.com> * par-ch4.adb: (P_Allocator): Code cleanup * sem_ch3.adb (Access_Definition): Properly set the null-excluding attribute. * sinfo.ads: Complete documentation of previous change 2004-04-01 GNAT Script <nobody@gnat.com> * Make-lang.in: Makefile automatically updated 2004-04-01 Pascal Obry <obry@gnat.com> * gnatlink.adb (Process_Binder_File): Remove duplicate linker options only on VMS. This special handling was done because an old GNU/ld bug on Windows which has been fixed. From-SVN: r80290
2004-03-15[multiple changes]Arnaud Charlet1-46/+24
2004-03-15 Jerome Guitton <guitton@act-europe.fr> * 3zsoccon.ads: Fix multicast options. * s-thread.ads: Move unchecked conversion from ATSD_Access to Address in the spec. 2004-03-15 Robert Dewar <dewar@gnat.com> * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when pragma used for a private type. * lib-xref.adb (Generate_Reference): Do not generate warning if reference is in a different unit from the pragma Unreferenced. * 5vtpopde.adb: Minor reformatting Fix casing of To_Task_ID * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing flag if we have an unchecked conversion to an access type in the same unit. 2004-03-15 Geert Bosch <bosch@gnat.com> * a-ngcoty.adb (Modulus): In alternate formula for large real or imaginary parts, use Double precision throughout. * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only we want to be able to compile run-time with -gnata for testing, but this may also be instantiated in user code that is compiled with -gnata. 2004-03-15 Olivier Hainque <hainque@act-europe.fr> * s-stalib.ads (Exception_Code): New type, to represent Import/Export codes. Having a separate type for this is useful to enforce consistency throughout the various run-time units. (Exception_Data): Use Exception_Code for Import_Code. * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of Natural and Integer in various places. (Register_VMS_Exception): Use Base_Code_In to compute the exception code with the severity bits masked off. (Register_VMS_Exception): Handle the additional exception data pointer argument. * raise.c (_GNAT_Exception structure): Remove the handled_by_others component, now reflected by an exported accessor. (is_handled_by): New routine to compute whether the propagated occurrence matches some handler choice specification. Extracted out of get_action_description_for, and expanded to take care of the VMS specifities. (get_action_description_for): Use is_handled_by instead of an explicit complex condition to decide if the current choice at hand catches the propagated occurrence. * raise.h (Exception_Code): New type for C. * rtsfind.ads (RE_Id, RE_Unit_Table): Add System.Standard_Library.Exception_Code, to allow references from the pragma import/export expander. * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For): New accessors to allow easy access to GNAT exception data characteristics. (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the redundant Handled_By_Others component, helper for the personality routine which will now be able to call the appropriate exception data accessor instead. * cstand.adb (Create_Standard): Adjust the type of the Import_Code component of Standard_Exception_Type to be the closest possible to Exception_Code in System.Standard_Library, that we cannot get at this point. Expand a ??? comment to notify that this type node should probably be rewritten later on. * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the registration call to include a pointer to the exception object in the arguments. * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In instead of int and explicit bitmasks. 2004-03-15 Vincent Celier <celier@gnat.com> * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED equivalent to /STATIC and /NOSTATIC equivalent to /SHARED. * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no longer needed now that it is in the spec of System.Tasking.Task_Attributes. * adaint.h, adaint.c: (__gnat_create_output_file): New function * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of = * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function. * make.adb (Gnatmake): Do not check the executable suffix; it is being taken care of in Scan_Make_Arg. (Scan_Make_Arg): Add the executable suffix only if the argument following -o, in canonical case, does not end with the executable suffix. When in verbose mode and executable file name does not end with executable suffix, output the executable name, in canonical case. * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing to avoid warnings when instantiating Ada.Task_Attributes. Minor reformating. * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries in the correct order. * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but redirect standard output and error to a file for the invocation of the compiler, then read the file. * prj-nmsc.adb (Find_Sources): Use the Display_Value for each directory, instead of the Value. (Find_Source_Dirs): Remove useless code & comments. 2004-03-15 Ed Schonberg <schonberg@gnat.com> * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a tagged type is inherited, and the parent operation is not frozen yet, force generation of a freeze node for the inherited operation, so the corresponding dispatch entry is properly initialized. (Make_Predefined_Primitive_Specs): Check that return type is Boolean when looking for user-defined equality operation. * exp_ch4.adb (Expand_Composite_Equality): Check that return type is boolean when locating primitive equality of tagged component. * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a bit-aligned field and the right-hand side a string literal, introduce a temporary before expanding assignment into a loop. * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for priority in full, to ensure that any expanded subepxressions of it are elaborated in the scope of the init_proc. * exp_prag.adb (Expand_Pragma_Import): Search for initialization call after object declaration, skipping over code that may have been generated for validity checks. * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown discriminants, ignore the known discriminants of its full view, if any, to check legality. * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained component if type has unknown discriminants. (Analyze_Private_Extension_Declaration): Discriminant constraint is null if type has unknown discriminants. * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference for end label when present. * s-fileio.adb (Open): When called with a C_Stream, use given name for temporary file, rather than an empty string. 2004-03-15 Ed Falis <falis@gnat.com> * s-thread.adb: Removed, no longer used. 2004-03-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * decl.c (target.h): Now include. (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE in new build_pointer_from_mode calls for non-fat/non-thin pointer. (validate_size): For POINTER_TYPE, get smallest size permitted on machine. * fe.h: Sort Einfo decls and add Set_Mechanism. * Makefile.in: (LIBGNAT_SRCS): Remove types.h. (ada/decl.o): Depends on target.h. * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use FUNCTION_BOUNDARY; always use TYPE_ALIGN. 2004-03-15 Thomas Quinot <quinot@act-europe.fr> * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID. * exp_ch4.adb (Expand_N_Indexed_Component): Do not call Insert_Dereference_Action when rewriting an implicit dereference into an explicit one, this will be taken care of during expansion of the explicit dereference. (Expand_N_Slice): Same. Always do the rewriting, even for the case of non-packed slices, since the dereference action generated by expansion of the explicit dereference is needed in any case. (Expand_N_Selected_Component): When rewriting an implicit dereference, analyze and resolve the rewritten explicit dereference so it is seen by the expander. (Insert_Dereference_Action): This procedure is now called only for the expansion of an N_Explcit_Dereference_Node. Do insert a check even for dereferences that do not come from source (including explicit dereferences resulting from rewriting implicit ones), but do not recursively insert a check for the dereference nodes contained within the check. (Insert_Dereference_Action): Clarify and correct comment. From-SVN: r79494
2004-03-05[multiple changes]Arnaud Charlet1-5/+5
2004-03-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * trans.c: Reflect GCC changes to fix bootstrap problem. Add warning for suspicious aliasing unchecked conversion. 2004-03-05 Robert Dewar <dewar@gnat.com> * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads, i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads, 5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb, 5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move unchecked conversion to spec to avoid warnings. * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id to Task_ID * 7stpopsp.adb: Correct casing in To_Task_ID call * a-strsea.ads, a-strsea.adb: Minor reformatting * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing * errout.ads: Switch for VMS is now NO_STRICT_ALIASING. Adjust Max_Msg_Length to be clearly large enough. * fe.h: Define In_Same_Source_Unit * osint.adb: Add pragma Warnings Off to suppress warnings * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill aliasing warnings. * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc. * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set. * sem_prag.adb: Implement pragma No_Strict_Aliasing. * sinfo.ads: Remove obsolete comment on validate unchecked conversion node. We now do generate them for gcc back end. * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing warning. * sinput-c.adb: Fix bad name in header. Add pragma Warnings Off to suppress aliasing warning. * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning. * snames.h, snames.ads, snames.adb: Add entry for pragma No_Strict_Aliasing. 2004-03-05 Vincent Celier <celier@gnat.com> * prj-com.ads: Add hash table Files_Htable to check when a file name is already a source of another project. * prj-nmsc.adb (Record_Source): Before recording a new source, check if its file name is not already a source of another project. Report an error if it is. * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no source file name, call gnatpp with all the sources of the main project. * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number of file names. * vms_data.ads: Correct documentation of new /OPTIMIZE keyword NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY: /RUNTIME_SYSTEM=, converted to --RTS= /NOTABS, converted to -notabs 2004-03-05 Pascal Obry <obry@gnat.com> * make.adb: Minor reformatting. 2004-03-05 Ed Schonberg <schonberg@gnat.com> Part of implemention of AI-262. * par-ch10.adb (P_Context_Clause): Recognize private with_clauses. * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New procedure. * sem_ch3.adb (Analyze_Component_Declaration): Improve error message when component type is a partially constrained class-wide subtype. (Constrain_Discriminated_Type): If parent type has unknown discriminants, a constraint is illegal, even if full view has discriminants. (Build_Derived_Record_Type): Inherit discriminants when deriving a type with unknown discriminants whose full view is a discriminated record. * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants flag, to handle properly derivations of tagged types with unknown discriminants. (Analyze_Package_Spec, Analyze_Package_Body): Install Private_With_Clauses before analyzing private part or body. * einfo.ads: Indicate that both Has_Unknown_Discriminants and Has_Discriminants can be true for a given type (documentation). 2004-03-05 Arnaud Charlet <charlet@act-europe.fr> * s-restri.ads: Fix license (GPL->GMGPL). * s-tassta.adb: Minor reformatting. * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level by calls to Exit_One_ATC_Level, since additional clean up is performed by this function. * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level by calls to Exit_One_ATC_Level, since additional clean up is performed by this function. 2004-03-05 GNAT Script <nobody@gnat.com> * Make-lang.in: Makefile automatically updated From-SVN: r78964
2004-01-23[multiple changes]Arnaud Charlet1-86/+87
2004-01-23 Robert Dewar <dewar@gnat.com> * exp_aggr.adb: Minor reformatting * exp_ch9.adb: Minor code clean up Minor reformatting Fix bad character in comment * targparm.adb (Get_Target_Parameters): Give clean abort error on unexpected end of file, along with more detailed message. 2004-01-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of PAT. * decl.c (copy_alias_set): New function. (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it. 2004-01-23 Doug Rupp <rupp@gnat.com> * Makefile.in (install-gnatlib): Change occurrences of lib$$file to lib$${file} in case subsequent character is not a separator. 2004-01-23 Vincent Celier <celier@gnat.com> * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc when the GCC version is at least 3. * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches Remove all "Opt.", to prepare for opt split * prj-part.adb (Parse_Single_Project): New Boolean out parameter Extends_All. Set to True when the project parsed is an extending all project. Fails for importing an extending all project only when the imported project is an extending all project. (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause, depending on the value of Extends_All returned. * prj-proc.adb (Process): Check that no project shares its object directory with a project that extends it, directly or indirectly, including a virtual project. Check that no project extended by another project shares its object directory with another also extended project. * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for Kind = N_With_Clause * prj-tree.ads: Minor reformatting Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All). 2004-01-23 Ed Schonberg <schonberg@gnat.com> * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute applies to a type with an incomplete view, use full view in Name of clause, for consistency with uses of Get_Attribute_Definition_Clause. 2004-01-23 Arnaud Charlet <charlet@act-europe.fr> * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using SCHED_RR, since other values are not supported by this policy. (Initialize): Move initialization of mutex attribute to package elaboration, to prevent early access to this variable. * Makefile.in: Remove mention of Makefile.adalib, unused. * Makefile.adalib: Removed, unused. From-SVN: r76403
2004-01-13[multiple changes]Arnaud Charlet1-1/+18
2004-01-13 Ed Schonberg <schonberg@gnat.com> * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled components that are initialized with aggregates. 2004-01-13 Vincent Celier <celier@gnat.com> * gnatlink.adb (Process_Binder_File): To find directory of shared libgcc, if "gcc-lib" is not a subdirectory, look for the last subdirectory "lib" in the path of the shared libgnat or libgnarl. * make.adb (Gnatmake): If GCC version is at least 3, link with -shared-libgcc, when there is at least one shared library project. * opt.ads (GCC_Version): New integer constant. * adaint.c (get_gcc_version): New function. 2004-01-13 Robert Dewar <dewar@gnat.com> * sem_dist.adb, sem_res.adb, sem_util.adb, sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb, exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting 2004-01-13 Thomas Quinot <quinot@act-europe.fr> * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb, g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object declarations. From-SVN: r75802
2004-01-05[multiple changes]Arnaud Charlet1-33/+65
2004-01-05 Robert Dewar <dewar@gnat.com> * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may be modified by the binder generated main program if the -D switch is used. * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all imported functions (since now we expect this to be done for imported functions) * 5vtaprop.adb: Add several ??? for sections requiring more comments Minor reformatting throughout * 5zinit.adb: Minor reformatting Add 2004 to copyright date Minor changes to avoid -gnatwa warnings Correct some instances of using OR instead of OR ELSE (noted while doing reformatting) * sprint.adb: Minor updates to avoid -gnatwa warnings * s-secsta.ads, s-secsta.adb: (SS_Get_Max): New function to obtain high water mark for ss stack Default_Secondary_Stack is not a constant since it may be modified by the binder generated main program if the -D switch is used. * switch-b.adb: New -Dnnn switch for binder * switch-c.adb: Make -gnatg imply all warnings currently in -gnatwa * vms_conv.adb: Minor reformatting Add 2004 to copyright notice Add 2004 to printed copyright notice * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb, 3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb, 5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb, 5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb, 5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb, 5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb, 5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb, 5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb, vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb, xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads, sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb, checks.adb, clean.adb, cstand.adb, einfo.ads, einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb, prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb, sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb, g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb, lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb: Minor reformatting and code clean ups. Minor changes to prevent -gnatwa warnings * ali.adb: Minor reformatting and cleanup of code Acquire new SS indication of secondary stack use from ali files * a-numaux.ads: Add Pure_Function pragmas for all imported functions (since now we expect this to be done for imported functions) * bindgen.adb: Generate call to modify default secondary stack size if -Dnnn switch given * bindusg.adb: Add line for new -D switch * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate replacement name for Type_May_Have_Non_Bit_Aligned_Components! Add circuitry for both records and arrays to avoid gigi processing if the type involved has non-bit-aligned components * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that N_String_Literal node always references an E_String_Literal_Subtype entity. This may not be true in the future. (Possible_Bit_Aligned_Component): Move processing of Component_May_Be_Bit_Aligned from exp_ch5 to exp_util * exp_ch6.adb (Expand_Thread_Body): Pick up Default_Secondary_Stack_Size as variable so that we get value modified by possible -Dnnn binder parameter. * exp_util.adb (Component_May_Be_Bit_Aligned): New function. (Type_May_Have_Bit_Aligned_Components): New function. * exp_util.ads (Component_May_Be_Bit_Aligned): New function. (Type_May_Have_Bit_Aligned_Components): New function. * fe.h: (Set_Identifier_Casing): Fix prototype. Add declaration for Sem_Elim.Eliminate_Error_Msg. Minor reformatting. * freeze.adb (Freeze_Entity): Add RM reference to error message about importing constant atomic/volatile objects. (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram unless explicit Pure_Function pragma given, to avoid insidious bug of call to non-pure imported function getting eliminated. * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb, gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting Add 2004 to printed copyright notice * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary stack used. * Makefile.rtl: Add entry for g-sestin.o g-sestin.ads: New file. * mdll.adb: Minor changes to avoid -gnatwa warnings * mlib-tgt.adb: Minor reformatting * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND) New switch Sec_Stack_Used (GNAT, GNATBIND) Make Default_Secondary_Stack_Size a variable instead of a constant, so that it can be modified by the new -Dnnn bind switch. * rtsfind.adb (Load_Fail): Give full error message in configurable run-time mode if all_errors mode is set. This was not done in the case of a file not found, which was an oversight. Note if secondary stack unit is used by compiler. * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put ineffective elaborate all pragmas on non-visible packages (this happened when a renamed subprogram was called). Now the elaborate all always goes on the package containing the renaming rather than the one containing the renamed subprogram. * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure (Process_Eliminate_Pragma): Add parameter to capture pragma location. * sem_eval.adb (Eval_String_Literal): Do not assume that string literal has an Etype that references an E_String_Literal. (Eval_String_Literal): Avoid assumption that N_String_Literal node always references an E_String_Literal_Subtype entity. This may not be true in the future. * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture pragma location. * sem_res.adb (Resolve): Specialize msg for function name used in proc call. 2004-01-05 Ed Falis <falis@gnat.com> * g-debuti.adb: Replaced direct boolean operator with short-circuit form. 2004-01-05 Vincent Celier <celier@gnat.com> * bld.adb: Minor comment updates (Process_Declarative_Items): Correct incorrect name (Index_Name instead of Item_Name). * make.adb (Gnatmake): Special process for files to compile/check when -B is specified. Fail when there are only foreign mains in attribute Main of the project file and -B is not specified. Do not skip bind/link steps when -B is specified. * makeusg.adb: Document new switch -B * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag * switch-m.adb: (Scan_Make_Switches): Process -B switch * vms_data.ads: Add new GNAT PRETTY qualifier /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff 2004-01-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer case. * misc.c (gnat_printable_name): If VERBOSITY is 2, call Set_Identifier_Casing. * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type has size that overflows. 2004-01-05 Gary Dismukes <dismukes@gnat.com> * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid -gnatwa warning on static condition. 2004-01-05 Doug Rupp <rupp@gnat.com> * link.c: (shared_libgnat_default) [VMS]: Change to STATIC. 2004-01-05 Arnaud Charlet <charlet@act-europe.fr> * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve all attributes, including read-only attribute. 2004-01-05 Pascal Obry <obry@gnat.com> * bindgen.adb (Gen_Object_Files_Options): Generate the new shared library naming scheme. * mlib-prj.adb (Build_Library): Generate different names for the static or dynamic version of the GNAT runtime. This is needed to support the new shared library naming scheme. (Process_Binder_File): Add detection of shared library in binder file based on the new naming scheme. * gnatlink.adb (Process_Binder_File): Properly detect the new naming scheme for the shared runtime libraries. * Makefile.in: (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming scheme. (install-gnatlib): Do not create symlinks for shared libraries. (gnatlib-shared-default): Idem. (gnatlib-shared-dual-win32): New target. Not used for now as the auto-import feature does not support arrays/records. (gnatlib-shared-win32): Do not create copy for the shared libraries. (gnatlib-shared-vms): Fix shared runtime libraries names. * osint.ads, osint.adb (Shared_Lib): New routine, returns the target dependent runtime shared library name. 2004-01-05 Vasiliy Fofanov <fofanov@act-europe.fr> * osint.adb (Read_Library_Info): Remove bogus check if ALI is older than the object. 2004-01-05 Ed Schonberg <schonberg@gnat.com> * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic protected objects when allocator has a subtype indication, not a qualified expression. Note that qualified expressions may have to be checked when limited aggregates are implemented. * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is pure, emit warning. (Analyze_Pragma, case Pure_Function): If enclosing package is pure and subprogram is imported, remove warning. 2004-01-05 Geert Bosch <bosch@gnat.com> * s-poosiz.adb: Update copyright notice. (Allocate): Use Task_Lock to protect against concurrent access. (Deallocate): Likewise. 2004-01-05 Joel Brobecker <brobecker@gnat.com> * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ??? comment. From-SVN: r75432
2003-12-03[multiple changes]Arnaud Charlet1-1/+1
2003-12-03 Thomas Quinot <quinot@act-europe.fr> PR ada/11724 * adaint.h, adaint.c, g-os_lib.ads: Do not assume that the offset argument to lseek(2) is a 32 bit integer, on some platforms (including FreeBSD), it is a 64 bit value. Introduce a __gnat_lseek wrapper in adaint.c to allow for portability. 2003-12-03 Arnaud Charlet <charlet@act-europe.fr> * gnatvsn.ads (Library_Version): Now contain only the relevant version info. (Verbose_Library_Version): New constant. * g-spipat.adb, g-awk.adb, g-debpoo.adb, g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb, s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa. * gnatlbr.adb: Clean up: replace Library_Version by Verbose_Library_Version. * make.adb, lib-writ.adb, exp_attr.adb: Clean up: replace Library_Version by Verbose_Library_Version. * 5lintman.adb: Removed. * Makefile.in: Update and simplify computation of LIBRARY_VERSION. Fix computation of GSMATCH_VERSION. 5lintman.adb is no longer used: replaced by 7sintman.adb. 2003-12-03 Robert Dewar <dewar@gnat.com> * exp_ch5.adb: (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new name. Modified to consider small non-bit-packed arrays as troublesome and in need of component-by-component assigment expansion. 2003-12-03 Vincent Celier <celier@gnat.com> * lang-specs.h: Process nostdlib as nostdinc * back_end.adb: Update Copyright notice (Scan_Compiler_Arguments): Process -nostdlib directly. 2003-12-03 Jose Ruiz <ruiz@act-europe.fr> * Makefile.in: When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always included in HIE_NONE_TARGET_PAIRS. 2003-12-03 Ed Schonberg <schonberg@gnat.com> * sem_attr.adb: (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it is legal in an instance, because legality is cheched in the template. * sem_prag.adb: (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be appplied to an unchecked conversion of a formal parameter. * sem_warn.adb: (Output_Unreferenced_Messages): Suppress "not read" warnings on imported variables. 2003-12-03 Olivier Hainque <hainque@act-europe.fr> * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New routines. The second one is new functionality to deal with backtracing through signal handlers. (unwind): Split into the two separate subroutines above. Update the documentation, and deal properly with sizeof (REG) different from sizeof (void*). From-SVN: r74226
2003-11-27[multiple changes]Arnaud Charlet1-17/+61
2003-11-26 Thomas Quinot <quinot@act-europe.fr> * g-socket.ads, g-socket.adb: Clarify documentation of function Stream. Introduce a Free procedure to release the returned Stream once it becomes unused. * 5asystem.ads: For Alpha Tru64, enable ZCX by default. 2003-11-26 Arnaud Charlet <charlet@act-europe.fr> (Cond_Timed_Wait): Introduce new constant Time_Out_Max, since NT 4 cannot handle timeout values that are too large, e.g. DWORD'Last - 1. 2003-11-26 Ed Schonberg <schonberg@gnat.com> * exp_ch4.adb: (Expand_N_Slice): Recognize all cases of slices that appear as actuals in procedure calls and whose expansion must be deferred. * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix is in exp_ch4. * sem_ch3.adb: (Build_Derived_Array_Type): Create operator for unconstrained type if ancestor is unconstrained. 2003-11-26 Vincent Celier <celier@gnat.com> * make.adb (Project_Object_Directory): New global variable (Change_To_Object_Directory): New procedure (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead of Change_Dir directly. Do not change working directory to object directory of main project after each compilation. (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir directly. Change to object directory of main project before binding step. (Initialize): Initialize Project_Object_Directory to No_Project * mlib-prj.adb: (Build_Library): Take into account Builder'Default_Switches ("Ada") when binding a Stand-Alone Library. * output.adb: Update Copyright notice (Write_Char): Output buffer when full 2003-11-26 Robert Dewar <dewar@gnat.com> * sem_ch13.adb: (Check_Size): Reset size if size is too small * sem_ch13.ads: (Check_Size): Fix documentation to include bit-packed array case * sem_res.adb: Implement restriction No_Direct_Boolean_Operators * s-rident.ads: Put No_Direct_Boolean_Operators in proper order * s-rident.ads: Add new restriction No_Direct_Boolean_Operators From-SVN: r73991
2003-11-24[multiple changes]Arnaud Charlet1-14/+36
2003-11-24 Jose Ruiz <ruiz@act-europe.fr> * Makefile.in: Use 5zintman.ads for VxWorks targets. This file avoid confusion between signals and interrupts. * 5zintman.ads: New File. * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and add exception signals to the set of unmasked signals. * 5ztaprop.adb: Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion between signals and interrupts. Add to Unblocked_Signal_Mask the set of signals that are in Keep_Unmasked. * 7sinmaop.adb: Adding a check to see whether the Interrupt_ID we want to unmask is in the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The reason is that the index type of the Keep_Unmasked array is not always Interrupt_ID; it may be a subtype of Interrupt_ID. 2003-11-24 Gary Dismukes <dismukes@gnat.com> * exp_util.adb: (Remove_Side_Effects): Condition constantness of object created for a an unchecked type conversion on the constantness of the expression to ensure the correct value for 'Constrained when passing components of view-converted class-wide objects. 2003-11-24 Robert Dewar <dewar@gnat.com> * par-load.adb (Load): Improve handling of misspelled and missing units Removes several cases of compilation abandoned messages * lib.adb: (Remove_Unit): New procedure * lib.ads: (Remove_Unit): New procedure * lib-load.adb: Minor reformatting 2003-11-24 Vincent Celier <celier@gnat.com> * make.adb: (Gnatmake, Initialize): Call Usage instead of Makeusg directly (Marking_Label): Label to mark processed source files. Incremented for each executable. (Gnatmake): Increase Marking_Labet for each executable (Is_Marked): Compare against marking label (Mark): Mark with marking label 2003-11-24 Jerome Guitton <guitton@act-europe.fr> * s-thread.ads: Move the declaration of the TSD for System.Threads to System.Soft_Links. Add some comments. * Makefile.in: Added target pair for s-thread.adb for cert runtime. (rts-cert): build a single relocatable object for the run-time lib. Fix perms. 2003-11-24 Vasiliy Fofanov <fofanov@act-europe.fr> * Make-lang.in: Use gnatls rather than gcc to obtain the location of GNAT RTL for crosstools build. 2003-11-24 Sergey Rybin <rybin@act-europe.fr> * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we can not use it as before (that is, as a variable) when dumping it into the tree file. Add a local variable to store the result of this function and to be used as the string to be written into the tree. * scn.adb (Initialize_Scanner): Add comments explaining the recent changes. * sinput.adb (Source_First, Source_Last): In case of Internal_Source_File, replace returning attributes of Internal_Source_Ptr (which is wrong) with returning attributes of Internal_Source. 2003-11-24 Ed Schonberg <schonberg@gnat.com> * sem_ch3.adb: (New_Concatenation_Op): Proper name for New_Binary_Operator, only used for implicit concatenation operators. Code cleanup. * sem_elab.adb: (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in task bodies that are in the scope of a Suppress pragma. (Check_A Call): Use the flag to prevent spurious elaboration checks. * sinfo.ads, sinfo.adb: New flag No_Elaboration_Check on function/procedure calls, to properly suppress checks on calls in task bodies that are within a local suppress pragma. * exp_ch4.adb: (Expand_Concatenate_Other): Use the proper integer type for the expression for the upper bound, to avoid universal_integer computations when possible. From-SVN: r73874
2003-11-21[multiple changes]Arnaud Charlet1-1/+0
2003-11-20 Jerome Guitton <guitton@act-europe.fr> * 5ztiitho.adb: Remove an unreferenced variable. 2003-11-20 Thomas Quinot <quinot@act-europe.fr> * adaint.c: For FreeBSD, use mkstemp. 2003-11-20 Arnaud Charlet <charlet@act-europe.fr> * gnatlbr.adb: Now reference Gnat_Static_Version_String. 2003-11-20 Robert Dewar <dewar@gnat.com> * bld.adb: Remove useless USE of gnatvsn * gnatchop.adb: Minor reformatting Clean up version handling to be more consistent * gnatxref.adb: Minor reformatting * gprcmd.adb: Minor reformatting Fix output of copyright to be more consistent with other tools 2003-11-20 Vincent Celier <celier@gnat.com> * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink 2003-11-20 Sergey Rybin <rybin@act-europe.fr> * atree.adb (Initialize): Add initializations for global variables used in New_Copy_Tree. * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with Internal_Source_File as the actual). Put the set of statements creating Any_Character before the set of statements creating Any_Array to have Any_Character fully initialized when it is used in creating Any_Array. * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do not call Scan in case if the actual is Internal_Source_File Add 2003 to copyright note. * sinput.adb (Source_First, Source_Last, Source_Text): Add code for processing Internal_Source_File. * types.ads: Add the constant Internal_Source_File representing the source buffer for artificial source-code-like strings created within the compiler (the definition of Source_File_Index is changed). From-SVN: r73798
2003-11-17[multiple changes]Arnaud Charlet1-2/+14
2003-11-17 Jerome Guitton <guitton@act-europe.fr> * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is already called in System.Threads. * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the environment task, as it has been moved to System.Threads.Initialization. 2003-11-17 Arnaud Charlet <charlet@act-europe.fr> * adaint.c (__gnatlib_install_locks): Only reference __gnat_install_locks on VMS, since other platforms can avoid using --enable-threads=gnat 2003-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro. * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set TYPE_PACKED_ARRAY_TYPE_P. (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P. Part of PR ada/12806 * utils.c (float_type_for_precision): Renamed from float_type_for_size. Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE. 2003-11-17 Vincent Celier <celier@gnat.com> * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted to False. Do not set exit status to Failure when Warning is True. (Gnatchop): Make errors "no compilation units found" and "no source files written" warnings only. * make.adb (Gnatmake): When using a project file, set Look_In_Primary_Dir to False. (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas and Local_Configuration_Pragmas in the project where they are declared not an extending project which might have inherited them. * osint.adb (Locate_File): If Name is already an absolute path, do not look for a directory. * par-ch10.adb (P_Compilation_Unit): If source contains no token, and -gnats (Check_Syntax) is used, issue only a warning, not an error. * prj.adb (Register_Default_Naming_Scheme): Add new component Project in objects of type Variable_Value. * prj.ads: (Variable_Value): New component Project * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source is in a project extended by Project. * prj-proc.adb (Add_Attributes): New parameter Project. Set component Project of Variable_Values to this new parameter value. (Expression): Set component Project of Variable_Values. (Process_Declarative_Items): Call Add_Attributes with parameter Project. Set the component Project in array elements. 2003-11-17 Sergey Rybin <rybin@act-europe.fr> * errout.adb: (Initialize): Add initialization for error nodes. * sem_ch12.adb (Initialize): Add missing initializations for Exchanged_Views and Hidden_Entities. 2003-11-17 Ed Schonberg <schonberg@gnat.com> * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an already instantiated tree for use in subsequent inlining. (Analyze_Associations, Instantiate_Formal_Subprogram, Instantiate_Object): improve error message for mismatch in instantiations. * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle instantiations of subprograms declared in instances. 2003-11-17 Javier Miranda <miranda@gnat.com> * sem_ch4.adb (Analyze_Allocator): Previous modification must be executed only under the Extensions_Allowed flag. 2003-11-17 Robert Dewar <dewar@gnat.com> * a-exexda.adb (Address_Image): Fix documentation to indicate leading zeroes suppressed. (Address_Image): Fix bug of returning 0x instead of 0x0 Minor reformatting (function specs). * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array (missed case of 33-63) * freeze.adb, sem_ch13.adb: Properly check size of packed bit array * s-thread.adb: Add comments for pragma Restriction * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb, sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting 2003-11-17 Ed Falis <falis@gnat.com> * s-thread.adb: Added No_Tasking restriction for this implementation. 2003-11-17 Emmanuel Briot <briot@act-europe.fr> * xref_lib.adb (Parse_Identifier_Info): Add handling of generic instanciation references in the parent type description. 2003-11-17 GNAT Script <nobody@gnat.com> * Make-lang.in: Makefile automatically updated From-SVN: r73672
2003-11-10[multiple changes]Arnaud Charlet1-2/+4
2003-11-10 Ed Falis <falis@gnat.com> * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted * 5zinit.adb: (Install_Handler): Moved back to spec (Install_Signal_Handlers): Deleted * 5zthrini.adb: Added context clause for System.Storage_Elements (Register): Only handles creation of taskVar; initialization moved to Thread_Body_Enter. (Reset_TSD): Deleted; replaced by Thread_Body_Enter Added declaration of environment task secondary stack and initialization. * s-thread.adb: Implement bodies for thread body processing * s-thread.ads: Added comment identifying supported targets for pragma Thread_Body. 2003-11-10 Pascal Obry <obry@gnat.com> * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than GNAT_MAX_PATH_LEN. * s-fileio.adb: (Open): Properly check for string length before copying into the buffer. Raises Name_Error if buffer is too small. Note that this was a potential buffer overflow. 2003-11-10 Arnaud Charlet <charlet@act-europe.fr> * bindgen.adb, comperr.adb: Code clean ups. * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function. 2003-11-10 Sergey Rybin <rybin@act-europe.fr> * gnat1drv.adb: Add call to Sem_Elim.Initialize. 2003-11-10 Vincent Celier <celier@gnat.com> * gprcmd.adb: (Gprcmd): Add new command "prefix" to get the prefix of the GNAT installation. * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler * prj.adb: (Project_Empty): Add new boolean component Virtual * prj.ads: (Virtual_Prefix): New constant string (Project_Data): New boolean component Virtual * prj-nmsc.adb (Language_Independent_Check): Adjust error message when a library project is extended by a virtual extending project. * prj-part.adb: Modifications throughout to implement extending-all project, including: (Virtual_Hash, Processed_Hash): New hash tables (Create_Virtual_Extending_Project): New procedure (Look_For_Virtual_Projects_For): New procedure * prj-proc.adb: (Process): After checking the projects, if main project is an extending-all project, set the object directory of all virtual extending project to the object directory of the main project. Adjust error message when a virtual extending project has the same object directory as an project being extended. (Recursive_Process): If name starts with the virtual prefix, set Virtual to True in the project data. * prj-tree.adb: (Default_Project_Node): Add new boolean component Extending_All (Is_Extending_All): New function (Set_Is_Extending_All): New procedure * prj-tree.ads: (Is_Extending_All): New function (Set_Is_Extending_All): New procedure (Project_Node_Record): New boolean component Extending_All * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib * vms_data.ads: Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call "gprcmd prefix" to define it. 2003-11-10 Thomas Quinot <quinot@act-europe.fr> * einfo.ads: Fix a typo and remove an extraneous word in comments. * lib-load.adb: (Create_Dummy_Package_Unit): Set the scope of the entity for the created dummy package to Standard_Standard, not to itself, to defend other parts of the front-end against encoutering a cycle in the scope chain. * sem_ch10.adb: (Analyze_With_Clause): When setting the entities for the successive N_Expanded_Names that constitute the name of a child unit, do not attempt to go further than Standard_Standard in the chain of scopes. This case arises from the placeholder units created by Create_Dummy_Package_Unit in the case of a with_clause for a nonexistent child unit. 2003-11-10 Ed Schonberg <schonberg@gnat.com> * exp_ch6.adb: (Expand_Thread_Body): Place subprogram on scope stack, so that new declarations are given the proper scope. * sem_ch13.adb: (Check_Expr_Constants): Reject an expression that contains a constant created during expansion, and that appears after the object to which the address clause applies. * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of Analyze_Iteration_Scheme, to rewrite a loop parameter specification that uses 'Range of a function call with controlled components, so that the function result can be finalized before starting the loop. * sem_ch8.adb: (Find_Selected_Component): Improve error message when prefix is an implicit dereference of an incomplete type. 2003-11-10 Robert Dewar <dewar@gnat.com> * opt.ads: New Print_Standard flag for -gnatS switch * sem_ch13.adb: Remove some additional checks for unaligned arrays * cstand.adb (Create_Standard): Print out package standard if -gnatS switch set * debug.adb: Update doc for -gnatds to discuss relationship with new -gnatS flag * sinfo.adb: Add new field Entity_Or_Associated_Node * sinfo.ads: Add new field Entity_Or_Associated_Node Update documentation for Associated_Node and Entity fields to clarify relationship and usage. * sprint.adb: (Write_Id): Properly process Associated_Node field in generic template * switch-c.adb: Recognize new -gnatS switch for printing package Standard This replaces gnatpsta * usage.adb: Add line for new -gnatS switch for printing package Standard This replaces gnatpsta From-SVN: r73423
2003-11-04re PR ada/12806 (Program_Error sinput.adb:397)Arnaud Charlet1-1/+4
* sysdep.c: Problem discovered during IA64 VMS port. [VMS] #include <unixio.h> to get proper prototypes. * adaint.c: Issues discovered/problems fixed during IA64 VMS port. [VMS] #define _POSIX_EXIT for proper semantics. [VMS] #include <unixio.h> for proper prototypes. [VMS] (fork): #define IA64 version. (__gnat_os_exit): Remove unnecessary VMS specific code. * 3vtrasym.adb: Minor reformatting Use terminology encoded/decoded name, rather than C++ specific notion of mangling (this is the terminology used throughout GNAT). * einfo.h: Regenerated * einfo.ads, einfo.adb: Add new flag Is_Thread_Body * exp_ch6.adb: (Expand_N_Subprogram_Body): Handle expansion of thread body procedure * par-prag.adb: Add dummy entry for Thread_Body pragma * rtsfind.ads: Add entries for System.Threads entities for thread body processing * sem_attr.adb: (Analyze_Pragma, Access attributes): Check these are not applied to a thread body, since this is not permitted * sem_prag.adb: Add processing for Thread_Body pragma. Minor comment fix. * sem_res.adb: (Resolve_Call): Check for incorrect attempt to call a thread body procedure with a direct call. * snames.ads, snames.adb: Add entry for Thread_Body pragma Add names associated with thread body expansion * snames.h: Add entry for Thread_Body pragma * s-thread.adb: Add entries for thread body processing These are dummy bodies so far * s-thread.ads: Add documentation on thread body handling. Add entries for thread body processing. * sem_ch10.adb: (Build_Limited_Views): Return after posting an error in case of limited with_clause on subprograms, generics, instances or generic renamings (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause on subprograms, generics, instances or generic renamings * raise.c (setup_to_install): Correct mistake in last revision; two arguments out of order. * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c, gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright notice, missed in previous change. Remove trailing blanks and other style errors introduced in previous change. * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get rid of the wrapper for a LJM type, ensuring we don't do that if the field is addressable. This avoids potential low level type view mismatches later on, for instance in a by-reference argument passing process. * decl.c (gnat_to_gnu_field): No longer check for BLKmode being aligned at byte boundary. * decl.c (components_to_record): Do not delete the empty variants from the end of the union type. * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive operation for a derived type, an explicit declaration may use a local subtype of Boolean. * make.adb (Gnatmake): Allow main sources on the command line with a library project when it is only for compilation (no binding or linking). Part of PR ada/12806: * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as tree, not integer. * decl.c: (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree, not integer. * targtyps.c, decl.c, misc.c, gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary routines to work around change in FP sizing semantics in GCC. * utils.c: (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer. * gigi.h: (enumerate_modes): New function. * Make-lang.in: (ada/misc.o): Add real.h. * misc.c: (enumerate_modes): New function. From-SVN: r73250
2003-10-293vtrasym.adb, [...]: Minor reformattingArnaud Charlet1-3/+5
* 3vtrasym.adb, 5vtraent.ads, sprint.adb, sem_ch10.adb: Minor reformatting * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands (Expand_Assign_Record): Test right hand side for bit unaligned as well * 3vtrasym.adb: * 5vtraent.adb: * 5vtraent.ads: * tb-alvms.c: Support for TBK$SYMBOLIZE-based symbolic traceback. * exp_disp.adb: Revert previous change, that did not work well when pragma No_Run_Time was used in conjunction with a run-time other than ZFP. * make.adb: (Gnatmake): When there are no Ada mains in attribute Main, disable the bind and link steps only is switch -z is not used. * Makefile.generic: Remove duplicated setting of CC. * Makefile.prolog: Set CC to gcc by default, to override make's default (cc). * einfo.h: Regenerated. * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for current body, after compiling subunit. * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype when in deleted code, because gigi needs properly ordered freeze actions to annotate types. * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to prevent the premature freezing of record type that contains subcomponents with a private type that does not yet have a completion. * sem_ch12.adb: (Analyze_Package_Instantiation): Check that instances can not be used in limited with_clauses. * sem_ch8.adb: (Analyze_Package_Renaming): Check that limited withed packages cannot be renamed. Improve text on error messages related to limited with_clauses. * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute. * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses. Update copyright notice. * sem_ch10.adb: (Build_Limited_Views): Complete its documentation. (Install_Limited_Context_Clauses): New subprogram that isolates all the checks required for limited context_clauses and installs the limited view. (Install_Limited_Withed_Unit): Complete its documentation. (Analyze_Context): Check that limited with_clauses are only allowed in package specs. (Install_Context): Call Install_Limited_Context_Clauses after the parents have been installed. (Install_Limited_Withed_Unit): Add documentation. Mark the installed package as 'From_With_Type'; this mark indicates that the limited view is installed. Used to check bad usages of limited with_clauses. (Build_Limited_Views): Do not add shadow entities to the scope's list of entities. Do not add real entities to the Non_Limited_Views chain. Improve error notification. (Remove_Context_Clauses): Remove context clauses in two phases: limited views first and regular views later (to maintain the stack model). (Remove_Limited_With_Clause): If the package is analyzed then reinstall its visible entities. * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible with any type that Is_Fixed_Point_Type. * sinfo.ads: Fix documentation for Associated_Node attribute. * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when both '-gnatc' and '-gnatt' are specified. * atree.adb (Initialize): Add initialization for Node_Count (set to zero). * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value, do not consider as Pure. Part of implementation of function-at-a-time: * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt. (tree_transform): Add new argument to build_component_ref. (tree_transform, case N_Assignment_Statement): Make and return an EXPR_STMT. (tree_transform): If result IS_STMT, set flags and return it. (gnat_expand_stmt, set_lineno_from_sloc): New functions. * utils2.c (build_simple_component_ref, build_component_ref): Add new arg, NO_FOLD_P. (build_binary_op, case EQ_EXPR): Pass additional arg to it. (build_allocator): Likewise. * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert): Add new arg to build_component_ref. (maybe_unconstrained_array, unchecked_convert): Likewise. * ada-tree.def (EXPR_STMT): New code. * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros. * decl.c (gnat_to_gnu_entity, case object): Add extra arg to build_component_ref calls. * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt. * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions. (build_component_ref): Add new argument, NO_FOLD_P. From-SVN: r73032
2003-10-27re PR ada/5909 (Ada has no test suite.)Arnaud Charlet1-6/+51
* Makefile.generic: Add missing substitution on object_deps handling. PR ada/5909: * Make-lang.in (check-ada): Enable ACATS test suite. * exp_ch3.adb: (Freeze_Array_Type): We do not need an initialization routine for types derived from String or Wide_String. They should be treated the same as String and Wide_String themselves. This caused problems with the use of Initialize_Scalars. * exp_ch5.adb: (Expand_Assign_Record): Do component-wise assignment of non-byte aligned composites. This allows use of component clauses that are not byte aligned. * sem_prag.adb: (Analyze_Pragma, case Pack): Generate warning and ignore pack if there is an attempt to pack an array of atomic objects. * make.adb, prj-env.adb, prj-env.ads: Minor reformatting * g-dirope.adb: (Basename): Check for drive letters in a pathname only on DOS based OS. * make.adb: (Gnatmake): When unable to change dir to the object dir, display the content of the parent dir of the obj dir, to try to understand why this happens. * Make-lang.in: Makefile automatically updated * sem_ch12.adb: (Inline_Instance_Body): Indicate that the save/restore of use_clauses should not be done in Save/Restore_Scope_Stack, because it is performed locally. * sem_ch8.adb: (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate whether use clauses should be removed/restored. * sem_ch8.ads: (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate whether use clauses should be removed/restored. From-SVN: r72983
2003-10-24re PR ada/12014 (strcpy used with overlapping arguments)Arnaud Charlet1-6/+317
* adadecode.c (ostrcpy): New function. (__gnat_decode): Use ostrcpy of strcpy. (has_prefix): Set first parameter a const. (has_suffix): Set first parameter a const. Update copyright notice. Fix source name in header. Removes a trailing space. PR ada/12014. * exp_disp.adb: Remove the test against being in No_Run_Time_Mode before generating a call to Register_Tag. It is redundant with the test against the availability of the function Register_Tag. * g-catiio.adb: (Month_Name): Correct spelling of February * make.adb: (Mains): New package (Initialize): Call Mains.Delete (Gnatmake): Check that each main on the command line is a source of a project file and, if there are several mains, each of them is a source of the same project file. (Gnatmake): When a foreign language is specified in attribute Languages, no main is specified on the command line and attribute Mains is not empty, only build the Ada main. If there is no Ada main, just compile the Ada sources and their closure. (Gnatmake): If a main is specified on the command line with directory information, check that the source exists and, if it does, that the path is the actual path of a source of a project. * prj-env.adb: (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When Full_Path is True, return the full path instead of the simple file name. (Project_Of): New function * prj-env.ads: (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path, defaulted to False. (Project_Of): New function * Makefile.generic: Ensure objects of main project are always checked and rebuilt if needed. Set CC to gcc by default. Prepare new handling of link by creating a global archive (not activated yet). * adadecode.h, atree.h, elists.h, nlists.h, raise.h, stringt.h: Update copyright notice. Remove trailing blanks. Fix source name in header. * sem_ch12.adb: Minor reformatting * sem_ch3.adb: Minor reformatting (including new function return style throughout) * sem_ch3.ads: Minor reformatting (including new function return style throughout) * Make-lang.in: Makefile automatically updated From-SVN: r72893