Fix a thinko where I didn't update a consistency check for

PackExpansionType in the AST reader. We need more testing for variadic
templates + PCH, but this fixes PR9073.

llvm-svn: 124662
This commit is contained in:
Douglas Gregor 2011-02-01 15:24:58 +00:00
parent dbe3927026
commit 1732850158
3 changed files with 30 additions and 1 deletions

View File

@ -2964,7 +2964,7 @@ QualType ASTReader::ReadTypeRecord(unsigned Index) {
}
case TYPE_PACK_EXPANSION: {
if (Record.size() != 1) {
if (Record.size() != 2) {
Error("incorrect encoding of pack expansion type");
return QualType();
}

View File

@ -0,0 +1,11 @@
// Test this without pch.
// RUN: %clang_cc1 -std=c++0x -include %S/cxx-variadic-templates.h -verify %s -ast-dump -o -
// RUN: %clang_cc1 -std=c++0x -include %S/cxx-variadic-templates.h %s -emit-llvm -o - | FileCheck %s
// Test with pch.
// RUN: %clang_cc1 -std=c++0x -x c++-header -emit-pch -o %t %S/cxx-variadic-templates.h
// RUN: %clang_cc1 -std=c++0x -include-pch %t -verify %s -ast-dump -o -
// RUN: %clang_cc1 -std=c++0x -include-pch %t %s -emit-llvm -o - | FileCheck %s
// CHECK: allocate_shared
shared_ptr<int> spi = shared_ptr<int>::allocate_shared(1, 2);

View File

@ -0,0 +1,18 @@
// PR9073
template<typename _Tp>
class shared_ptr{
public:
template<class _Alloc, class ..._Args>
static
shared_ptr<_Tp>
allocate_shared(const _Alloc& __a, _Args&& ...__args);
};
template<class _Tp>
template<class _Alloc, class ..._Args>
shared_ptr<_Tp>
shared_ptr<_Tp>::allocate_shared(const _Alloc& __a, _Args&& ...__args)
{
shared_ptr<_Tp> __r;
return __r;
}