OSDN Git Service

Fix 4 execute/va-arg-26.c gcc testsuite failures.
[pf3gnuchains/gcc-fork.git] / gcc / ada / snames.adb
index 9a1a1be..30a8070 100644 (file)
@@ -6,8 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---                                                                          --
---          Copyright (C) 1992-2002, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2004, 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- --
@@ -63,11 +62,10 @@ package body Snames is
      "off#" &
      "space#" &
      "time#" &
-     "_init_proc#" &
-     "_size#" &
      "_abort_signal#" &
-     "_address_resolver#" &
+     "_alignment#" &
      "_assign#" &
+     "_atcb#" &
      "_chain#" &
      "_clean#" &
      "_controller#" &
@@ -80,7 +78,11 @@ package body Snames is
      "_master#" &
      "_object#" &
      "_priority#" &
+     "_process_atsd#" &
+     "_secondary_stack#" &
      "_service#" &
+     "_size#" &
+     "_stack#" &
      "_tags#" &
      "_task#" &
      "_task_id#" &
@@ -92,17 +94,9 @@ package body Snames is
      "finalize#" &
      "next#" &
      "prev#" &
-     "_deep_adjust#" &
-     "_equality#" &
-     "_deep_finalize#" &
-     "_deep_initialize#" &
-     "_input#" &
-     "_output#" &
-     "_ras_access#" &
-     "_ras_dereference#" &
-     "_read#" &
-     "_rep_to_pos#" &
-     "_write#" &
+     "_typecode#" &
+     "_from_any#" &
+     "_to_any#" &
      "allocate#" &
      "deallocate#" &
      "dereference#" &
@@ -127,20 +121,33 @@ package body Snames is
      "system#" &
      "text_io#" &
      "wide_text_io#" &
+     "no_dsa#" &
+     "garlic_dsa#" &
+     "polyorb_dsa#" &
      "addr#" &
      "async#" &
      "get_active_partition_id#" &
      "get_rci_package_receiver#" &
+     "get_rci_package_ref#" &
      "origin#" &
      "params#" &
      "partition#" &
      "partition_interface#" &
      "ras#" &
+     "call#" &
      "rci_name#" &
      "receiver#" &
      "result#" &
      "rpc#" &
      "subp_id#" &
+     "operation#" &
+     "argument#" &
+     "arg_modes#" &
+     "handler#" &
+     "target#" &
+     "req#" &
+     "obj_typecode#" &
+     "stub#" &
      "Oabs#" &
      "Oand#" &
      "Omod#" &
@@ -162,37 +169,51 @@ package body Snames is
      "Oexpon#" &
      "ada_83#" &
      "ada_95#" &
+     "ada_05#" &
      "c_pass_by_copy#" &
+     "compile_time_warning#" &
      "component_alignment#" &
      "convention_identifier#" &
+     "detect_blocking#" &
      "discard_names#" &
      "elaboration_checks#" &
      "eliminate#" &
+     "explicit_overriding#" &
      "extend_system#" &
      "extensions_allowed#" &
      "external_name_casing#" &
      "float_representation#" &
      "initialize_scalars#" &
+     "interrupt_state#" &
      "license#" &
      "locking_policy#" &
      "long_float#" &
      "no_run_time#" &
+     "no_strict_aliasing#" &
      "normalize_scalars#" &
      "polling#" &
+     "persistent_data#" &
+     "persistent_object#" &
+     "profile#" &
+     "profile_warnings#" &
      "propagate_exceptions#" &
      "queuing_policy#" &
      "ravenscar#" &
      "restricted_run_time#" &
      "restrictions#" &
+     "restriction_warnings#" &
      "reviewable#" &
      "source_file_name#" &
+     "source_file_name_project#" &
      "style_checks#" &
      "suppress#" &
+     "suppress_exception_locations#" &
      "task_dispatching_policy#" &
+     "universal_data#" &
      "unsuppress#" &
      "use_vads_size#" &
-     "warnings#" &
      "validity_checks#" &
+     "warnings#" &
      "abort_defer#" &
      "all_calls_remote#" &
      "annotate#" &
@@ -219,6 +240,7 @@ package body Snames is
      "export_function#" &
      "export_object#" &
      "export_procedure#" &
+     "export_value#" &
      "export_valued_procedure#" &
      "external#" &
      "finalize_storage_only#" &
