* a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb (Local_Raise): New dummy procedure called when a raise is converted to a local goto. Used for debugger to detect that the exception is raised. * debug.adb: Document new d.g flag (expand local raise statements to gotos even if pragma Restriction (No_Exception_Propagation) is not set) * exp_sel.adb: Use Make_Implicit_Exception_Handler * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to suppress warnings for unused handlers. (Warn_If_No_Propagation): Use new flag -gnatw.x to suppress warnings for raise statements not handled locally. (Get_RT_Exception_Entity): New function (Get_Local_Call_Entity): New function (Find_Local_Handler): New function (Warn_If_No_Propagation): New procedure (Expand_At_End_Handler): Call Make_Implicit_Handler (Expand_Exception_Handlers): Major additions to deal with local handlers (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error, Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling for local raise * exp_ch11.ads (Get_RT_Exception_Entity): New function (Get_Local_Call_Entity): New function * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list of restrictions that the binder will never suggest adding. * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field to No_Elist. * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not be with'ed in the presence of pragma Restriction (No_Exception_Propagation). * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice parameter, then the handler is not a suitable target for a local raise, and this is a violation of restriction No_Exception_Propagation. (Analyze_Handled_Statements): Analyze choice parameters in exception handlers before analyzing statement sequence (needed for proper detection of local raise statements). (Analyze_Raise_Statement): Reraise statement is a violation of the No_Exception_Propagation restriction. * s-rident.ads: Add new restriction No_Exception_Propagation * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New function, like Make_Exception_Handler but sets Local_Raise_Statements to No_List. (Add_Unique_Serial_Number): Deal with case where this is called during processing of configuration pragmas. From-SVN: r123541
Name |
Last commit
|
Last update |
---|---|---|
INSTALL | Loading commit data... | |
boehm-gc | Loading commit data... | |
config | Loading commit data... | |
contrib | Loading commit data... | |
fixincludes | Loading commit data... | |
gcc | Loading commit data... | |
gnattools | Loading commit data... | |
include | Loading commit data... | |
intl | Loading commit data... | |
libada | Loading commit data... | |
libcpp | Loading commit data... | |
libdecnumber | Loading commit data... | |
libffi | Loading commit data... | |
libgcc | Loading commit data... | |
libgfortran | Loading commit data... | |
libgomp | Loading commit data... | |
libiberty | Loading commit data... | |
libjava | Loading commit data... | |
libmudflap | Loading commit data... | |
libobjc | Loading commit data... | |
libssp | Loading commit data... | |
libstdc++-v3 | Loading commit data... | |
maintainer-scripts | Loading commit data... | |
zlib | Loading commit data... | |
ABOUT-NLS | Loading commit data... | |
COPYING | Loading commit data... | |
COPYING.LIB | Loading commit data... | |
ChangeLog | Loading commit data... | |
ChangeLog.tree-ssa | Loading commit data... | |
MAINTAINERS | Loading commit data... | |
Makefile.def | Loading commit data... | |
Makefile.in | Loading commit data... | |
Makefile.tpl | Loading commit data... | |
README | Loading commit data... | |
README.SCO | Loading commit data... | |
compile | Loading commit data... | |
config-ml.in | Loading commit data... | |
config.guess | Loading commit data... | |
config.rpath | Loading commit data... | |
config.sub | Loading commit data... | |
configure | Loading commit data... | |
configure.ac | Loading commit data... | |
depcomp | Loading commit data... | |
install-sh | Loading commit data... | |
libtool-ldflags | Loading commit data... | |
libtool.m4 | Loading commit data... | |
ltcf-c.sh | Loading commit data... | |
ltcf-cxx.sh | Loading commit data... | |
ltcf-gcj.sh | Loading commit data... | |
ltconfig | Loading commit data... | |
ltmain.sh | Loading commit data... | |
missing | Loading commit data... | |
mkdep | Loading commit data... | |
mkinstalldirs | Loading commit data... | |
move-if-change | Loading commit data... | |
symlink-tree | Loading commit data... | |
ylwrap | Loading commit data... |