зеркало из https://github.com/microsoft/clang-1.git
Fix a problem with bogus template shadowing warnings
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64230 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
d684b0027e
Коммит
68c6993141
|
@ -251,9 +251,12 @@ Parser::ParseTemplateTemplateParameter(unsigned Depth, unsigned Position) {
|
|||
SourceLocation TemplateLoc = ConsumeToken();
|
||||
TemplateParameterList TemplateParams;
|
||||
SourceLocation LAngleLoc, RAngleLoc;
|
||||
if(!ParseTemplateParameters(Depth + 1, TemplateParams, LAngleLoc,
|
||||
RAngleLoc)) {
|
||||
return 0;
|
||||
{
|
||||
ParseScope TemplateParmScope(this, Scope::TemplateParamScope);
|
||||
if(!ParseTemplateParameters(Depth + 1, TemplateParams, LAngleLoc,
|
||||
RAngleLoc)) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Generate a meaningful error if the user forgot to put class before the
|
||||
|
|
|
@ -39,10 +39,10 @@ template<int N = 5, // expected-note{{previous default template argument define
|
|||
int M> // expected-error{{template parameter missing a default argument}}
|
||||
class B1n;
|
||||
|
||||
// FIXME: spurious "shadow" warning!
|
||||
//template<template<class T> class = Y1,
|
||||
// template<class T> class>
|
||||
// class B1fixme;
|
||||
// Check for bogus template parameter shadow warning.
|
||||
template<template<class T> class,
|
||||
template<class T> class>
|
||||
class B1noshadow;
|
||||
|
||||
// C++ [temp.param]p10:
|
||||
template<class T1, class T2 = int> class B2;
|
||||
|
|
Загрузка…
Ссылка в новой задаче