@@ -239,6 +261,7 @@ package body Snames is
      "interrupt_priority#" &
      "java_constructor#" &
      "java_interface#" &
+     "keep_names#" &
      "link_with#" &
      "linker_alias#" &
      "linker_options#" &
@@ -249,7 +272,10 @@ package body Snames is
      "main_storage#" &
      "memory_size#" &
      "no_return#" &
+     "obsolescent#" &
      "optimize#" &
+     "optional_overriding#" &
+     "overriding#" &
      "pack#" &
      "page#" &
      "passive#" &
@@ -273,11 +299,11 @@ package body Snames is
      "task_info#" &
      "task_name#" &
      "task_storage#" &
+     "thread_body#" &
      "time_slice#" &
      "title#" &
      "unchecked_union#" &
      "unimplemented_unit#" &
-     "universal_data#" &
      "unreferenced#" &
      "unreserve_all_interrupts#" &
      "volatile#" &
@@ -299,6 +325,7 @@ package body Snames is
      "win32#" &
      "as_is#" &
      "body_file_name#" &
+     "boolean_entry_barriers#" &
      "casing#" &
      "code#" &
      "component#" &
@@ -317,10 +344,11 @@ package body Snames is
      "gnat#" &
      "gpl#" &
      "ieee_float#" &
-     "homonym_number#" &
      "internal#" &
      "link_name#" &
      "lowercase#" &
+     "max_entry_queue_depth#" &
+     "max_entry_queue_length#" &
      "max_size#" &
      "mechanism#" &
      "mixedcase#" &
@@ -331,12 +359,21 @@ package body Snames is
      "on#" &
      "parameter_types#" &
      "reference#" &
+     "no_dynamic_attachment#" &
+     "no_dynamic_interrupts#" &
+     "no_requeue#" &
+     "no_requeue_statements#" &
+     "no_task_attributes#" &
+     "no_task_attributes_package#" &
      "restricted#" &
      "result_mechanism#" &
      "result_type#" &
+     "runtime#" &
      "sb#" &
+     "secondary_stack_size#" &
      "section#" &
      "semaphore#" &
+     "simple_barriers#" &
      "spec_file_name#" &
      "static#" &
      "stack_size#" &
@@ -352,6 +389,7 @@ package body Snames is
      "unknown#" &
      "unrestricted#" &
      "uppercase#" &
+     "user#" &
      "vax_float#" &
      "vms#" &
      "working_storage#" &
@@ -390,6 +428,7 @@ package body Snames is
      "first_bit#" &
      "fixed_value#" &
      "fore#" &
+     "has_access_values#" &
      "has_discriminants#" &
      "identity#" &
      "img#" &
@@ -419,6 +458,7 @@ package body Snames is
      "object_size#" &
      "partition_id#" &
      "passed_by_reference#" &
+     "pool_address#" &
      "pos#" &
      "position#" &
      "range#" &
@@ -437,12 +477,14 @@ package body Snames is
      "storage_size#" &
      "storage_unit#" &
      "tag#" &
+     "target_name#" &
      "terminated#" &
      "to_address#" &
      "type_class#" &
      "uet_address#" &
      "unbiased_rounding#" &
      "unchecked_access#" &
+     "unconstrained_array#" &
      "universal_literal_string#" &
      "unrestricted_access#" &
      "vads_size#" &
@@ -576,6 +618,7 @@ package body Snames is
      "source_location#" &
      "unchecked_conversion#" &
      "unchecked_deallocation#" &
+     "to_pointer#" &
      "abstract#" &
      "aliased#" &
      "protected#" &
@@ -584,13 +627,17 @@ package body Snames is
      "tagged#" &
      "raise_exception#" &
      "binder#" &
+     "body_suffix#" &
      "builder#" &
      "compiler#" &
      "cross_reference#" &
      "default_switches#" &
      "exec_dir#" &
+     "executable#" &
+     "executable_suffix#" &
      "extends#" &
      "finder#" &
+     "global_configuration_pragmas#" &
      "gnatls#" &
      "gnatstub#" &
      "implementation#" &
@@ -598,22 +645,36 @@ package body Snames is
      "implementation_suffix#" &
      "languages#" &
      "library_dir#" &
