xref: /llvm-project/clang/test/CXX/temp/temp.param/p13.cpp (revision c6e68daac0fa6e77a89f3ca72f266a528503dd1c)
18fbe78f6SDaniel Dunbar // RUN: %clang_cc1 -fsyntax-only -verify %s
2*c6e68daaSAndy Gibbs // expected-no-diagnostics
3a5d5c749SDouglas Gregor 
4a5d5c749SDouglas Gregor // The scope of atemplate-parameterextends from its point of
5a5d5c749SDouglas Gregor // declaration until the end of its template. In particular, a
6a5d5c749SDouglas Gregor // template-parameter can be used in the declaration of subsequent
7a5d5c749SDouglas Gregor // template-parameters and their default arguments.
8a5d5c749SDouglas Gregor 
9a5d5c749SDouglas Gregor template<class T, T* p, class U = T> class X { /* ... */ };
10a5d5c749SDouglas Gregor // FIXME: template<class T> void f(T* p = new T);
11a5d5c749SDouglas Gregor 
12a5d5c749SDouglas Gregor // Check for bogus template parameter shadow warning.
13a5d5c749SDouglas Gregor template<template<class T> class,
14a5d5c749SDouglas Gregor          template<class T> class>
15a5d5c749SDouglas Gregor   class B1noshadow;
16