OSDN Git Service

* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Put
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 25 Apr 2009 10:38:24 +0000 (10:38 +0000)
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 25 Apr 2009 10:38:24 +0000 (10:38 +0000)
back kludge.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146766 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/ChangeLog
gcc/ada/gcc-interface/decl.c

index e76ea9d..46ae18a 100644 (file)
@@ -1,3 +1,8 @@
+2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Put
+       back kludge.
+
 2009-04-24  Robert Dewar  <dewar@adacore.com>
 
        * mlib-prj.adb, prj-env.adb, prj-nmsc.adb, prj-proc.adb, make.adb,
index 94f14bf..d55d56b 100644 (file)
@@ -2546,9 +2546,14 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
                                     | (TYPE_QUAL_VOLATILE
                                        * Treat_As_Volatile (gnat_entity))));
 
+         /* Make it artificial only if the base type was artificial as well.
+            That's sort of "morally" true and will make it possible for the
+            debugger to look it up by name in DWARF, which is necessary in
+            order to decode the packed array type.  */
          gnu_decl
            = create_type_decl (gnu_entity_name, gnu_type, attr_list,
-                               !Comes_From_Source (gnat_entity),
+                               !Comes_From_Source (gnat_entity)
+                               && !Comes_From_Source (Etype (gnat_entity)),
                                debug_info_p, gnat_entity);
 
          /* Save it as our equivalent in case the call below elaborates