aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorGary Dismukes <dismukes@adacore.com>2014-01-24 15:15:04 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2014-01-24 16:15:04 +0100
commite6d5d9405e8eb8bf5dd093a30bc2b6f00085c9b2 (patch)
tree857f1d9f2d3c0c7ac4cc950c286d918c5ee36264 /gcc
parentab986406d5de916252f13068d3ea5402e8b27461 (diff)
downloadgcc-e6d5d9405e8eb8bf5dd093a30bc2b6f00085c9b2.zip
gcc-e6d5d9405e8eb8bf5dd093a30bc2b6f00085c9b2.tar.gz
gcc-e6d5d9405e8eb8bf5dd093a30bc2b6f00085c9b2.tar.bz2
exp_disp.adb (Expand_Dispatching_Call): Call Unqualify on Param when comparing it with Ctrl_Arg...
2014-01-24 Gary Dismukes <dismukes@adacore.com> * exp_disp.adb (Expand_Dispatching_Call): Call Unqualify on Param when comparing it with Ctrl_Arg, since Ctrl_Arg may have had qualification stripped off. From-SVN: r207043
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog6
-rw-r--r--gcc/ada/exp_disp.adb9
2 files changed, 11 insertions, 4 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 576d306..084fb96 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,9 @@
+2014-01-24 Gary Dismukes <dismukes@adacore.com>
+
+ * exp_disp.adb (Expand_Dispatching_Call): Call Unqualify on Param when
+ comparing it with Ctrl_Arg, since Ctrl_Arg may have had qualification
+ stripped off.
+
2014-01-24 Robert Dewar <dewar@adacore.com>
* sinfo.ads, make.adb, prj-env.adb: Minor reformatting.
diff --git a/gcc/ada/exp_disp.adb b/gcc/ada/exp_disp.adb
index b4c56ac..1f84738 100644
--- a/gcc/ada/exp_disp.adb
+++ b/gcc/ada/exp_disp.adb
@@ -777,11 +777,12 @@ package body Exp_Disp is
Param := First_Actual (Call_Node);
while Present (Param) loop
- -- Cases in which we may have generated runtime checks
- if Param = Ctrl_Arg
- or else Subp = Eq_Prim_Op
- then
+ -- Cases in which we may have generated run-time checks. Note that
+ -- we strip any qualification from Param before comparing with the
+ -- already-stripped controlling argument.
+
+ if Unqualify (Param) = Ctrl_Arg or else Subp = Eq_Prim_Op then
Append_To (New_Params,
Duplicate_Subexpr_Move_Checks (Param));