xref: /aosp_15_r20/external/clang/test/SemaTemplate/instantiate-invalid.cpp (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: not %clang_cc1 -fsyntax-only %s
2*67e74705SXin Li namespace PR6375 {
3*67e74705SXin Li   template<class Conv> class rasterizer_sl_clip Conv::xi(x2), Conv::yi(y2));
4*67e74705SXin Li namespace agg
5*67e74705SXin Li {
6*67e74705SXin Li 	template<class Clip=rasterizer_sl_clip_int> class rasterizer_scanline_aa
7*67e74705SXin Li 	{
sweep_scanline(Scanline & sl)8*67e74705SXin Li 		template<class Scanline> bool sweep_scanline(Scanline& sl)
9*67e74705SXin Li 		{
10*67e74705SXin Li 			unsigned num_cells = m_outline.scanline_num_cells(m_scan_y);
11*67e74705SXin Li 			while(num_cells) { }
12*67e74705SXin Li 		}
13*67e74705SXin Li 	}
14*67e74705SXin Li     class scanline_u8 {}
15*67e74705SXin Li     template<class PixelFormat> class renderer_base { }
16*67e74705SXin Li }
17*67e74705SXin Li     template<class Rasterizer, class Scanline, class BaseRenderer, class ColorT>
18*67e74705SXin Li     void render_scanlines_aa_solid(Rasterizer& ras, Scanline& sl, BaseRenderer& ren, const ColorT& color)
19*67e74705SXin Li     {
20*67e74705SXin Li             while(ras.sweep_scanline(sl))
21*67e74705SXin Li             {
22*67e74705SXin Li         }
23*67e74705SXin Li     };
24*67e74705SXin Li namespace agg
25*67e74705SXin Li {
26*67e74705SXin Li     struct rgba8
27*67e74705SXin Li     {
28*67e74705SXin Li     };
29*67e74705SXin Li     template<class Rasterizer, class Scanline, class Renderer, class Ctrl>
30*67e74705SXin Li     void render_ctrl(Rasterizer& ras, Scanline& sl, Renderer& r, Ctrl& c)
31*67e74705SXin Li     {
32*67e74705SXin Li         unsigned i;
33*67e74705SXin Li             render_scanlines_aa_solid(ras, sl, r, c.color(i));
34*67e74705SXin Li         }
35*67e74705SXin Li     template<class ColorT> class rbox_ctrl : public rbox_ctrl_impl
36*67e74705SXin Li     {
37*67e74705SXin Li         const ColorT& color(unsigned i) const { return *m_colors[i]; }
38*67e74705SXin Li     }
39*67e74705SXin Li class the_application : public agg::platform_support
40*67e74705SXin Li {
41*67e74705SXin Li     agg::rbox_ctrl<agg::rgba8> m_polygons;
42*67e74705SXin Li     virtual void on_init()
43*67e74705SXin Li     {
44*67e74705SXin Li         typedef agg::renderer_base<pixfmt_type> base_ren_type;
45*67e74705SXin Li         base_ren_type ren_base(pf);
46*67e74705SXin Li         agg::scanline_u8 sl;
47*67e74705SXin Li         agg::rasterizer_scanline_aa<> ras;
48*67e74705SXin Li         agg::render_ctrl(ras, sl, ren_base, m_polygons);
49*67e74705SXin Li     }
50*67e74705SXin Li };
51*67e74705SXin Li }
52*67e74705SXin Li }
53