forked from OSchip/llvm-project
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:
parent
dbe3927026
commit
1732850158
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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);
|
|
@ -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;
|
||||
}
|
Loading…
Reference in New Issue