diff options
author | Vincent Celier <celier@adacore.com> | 2006-10-31 19:13:55 +0100 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2006-10-31 19:13:55 +0100 |
commit | 7440d86c98ffaef74b1f49beed9f64694cb39e7a (patch) | |
tree | 6f1cf3ee74923678377597d02b56500fcb245bab /gcc/ada/symbols-processing-vms-alpha.adb | |
parent | c5e2b716b093bd113675d3fe13af6a3765a0e4fe (diff) | |
download | gcc-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.adb | 55 |
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 |