aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2009-04-07 07:36:31 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2009-04-07 07:36:31 +0000
commitaa1aa786c994d730eb461c0661e07647f4f2c0f3 (patch)
tree3db9d936a0d84c2f02c01a95aa9519472f816376 /gcc/testsuite
parent3afadac3ca557d83ad115178a631aeb60659b0c5 (diff)
downloadgcc-aa1aa786c994d730eb461c0661e07647f4f2c0f3.zip
gcc-aa1aa786c994d730eb461c0661e07647f4f2c0f3.tar.gz
gcc-aa1aa786c994d730eb461c0661e07647f4f2c0f3.tar.bz2
trans.c (check_for_eliminated_entity): New function.
* gcc-interface/trans.c (check_for_eliminated_entity): New function. (Attribute_to_gnu): Invoke it for Access- and Address-like attributes. (call_to_gnu): Invoke it instead of manually checking. From-SVN: r145652
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gnat.dg/subp_elim_errors.adb32
-rw-r--r--gcc/testsuite/gnat.dg/subp_elim_errors.ads7
3 files changed, 43 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 41488df..8842321 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2009-04-07 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/subp_elim_errors.ad[sb]: New test.
+
2009-04-07 Janus Weil <janus@gcc.gnu.org>
PR fortran/38920
diff --git a/gcc/testsuite/gnat.dg/subp_elim_errors.adb b/gcc/testsuite/gnat.dg/subp_elim_errors.adb
new file mode 100644
index 0000000..669e877
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/subp_elim_errors.adb
@@ -0,0 +1,32 @@
+-- [ dg-do compile }
+
+with System;
+
+package body Subp_Elim_Errors is
+
+ type Acc_Proc is access procedure;
+
+ procedure Proc is
+ begin
+ null;
+ end Proc;
+
+ procedure Pass_Proc (P : Acc_Proc) is
+ begin
+ P.all;
+ end Pass_Proc;
+
+ procedure Pass_Proc (P : System.Address) is
+ begin
+ null;
+ end Pass_Proc;
+
+begin
+ Proc; -- { dg-error "eliminated" }
+
+ Pass_Proc (Proc'Access); -- { dg-error "eliminated" }
+
+ Pass_Proc (Proc'Address); -- { dg-error "eliminated" }
+
+ Pass_Proc (Proc'Code_Address); -- { dg-error "eliminated" }
+end Subp_Elim_Errors;
diff --git a/gcc/testsuite/gnat.dg/subp_elim_errors.ads b/gcc/testsuite/gnat.dg/subp_elim_errors.ads
new file mode 100644
index 0000000..d42f1b2
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/subp_elim_errors.ads
@@ -0,0 +1,7 @@
+pragma Eliminate (Subp_Elim_Errors, Proc);
+
+package Subp_Elim_Errors is
+
+ procedure Proc;
+
+end Subp_Elim_Errors;