[llvm-commits] [llvm-gcc-4.2] r96656 - /llvm-gcc-4.2/trunk/gcc/llvm-debug.cpp

Devang Patel dpatel at apple.com
Thu Feb 18 18:58:05 PST 2010


Author: dpatel
Date: Thu Feb 18 20:58:05 2010
New Revision: 96656

URL: http://llvm.org/viewvc/llvm-project?rev=96656&view=rev
Log:
Fix debug info for vectors.
Test is at test/FrontendC/2010-02-18-Dbg-VectorType.c

Modified:
    llvm-gcc-4.2/trunk/gcc/llvm-debug.cpp

Modified: llvm-gcc-4.2/trunk/gcc/llvm-debug.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-debug.cpp?rev=96656&r1=96655&r2=96656&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-debug.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-debug.cpp Thu Feb 18 20:58:05 2010
@@ -735,15 +735,18 @@
 DIType DebugInfo::createArrayType(tree type) {
 
   // type[n][m]...[p]
-  if (TYPE_STRING_FLAG(type) && TREE_CODE(TREE_TYPE(type)) == INTEGER_TYPE){
+  if (TREE_CODE (type) == ARRAY_TYPE
+      && TYPE_STRING_FLAG(type) && TREE_CODE(TREE_TYPE(type)) == INTEGER_TYPE){
     DEBUGASSERT(0 && "Don't support pascal strings");
     return DIType();
   }
   
   unsigned Tag = 0;
   
-  if (TREE_CODE(type) == VECTOR_TYPE) 
+  if (TREE_CODE(type) == VECTOR_TYPE) {
     Tag = DW_TAG_vector_type;
+    type = TREE_TYPE (TYPE_FIELDS (TYPE_DEBUG_REPRESENTATION_TYPE (type)));
+  }
   else
     Tag = DW_TAG_array_type;
   
@@ -756,7 +759,8 @@
   // type.
   tree atype = type;
   tree EltTy = TREE_TYPE(atype);
-  for (; TREE_CODE(atype) == ARRAY_TYPE; atype = TREE_TYPE(atype)) {
+  for (; TREE_CODE(atype) == ARRAY_TYPE; 
+       atype = TREE_TYPE(atype)) {
     tree Domain = TYPE_DOMAIN(atype);
     if (Domain) {
       // FIXME - handle dynamic ranges





More information about the llvm-commits mailing list