aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/symbols-processing-vms-alpha.adb
diff options
context:
space:
mode:
authorVincent Celier <celier@adacore.com>2006-10-31 19:13:55 +0100
committerArnaud Charlet <charlet@gcc.gnu.org>2006-10-31 19:13:55 +0100
commit7440d86c98ffaef74b1f49beed9f64694cb39e7a (patch)
tree6f1cf3ee74923678377597d02b56500fcb245bab /gcc/ada/symbols-processing-vms-alpha.adb
parentc5e2b716b093bd113675d3fe13af6a3765a0e4fe (diff)
downloadgcc-7440d86c98ffaef74b1f49beed9f64694cb39e7a.zip
gcc-7440d86c98ffaef74b1f49beed9f64694cb39e7a.tar.gz
gcc-7440d86c98ffaef74b1f49beed9f64694cb39e7a.tar.bz2
symbols-processing-vms-ia64.adb, [...] (Process): Do not include symbols that come from generic instantiations in bodies.
2006-10-31 Vincent Celier <celier@adacore.com> * symbols-processing-vms-ia64.adb, symbols-processing-vms-alpha.adb (Process): Do not include symbols that come from generic instantiations in bodies. From-SVN: r118326
Diffstat (limited to 'gcc/ada/symbols-processing-vms-alpha.adb')
-rw-r--r--gcc/ada/symbols-processing-vms-alpha.adb55
1 files changed, 37 insertions, 18 deletions
diff --git a/gcc/ada/symbols-processing-vms-alpha.adb b/gcc/ada/symbols-processing-vms-alpha.adb
index adab774..da1bf5d 100644
--- a/gcc/ada/symbols-processing-vms-alpha.adb
+++ b/gcc/ada/symbols-processing-vms-alpha.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2003-2005 Free Software Foundation, Inc. --
+-- Copyright (C) 2003-2006, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -95,6 +95,8 @@ package body Processing is
(Object_File : String;
Success : out Boolean)
is
+ OK : Boolean := True;
+
begin
-- Open the object file with Byte_IO. Return with Success = False if
-- this fails.
@@ -175,29 +177,46 @@ package body Processing is
end if;
end loop;
- -- Create the new Symbol
+ -- Check if it is a symbol from a generic body
- declare
- S_Data : Symbol_Data;
- begin
- S_Data.Name := new String'(Symbol (1 .. LSymb));
+ OK := True;
- -- The symbol kind (Data or Procedure) depends on the
- -- V_NORM flag.
+ for J in 1 .. LSymb - 2 loop
+ if Symbol (J) = 'G' and then Symbol (J + 1) = 'P'
+ and then Symbol (J + 2) in '0' .. '9'
+ then
+ OK := False;
+ exit;
+ end if;
+ end loop;
- if (Flags and V_NORM_Mask) = 0 then
- S_Data.Kind := Data;
+ if OK then
- else
- S_Data.Kind := Proc;
- end if;
+ -- Create the new Symbol
+
+ declare
+ S_Data : Symbol_Data;
+
+ begin
+ S_Data.Name := new String'(Symbol (1 .. LSymb));
+
+ -- The symbol kind (Data or Procedure) depends on the
+ -- V_NORM flag.
+
+ if (Flags and V_NORM_Mask) = 0 then
+ S_Data.Kind := Data;
+
+ else
+ S_Data.Kind := Proc;
+ end if;
- -- Put the new symbol in the table
+ -- Put the new symbol in the table
- Symbol_Table.Increment_Last (Complete_Symbols);
- Complete_Symbols.Table
- (Symbol_Table.Last (Complete_Symbols)) := S_Data;
- end;
+ Symbol_Table.Increment_Last (Complete_Symbols);
+ Complete_Symbols.Table
+ (Symbol_Table.Last (Complete_Symbols)) := S_Data;
+ end;
+ end if;
else
-- As it is not a symbol subsection, skip to the next