| /* PR 2743 */ |
| /* { dg-do compile } */ |
| |
| namespace ns { |
| class Exception |
| { |
| }; |
| } |
| |
| namespace ns |
| { |
| class Test { |
| public: |
| inline Test() |
| #if __cplusplus <= 201402L |
| throw( Exception ) // { dg-warning "deprecated" "" { target { c++11 && { ! c++17 } } } } |
| #endif |
| ; |
| inline Test(int n ) |
| #if __cplusplus <= 201402L |
| throw( Exception ) // { dg-warning "deprecated" "" { target { c++11 && { ! c++17 } } } } |
| #endif |
| ; |
| private: |
| int i; |
| }; |
| } |
| |
| // This line used to fail because Exception wasn't looked up in the |
| // right scope. |
| ns::Test::Test() |
| #if __cplusplus <= 201402L |
| throw( Exception ) // { dg-warning "deprecated" "" { target { c++11 && { ! c++17 } } } } |
| #endif |
| : i( 1 ) |
| { |
| } |
| |
| ns::Test::Test( int n ) |
| #if __cplusplus <= 201402L |
| throw( Exception ) // { dg-warning "deprecated" "" { target { c++11 && { ! c++17 } } } } |
| #endif |
| : i( n ) |
| { |
| } |
| |
| int main(int argc, char* argv[]) { |
| ns::Test test; |
| } |