-     "library_elaboration#" &
+     "library_auto_init#" &
+     "library_gcc#" &
+     "library_interface#" &
      "library_kind#" &
      "library_name#" &
+     "library_options#" &
+     "library_reference_symbol_file#" &
+     "library_src_dir#" &
+     "library_symbol_file#" &
+     "library_symbol_policy#" &
      "library_version#" &
      "linker#" &
+     "local_configuration_pragmas#" &
+     "locally_removed_files#" &
+     "metrics#" &
      "naming#" &
      "object_dir#" &
+     "pretty_printer#" &
      "project#" &
      "separate_suffix#" &
      "source_dirs#" &
      "source_files#" &
      "source_list_file#" &
+     "spec#" &
+     "spec_suffix#" &
      "specification#" &
      "specification_exceptions#" &
      "specification_suffix#" &
      "switches#" &
+     "unaligned_valid#" &
       "#";
 
    ---------------------
@@ -639,7 +700,6 @@ package body Snames is
    --    xxxE    dispatch table pointer type for tagged type xxx    (Exp_Ch3)
    --    xxxE    parameters for accept body for entry xxx           (Exp_Ch9)
    --    xxxFn   n'th primitive of a tagged type (named xxx)        (Exp_Ch3)
-   --    xxxI    initialization procedure for type xxx              (Exp_Ch3)
    --    xxxJ    tag table type index for tagged type xxx           (Exp_Ch3)
    --    xxxM    master Id value for access type xxx                (Exp_Ch3)
    --    xxxP    tag table pointer type for tagged type xxx         (Exp_Ch3)
@@ -654,6 +714,22 @@ package body Snames is
    --    xxxY    dispatch table type for tagged type xxx            (Exp_Ch3)
    --    xxxZ    size variable for task xxx                         (Exp_Ch9)
 
+   --  TSS names
+
+   --    xxxDA   deep adjust routine for type xxx                   (Exp_TSS)
+   --    xxxDF   deep finalize routine for type xxx                 (Exp_TSS)
+   --    xxxDI   deep initialize routine for type xxx               (Exp_TSS)
+   --    xxxEQ   composite equality routine for record type xxx     (Exp_TSS)
+   --    xxxIP   initialization procedure for type xxx              (Exp_TSS)
+   --    xxxRA   RAs type access routine for type xxx               (Exp_TSS)
+   --    xxxRD   RAs type dereference routine for type xxx          (Exp_TSS)
+   --    xxxRP   Rep to Pos conversion for enumeration type xxx     (Exp_TSS)
+   --    xxxSA   array/slice assignment for controlled comp. arrays (Exp_TSS)
+   --    xxxSI   stream input attribute subprogram for type xxx     (Exp_TSS)
+   --    xxxSO   stream output attribute subprogram for type xxx    (Exp_TSS)
+   --    xxxSR   stream read attribute subprogram for type xxx      (Exp_TSS)
+   --    xxxSW   stream write attribute subprogram for type xxx     (Exp_TSS)
+
    --  Implicit type names
 
    --    TxxxT   type of literal table for enumeration type xxx     (Sem_Ch3)
@@ -696,6 +772,9 @@ package body Snames is
          when Name_Stdcall    => return Convention_Stdcall;
          when Name_Stubbed    => return Convention_Stubbed;
 
+         --  If no direct match, then we must have a convention
+         --  identifier pragma that has specified this name.
+
          when others          =>
             for J in 1 .. Convention_Identifiers.Last loop
                if N = Convention_Identifiers.Table (J).Name then
@@ -728,6 +807,8 @@ package body Snames is
          return Pragma_Storage_Size;
       elsif N = Name_Storage_Unit then
          return Pragma_Storage_Unit;
+      elsif N not in First_Pragma_Name .. Last_Pragma_Name then
+         return Unknown_Pragma;
       else
          return Pragma_Id'Val (N - First_Pragma_Name);
       end if;
@@ -828,11 +909,15 @@ package body Snames is
 
    function Is_Convention_Name (N : Name_Id) return Boolean is
    begin
+      --  Check if this is one of the standard conventions
+
       if N in First_Convention_Name .. Last_Convention_Name
         or else N = Name_C
       then
          return True;
 
+      --  Otherwise check if it is in convention identifier table
+
       else
          for J in 1 .. Convention_Identifiers.Last loop
             if N = Convention_Identifiers.Table (J).Name then