summaryrefslogtreecommitdiffstats
path: root/clang/lib/Serialization
diff options
context:
space:
mode:
authorMeador Inge <meadori@codesourcery.com>2012-07-01 15:57:25 +0000
committerMeador Inge <meadori@codesourcery.com>2012-07-01 15:57:25 +0000
commitcfb60909123c4e53d0eab381bb74713e2a63732c (patch)
tree207a9c27227b70f80b1a79cb394a0ba7f4f0b63d /clang/lib/Serialization
parent1b593a114e42870a7dd5cf99bd5a65577f2a953c (diff)
downloadbcm5719-llvm-cfb60909123c4e53d0eab381bb74713e2a63732c.tar.gz
bcm5719-llvm-cfb60909123c4e53d0eab381bb74713e2a63732c.zip
PR13189: va_list broken with precompiled headers
For some targets a structure named __va_list_tag is built to help define the __builtin_va_list type. However, __va_list_tag was not being treated as a predefined type thus causing problems when serializing the AST. This commit fixes that oversight by adding the necessary support to treat __va_list_tag as a predefined type. llvm-svn: 159508
Diffstat (limited to 'clang/lib/Serialization')
-rw-r--r--clang/lib/Serialization/ASTCommon.h2
-rw-r--r--clang/lib/Serialization/ASTReader.cpp3
2 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/Serialization/ASTCommon.h b/clang/lib/Serialization/ASTCommon.h
index 16db8e36952..eacb39d86ea 100644
--- a/clang/lib/Serialization/ASTCommon.h
+++ b/clang/lib/Serialization/ASTCommon.h
@@ -50,6 +50,8 @@ TypeID MakeTypeID(ASTContext &Context, QualType T, IdxForTypeTy IdxForType) {
return TypeIdx(PREDEF_TYPE_AUTO_DEDUCT).asTypeID(FastQuals);
if (T == Context.AutoRRefDeductTy)
return TypeIdx(PREDEF_TYPE_AUTO_RREF_DEDUCT).asTypeID(FastQuals);
+ if (T == Context.VaListTagTy)
+ return TypeIdx(PREDEF_TYPE_VA_LIST_TAG).asTypeID(FastQuals);
return IdxForType(T).asTypeID(FastQuals);
}
diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp
index 8b354f35576..b118685b9b4 100644
--- a/clang/lib/Serialization/ASTReader.cpp
+++ b/clang/lib/Serialization/ASTReader.cpp
@@ -4461,6 +4461,9 @@ QualType ASTReader::GetType(TypeID ID) {
T = Context.ARCUnbridgedCastTy;
break;
+ case PREDEF_TYPE_VA_LIST_TAG:
+ T = Context.getVaListTagType();
+ break;
}
assert(!T.isNull() && "Unknown predefined type");
OpenPOWER on IntegriCloud