[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