| // RUN: %clang_cc1 -fsyntax-only -verify -std=c++20 %s |
| |
| namespace GH49093 { |
| class B { |
| public: |
| static int a() { return 0; } // expected-note {{declared as a non-template here}} |
| decltype(a< 0 >(0)) test; // expected-error {{'a' does not refer to a template}} |
| }; |
| |
| struct C { |
| static int a() { return 0; } // expected-note {{declared as a non-template here}} |
| decltype(a < 0 > (0)) test; // expected-error {{'a' does not refer to a template}} |
| }; |
| |
| void test_is_bool(bool t) {} |
| void test_is_bool(int t) {} |
| |
| int main() { |
| B b; |
| test_is_bool(b.test); |
| |
| C c; |
| test_is_bool(c.test); |
| } |
| } |
| |
| namespace GH107047 { |
| struct A { |
| static constexpr auto test() { return 1; } // expected-note {{declared as a non-template here}} |
| static constexpr int s = test< 1 >(); // expected-error {{'test' does not refer to a template}} |
| }; |
| } |