190dca01eac542464c29011d239bf18f26e0b8f00machenbach@chromium.org// RUN: %clang_cc1 -fsyntax-only -std=c++98 -verify %s
23484964a86451e86dcf04be9bd8c0d76ee04f081rossberg@chromium.orgtemplate<typename T> struct X;
33484964a86451e86dcf04be9bd8c0d76ee04f081rossberg@chromium.orgtemplate<int I> struct Y;
490dca01eac542464c29011d239bf18f26e0b8f00machenbach@chromium.org
5ea9b8ba58955b7efcc3e1550dd33a44fb4530136hpayer@chromium.orgX<X<int> > *x1;
6ea9b8ba58955b7efcc3e1550dd33a44fb4530136hpayer@chromium.orgX<X<int>> *x2; // expected-error{{a space is required between consecutive right angle brackets (use '> >')}}
790dca01eac542464c29011d239bf18f26e0b8f00machenbach@chromium.org
8ea9b8ba58955b7efcc3e1550dd33a44fb4530136hpayer@chromium.orgX<X<X<X<int>> // expected-error{{a space is required between consecutive right angle brackets (use '> >')}}
9ea9b8ba58955b7efcc3e1550dd33a44fb4530136hpayer@chromium.org    >> *x3;   // expected-error{{a space is required between consecutive right angle brackets (use '> >')}}
10196eb601290dc49c3754da728dc58700dff2de1bmachenbach@chromium.org
115de0074a922429f5e0ec2cf140c2d2989bf88140yangguo@chromium.orgY<(1 >> 2)> *y1;
125de0074a922429f5e0ec2cf140c2d2989bf88140yangguo@chromium.orgY<1 >> 2> *y2; // expected-warning{{use of right-shift operator ('>>') in template argument will require parentheses in C++11}}
1390dca01eac542464c29011d239bf18f26e0b8f00machenbach@chromium.org