diff options
Diffstat (limited to 'gcc/testsuite/gnat.dg/noreturn3.adb')
-rw-r--r-- | gcc/testsuite/gnat.dg/noreturn3.adb | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/noreturn3.adb b/gcc/testsuite/gnat.dg/noreturn3.adb new file mode 100644 index 00000000000..4457373c308 --- /dev/null +++ b/gcc/testsuite/gnat.dg/noreturn3.adb @@ -0,0 +1,27 @@ +-- { dg-do compile } + +with Ada.Exceptions; + +package body Noreturn3 is + + procedure Raise_Error (E : Enum; ErrorMessage : String) is + + function Msg return String is + begin + return "Error :" & ErrorMessage; + end; + + begin + case E is + when One => + Ada.Exceptions.Raise_Exception (Exc1'Identity, Msg); + + when Two => + Ada.Exceptions.Raise_Exception (Exc2'Identity, Msg); + + when others => + Ada.Exceptions.Raise_Exception (Exc3'Identity, Msg); + end case; + end; + +end Noreturn3; |