aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@adacore.com>2022-07-19 14:58:44 +0000
committerMarc Poulhiès <poulhies@adacore.com>2022-09-05 09:21:03 +0200
commit7449db0bf4a2c920538a7f947ccec2831802ded4 (patch)
tree05b6a441733d647142b5b20bb188f57216aff553
parenta0998ca3add191e76f151e541fc18a6d9dd5a1f0 (diff)
downloadgcc-7449db0bf4a2c920538a7f947ccec2831802ded4.zip
gcc-7449db0bf4a2c920538a7f947ccec2831802ded4.tar.gz
gcc-7449db0bf4a2c920538a7f947ccec2831802ded4.tar.bz2
[Ada] Secondary stack and i-c*
Extend the previous changes related to Ada.Tags trigerring a dependency on the secondary stack to various i-c* packages. gcc/ada/ * ali.adb (Scan_ALI): Special case i-c*.ali when setting Sec_Stack_Used.
-rw-r--r--gcc/ada/ali.adb19
1 files changed, 14 insertions, 5 deletions
diff --git a/gcc/ada/ali.adb b/gcc/ada/ali.adb
index bcc8822..3febd48 100644
--- a/gcc/ada/ali.adb
+++ b/gcc/ada/ali.adb
@@ -2079,15 +2079,24 @@ package body ALI is
-- Processing for SS
elsif C = 'S' then
- -- Special case: a-tags.ali by itself should not set
+ -- Special case: a-tags/i-c* by themselves should not set
-- Sec_Stack_Used, only if other code uses the secondary
-- stack should we set this flag. This ensures that we do
-- not bring the secondary stack unnecessarily when using
- -- Ada.Tags and not actually using the secondary stack.
+ -- one of these packages and not actually using the
+ -- secondary stack.
- if Get_Name_String (F) /= "a-tags.ali" then
- Opt.Sec_Stack_Used := True;
- end if;
+ declare
+ File : constant String := Get_Name_String (F);
+ begin
+ if File /= "a-tags.ali"
+ and then File /= "i-c.ali"
+ and then File /= "i-cstrin.ali"
+ and then File /= "i-cpoint.ali"
+ then
+ Opt.Sec_Stack_Used := True;
+ end if;
+ end;
-- Invalid switch starting with S