Home | History | Annotate | Download | only in basic.scope.local
      1 // RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s
      2 
      3 void f() {
      4   int b;
      5   int arr[] = {1, 2, 3};
      6 
      7   if (bool b = true) // expected-note 2{{previous definition}}
      8     bool b; // expected-error {{redefinition}}
      9   else
     10     int b; // expected-error {{redefinition}}
     11   while (bool b = true) // expected-note {{previous definition}}
     12     int b; // expected-error {{redefinition}}
     13   for (int c; // expected-note 2{{previous definition}}
     14        bool c = true;) // expected-error {{redefinition}}
     15     double c; // expected-error {{redefinition}}
     16   switch (int n = 37 + 5) // expected-note {{previous definition}}
     17     int n; // expected-error {{redefinition}}
     18   for (int a : arr) // expected-note {{previous definition}}
     19     int a = 0; // expected-error {{redefinition}}
     20 
     21   if (bool b = true) { // expected-note 2{{previous definition}}
     22     int b; // expected-error {{redefinition}}
     23   } else {
     24     int b; // expected-error {{redefinition}}
     25   }
     26   while (bool b = true) { // expected-note {{previous definition}}
     27     int b; // expected-error {{redefinition}}
     28   }
     29   for (int c; // expected-note 2{{previous definition}}
     30        bool c = true;) { // expected-error {{redefinition}}
     31     double c; // expected-error {{redefinition}}
     32   }
     33   switch (int n = 37 + 5) { // expected-note {{previous definition}}
     34     int n; // expected-error {{redefinition}}
     35   }
     36   for (int &a : arr) { // expected-note {{previous definition}}
     37     int a = 0; // expected-error {{redefinition}}
     38   }
     39 
     40   if (bool b = true) {{ // expected-note {{previous definition}}
     41     bool b;
     42   }} else {
     43     int b; // expected-error {{redefinition}}
     44   }
     45   if (bool b = true) { // expected-note {{previous definition}}
     46     bool b; // expected-error {{redefinition}}
     47   } else {{
     48     int b;
     49   }}
     50   if (bool b = true) {{
     51     bool b;
     52   }} else {{
     53     int b;
     54   }}
     55   while (bool b = true) {{
     56     int b;
     57   }}
     58   for (int c; // expected-note {{previous definition}}
     59        bool c = true; ) {{ // expected-error {{redefinition}}
     60     double c;
     61   }}
     62   switch (int n = 37 + 5) {{
     63     int n;
     64   }}
     65   for (int &a : arr) {{
     66     int a = 0;
     67   }}
     68 }
     69