[llvm-commits] [dragonegg] r97398 - /dragonegg/trunk/llvm-debug.cpp

Duncan Sands baldrick at free.fr
Sun Feb 28 05:37:52 PST 2010


Author: baldrick
Date: Sun Feb 28 07:37:51 2010
New Revision: 97398

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

Modified:
    dragonegg/trunk/llvm-debug.cpp

Modified: dragonegg/trunk/llvm-debug.cpp
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/llvm-debug.cpp?rev=97398&r1=97397&r2=97398&view=diff
==============================================================================
--- dragonegg/trunk/llvm-debug.cpp (original)
+++ dragonegg/trunk/llvm-debug.cpp Sun Feb 28 07:37:51 2010
@@ -650,15 +650,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;
   
@@ -671,7 +674,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