recovery.cpp revision 37ec8d589c5de34d0e260f0599395519bd7498de
1a0d5878b7e1c54551c0445354788e4259900c03cDavid Tweed// RUN: %clang_cc1 -verify -std=c++11 %s
2994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith
3994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith8gi///===--- recovery.cpp ---===// // expected-error {{unqualified-id}}
4994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smithnamespace Std { // expected-note {{here}}
5994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith  typedef int Important;
6994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith}
7994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith
8994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith/ redeclare as an inline namespace // expected-error {{unqualified-id}}
9994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smithinline namespace Std { // expected-error {{cannot be reopened as inline}}
10994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith  Important n;
11994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith} / end namespace Std // expected-error {{unqualified-id}}
12994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smithint x;
13994d73f8473cb2cd3ce2f69c9575c95015be788aRichard SmithStd::Important y;
14994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith
1550dc12ad05d4a3a57e83852756498afce4307a77Kaelyn Uhrainextenr "C" { // expected-error {{did you mean the keyword 'extern'}}
16994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith  void f();
17994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith}
18994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smithvoid g() {
19994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith  z = 1; // expected-error {{undeclared}}
2050dc12ad05d4a3a57e83852756498afce4307a77Kaelyn Uhrain  f();
21994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith}
22994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith
23994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smithstruct S {
24994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith  int a, b, c;
25994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith  S();
2653aec2a2770afc242c70fd88975cd0ea389087c0Richard Smith  int x // expected-error {{expected ';'}}
2753aec2a2770afc242c70fd88975cd0ea389087c0Richard Smith  friend void f()
28994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith};
29994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith8S::S() : a{ 5 }, b{ 6 }, c{ 2 } { // expected-error {{unqualified-id}}
30994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith  return;
31994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith}
32994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smithint k;
3353aec2a2770afc242c70fd88975cd0ea389087c0Richard Smithint l = k // expected-error {{expected ';'}}
3453aec2a2770afc242c70fd88975cd0ea389087c0Richard Smithconstexpr int foo();
35994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith
36994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith5int m = { l }, n = m; // expected-error {{unqualified-id}}
37994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith
38994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smithnamespace N {
39994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith  int
40994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith} // expected-error {{unqualified-id}}
41994d73f8473cb2cd3ce2f69c9575c95015be788aRichard Smith
4250dc12ad05d4a3a57e83852756498afce4307a77Kaelyn Uhrainstrcut Uuuu { // expected-error {{did you mean the keyword 'struct'}} \
4350dc12ad05d4a3a57e83852756498afce4307a77Kaelyn Uhrain              // expected-note {{'Uuuu' declared here}}
4450dc12ad05d4a3a57e83852756498afce4307a77Kaelyn Uhrain} *u[3];
4550dc12ad05d4a3a57e83852756498afce4307a77Kaelyn Uhrainuuuu v; // expected-error {{did you mean 'Uuuu'}}
4637ec8d589c5de34d0e260f0599395519bd7498deRichard Smith
4737ec8d589c5de34d0e260f0599395519bd7498deRichard Smithstruct Redefined { // expected-note {{previous}}
4837ec8d589c5de34d0e260f0599395519bd7498deRichard Smith  Redefined() {}
4937ec8d589c5de34d0e260f0599395519bd7498deRichard Smith};
5037ec8d589c5de34d0e260f0599395519bd7498deRichard Smithstruct Redefined { // expected-error {{redefinition}}
5137ec8d589c5de34d0e260f0599395519bd7498deRichard Smith  Redefined() {}
5237ec8d589c5de34d0e260f0599395519bd7498deRichard Smith};
53