1 // RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s -Wno-unused
2 // RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s -Wno-unused -fms-compatibility -DMSVC
6 typedef int BASE_VALUE
;
11 template <typename BASE_CLASS
>
14 // expected-warning@+4 {{missing 'typename' prior to dependent type name 'BASE_CLASS::BASE_VALUE'}}
16 // expected-error@+2 {{expected expression}}
18 return g((BASE_CLASS::BASE_VALUE
&)rValue
);
26 } // namespace PR8446_1
30 struct site_symmetry_ops
{};
35 void def(A1
const &a1
) {}
38 template <class A1
, class A2
>
43 struct special_position_site_parameter
{
44 typedef char scatterer_type
;
48 struct valued_asu_parameter_heir_wrapper
{
49 static class_
<wt
> wrap(char const *name
) {
55 struct special_position_wrapper
{
56 static void wrap(char const *name
) {
57 valued_asu_parameter_heir_wrapper
<wt
>::wrap(name
)
59 // expected-warning@+4 {{missing 'typename' prior to dependent type name 'wt::scatterer_type'}}
61 // expected-error@+2 {{expected expression}}
63 .def(init
<site_symmetry_ops
const &, wt::scatterer_type
*>());
67 void wrap_special_position() {
68 special_position_wrapper
<special_position_site_parameter
>::wrap("special_position_site_parameter");
70 } // namespace PR8446_2
76 return g((T::InnerName
& x
) & x
);
81 return g((T::InnerName
& 3) & x
);
86 return g((T::InnerName
& (3)));
91 return g((T::InnerName
* 3) & x
);
94 static const int InnerName
= 42;
102 } // namespace PR8446_3