11f3810623fc7adbff149585a49a3f174dafdea81Douglas Gregor// RUN: %clang_cc1 -std=c++98 -fsyntax-only -verify %s
21f3810623fc7adbff149585a49a3f174dafdea81Douglas Gregor
3b3df1386680b3830d2f4d300d4d7eaba134135fcDouglas Gregorinline namespace N { // expected-warning{{inline namespaces are a C++11 feature}}
41f3810623fc7adbff149585a49a3f174dafdea81Douglas Gregorstruct X {
5b3df1386680b3830d2f4d300d4d7eaba134135fcDouglas Gregor  template<typename ...Args> // expected-warning{{variadic templates are a C++11 extension}}
6b3df1386680b3830d2f4d300d4d7eaba134135fcDouglas Gregor  void f(Args &&...) &; // expected-warning{{rvalue references are a C++11 extension}} \
7b3df1386680b3830d2f4d300d4d7eaba134135fcDouglas Gregor  // expected-warning{{reference qualifiers on functions are a C++11 extension}}
81f3810623fc7adbff149585a49a3f174dafdea81Douglas Gregor};
91f3810623fc7adbff149585a49a3f174dafdea81Douglas Gregor}
101f3810623fc7adbff149585a49a3f174dafdea81Douglas Gregor
11d60feeb90a4278dfb875fece6587e4c5c1198a60Richard Smithstruct B {
12d60feeb90a4278dfb875fece6587e4c5c1198a60Richard Smith  virtual void f();
13d60feeb90a4278dfb875fece6587e4c5c1198a60Richard Smith  virtual void g();
14d60feeb90a4278dfb875fece6587e4c5c1198a60Richard Smith};
15d7c56e1114bfe7d461786903bb720d2c6efc05a1Richard Smithstruct D final : B { // expected-warning {{'final' keyword is a C++11 extension}}
16d7c56e1114bfe7d461786903bb720d2c6efc05a1Richard Smith  virtual void f() override; // expected-warning {{'override' keyword is a C++11 extension}}
17d7c56e1114bfe7d461786903bb720d2c6efc05a1Richard Smith  virtual void g() final; // expected-warning {{'final' keyword is a C++11 extension}}
18d60feeb90a4278dfb875fece6587e4c5c1198a60Richard Smith};
1995fa252f180296c911d855660dcafd6bfee22180Richard Smith
2095fa252f180296c911d855660dcafd6bfee22180Richard Smithvoid NewBracedInitList() {
2195fa252f180296c911d855660dcafd6bfee22180Richard Smith  // A warning on this would be sufficient once we can handle it correctly.
2295fa252f180296c911d855660dcafd6bfee22180Richard Smith  new int {}; // expected-error {{}}
2395fa252f180296c911d855660dcafd6bfee22180Richard Smith}
24