[PATCH] D138822: [clang] Add test for CWG36

2022-12-01 Thread Vlad Serebrennikov via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rGf5993fc7757e: [clang] Add test for CWG36 (authored by 
Endill).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

Files:
  clang/test/CXX/drs/dr0xx.cpp
  clang/www/cxx_dr_status.html

Index: clang/www/cxx_dr_status.html
===
--- clang/www/cxx_dr_status.html
+++ clang/www/cxx_dr_status.html
@@ -254,7 +254,7 @@
 https://wg21.link/cwg36;>36
 CD6
 using-declarations in multiple-declaration contexts
-Unknown
+Yes
   
   
 https://wg21.link/cwg37;>37
Index: clang/test/CXX/drs/dr0xx.cpp
===
--- clang/test/CXX/drs/dr0xx.cpp
+++ clang/test/CXX/drs/dr0xx.cpp
@@ -2,6 +2,8 @@
 // RUN: %clang_cc1 -std=c++11 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple
 // RUN: %clang_cc1 -std=c++14 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple
 // RUN: %clang_cc1 -std=c++17 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple
+// RUN: %clang_cc1 -std=c++20 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple
+// RUN: %clang_cc1 -std=c++2b %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple
 
 namespace dr1 { // dr1: no
   namespace X { extern "C" void dr1_f(int a = 1); }
@@ -448,6 +450,94 @@
 
 // dr34: na
 // dr35: dup 178
+
+namespace dr36 { // dr36: yes
+namespace example1 {
+  namespace A {
+int i;
+  }
+  
+  namespace A1 {
+using A::i;
+using A::i;
+  }
+  
+  void f()
+  {
+using A::i;
+using A::i;
+  }
+}
+
+namespace example2 {
+  struct A
+  {
+int i;
+static int j;
+  };
+
+  struct B : A { };
+  struct C : A { };
+
+  struct D : virtual B, virtual C
+  {
+using B::i; // expected-note {{previous using declaration}}
+using B::i; // expected-error {{redeclaration of using declaration}}
+
+using C::i; // expected-note {{previous using declaration}}
+using C::i; // expected-error {{redeclaration of using declaration}}
+
+using B::j; // expected-note {{previous using declaration}}
+using B::j; // expected-error {{redeclaration of using declaration}}
+
+using C::j; // expected-note {{previous using declaration}}
+using C::j; // expected-error {{redeclaration of using declaration}}
+  };
+}
+
+namespace example3 {
+  template
+  struct A
+  {
+T i;
+static T j;
+  };
+
+  template
+  struct B : A { };
+  template
+  struct C : A { };
+
+  template
+  struct D : virtual B, virtual C
+  {
+using B::i; // expected-note {{previous using declaration}}
+using B::i; // expected-error {{redeclaration of using declaration}}
+
+using C::i; // expected-note {{previous using declaration}}
+using C::i; // expected-error {{redeclaration of using declaration}}
+
+using B::j; // expected-note {{previous using declaration}}
+using B::j; // expected-error {{redeclaration of using declaration}}
+
+using C::j; // expected-note {{previous using declaration}}
+using C::j; // expected-error {{redeclaration of using declaration}}
+  };
+}
+namespace example4 {
+  template
+  struct E {
+T k;
+  };
+
+  template
+  struct G : E {
+using E::k; // expected-note {{previous using declaration}}
+using E::k; // expected-error {{redeclaration of using declaration}}
+  };
+}
+}
+
 // dr37: sup 475
 
 namespace dr38 { // dr38: yes
@@ -699,6 +789,8 @@
 }
 
 namespace dr59 { // dr59: yes
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-volatile"
   template struct convert_to { operator T() const; };
   struct A {}; // expected-note 5+{{candidate}}
   struct B : A {}; // expected-note 0+{{candidate}}
@@ -732,6 +824,7 @@
   int n3 = convert_to();
   int n4 = convert_to();
   int n5 = convert_to();
+#pragma clang diagnostic pop
 }
 
 namespace dr60 { // dr60: yes
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D138822: [clang] Add test for CWG36

2022-12-01 Thread Erich Keane via Phabricator via cfe-commits
erichkeane accepted this revision.
erichkeane added inline comments.



Comment at: clang/test/CXX/drs/dr0xx.cpp:489
+
+using B::i; // expected-error {{redeclaration of using declaration}}
+using C::i; // expected-error {{redeclaration of using declaration}}

aaron.ballman wrote:
> Endill wrote:
> > aaron.ballman wrote:
> > > Endill wrote:
> > > > erichkeane wrote:
> > > > > Endill wrote:
> > > > > > erichkeane wrote:
> > > > > > > As a nit, I prefer the 'notes' to live next to the error, and use 
> > > > > > > a bookmark line-marker here.  My issue is basically how we have 
> > > > > > > no way of knowing (particularly in template code...) what this 
> > > > > > > diagnoses.
> > > > > > > 
> > > > > > > I would also think a dependent example of this diagnostic would 
> > > > > > > be useful.
> > > > > > >I would also think a dependent example of this diagnostic would be 
> > > > > > >useful.
> > > > > > Do you mean something of this sort: `using D::i`?
> > > > > That is a good example too, but more a case where the using 
> > > > > expression is dependent, so something like: `using Struct::i` 
> > > > > sorta thing
> > > > > I prefer the 'notes' to live next to the error
> > > > done
> > > > 
> > > > > I would also think a dependent example of this diagnostic would be 
> > > > > useful.
> > > > I'm not sure how you wanted it to interact with virtual bases, so I 
> > > > wrote examples both with virtual bases and without
> > > > 
> > > > > use a bookmark line-marker here
> > > > While I'm sympathetic to your concern, and agree that bookmarks allow 
> > > > to order expected errors and notes in the order they would appear for 
> > > > user, searching for `@#` gives only 5 DR tests. If that's the direction 
> > > > we want DR tests to take, we should be explicit about this, because 
> > > > almost all existing tests have to be adjusted.
> > > > While I'm sympathetic to your concern, and agree that bookmarks allow 
> > > > to order expected errors and notes in the order they would appear for 
> > > > user, searching for @# gives only 5 DR tests. If that's the direction 
> > > > we want DR tests to take, we should be explicit about this, because 
> > > > almost all existing tests have to be adjusted.
> > > 
> > > FWIW, we don't have to adjust all the tests -- sometimes bookmarks make 
> > > things more clear, other times they don't help all that much, and it's an 
> > > equivalent test either way. My recommendation is to use bookmarks when 
> > > you think they make sense to use or when a reviewer asks for one. 
> > > Updating other tests can be done with NFC changes if someone sees a 
> > > particular need.
> > > FWIW, we don't have to adjust all the tests -- sometimes bookmarks make 
> > > things more clear, other times they don't help all that much, and it's an 
> > > equivalent test either way. My recommendation is to use bookmarks when 
> > > you think they make sense to use or when a reviewer asks for one. 
> > > Updating other tests can be done with NFC changes if someone sees a 
> > > particular need.
> > 
> > The concern about expected-note comments scattered across a test seems 
> > applicable to any test with more than one expected-warning or 
> > expected-error. If maintainers agree that it should be addressed with 
> > bookmarks, I'll update this patch, and make NFC commits to fix existing 
> > tests.
> > 
> > What I'd like to avoid is introducing even more inconsistencies into DR 
> > tests. Until very recently (before tests for 2565 and 2628), bookmarks have 
> > been used only under `#if __cplusplus`, where you don't have any other 
> > straightforward option (e.g. dr100).
> > The concern about expected-note comments scattered across a test seems 
> > applicable to any test with more than one expected-warning or 
> > expected-error.
> 
> To me, it's less about the number of expected diagnostics and more about 
> locality of the diagnostics. If the warning/error and note are only a few 
> lines away from one another, I (personally) don't use bookmarks because the 
> syntax is a bit novel, especially for newcomers. But if there is quite a bit 
> of space between the warning/error and the note, then I like using bookmarks 
> because it helps me to pair the note with the diagnostic. e.g.,
> ```
> // To me, this is fine.
> int note_goes_here; // expected-note {{the bad thing was declared here}}
> foo(note_goes_here); // expected-warning {{something went wrong with this 
> argument}}
> ```
> ```
> // To me, this is also fine.
> int note_goes_here; // #bad_thing
> // ... lots of code ...
> // ... even more code ...
> foo(note_goes_here); // expected-warning {{something went wrong with this 
> argument}} \
> expected-note@#bad_thing {{the bad thing was declared 
> here}}
> ```
> but it's a value judgment as to what "quite a bit of space" is and whether 
> using the bookmark improves the test or not. So:
> ```
> // To me, this is not 

[PATCH] D138822: [clang] Add test for CWG36

2022-11-30 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added inline comments.



Comment at: clang/test/CXX/drs/dr0xx.cpp:489
+
+using B::i; // expected-error {{redeclaration of using declaration}}
+using C::i; // expected-error {{redeclaration of using declaration}}

Endill wrote:
> aaron.ballman wrote:
> > Endill wrote:
> > > erichkeane wrote:
> > > > Endill wrote:
> > > > > erichkeane wrote:
> > > > > > As a nit, I prefer the 'notes' to live next to the error, and use a 
> > > > > > bookmark line-marker here.  My issue is basically how we have no 
> > > > > > way of knowing (particularly in template code...) what this 
> > > > > > diagnoses.
> > > > > > 
> > > > > > I would also think a dependent example of this diagnostic would be 
> > > > > > useful.
> > > > > >I would also think a dependent example of this diagnostic would be 
> > > > > >useful.
> > > > > Do you mean something of this sort: `using D::i`?
> > > > That is a good example too, but more a case where the using expression 
> > > > is dependent, so something like: `using Struct::i` sorta thing
> > > > I prefer the 'notes' to live next to the error
> > > done
> > > 
> > > > I would also think a dependent example of this diagnostic would be 
> > > > useful.
> > > I'm not sure how you wanted it to interact with virtual bases, so I wrote 
> > > examples both with virtual bases and without
> > > 
> > > > use a bookmark line-marker here
> > > While I'm sympathetic to your concern, and agree that bookmarks allow to 
> > > order expected errors and notes in the order they would appear for user, 
> > > searching for `@#` gives only 5 DR tests. If that's the direction we want 
> > > DR tests to take, we should be explicit about this, because almost all 
> > > existing tests have to be adjusted.
> > > While I'm sympathetic to your concern, and agree that bookmarks allow to 
> > > order expected errors and notes in the order they would appear for user, 
> > > searching for @# gives only 5 DR tests. If that's the direction we want 
> > > DR tests to take, we should be explicit about this, because almost all 
> > > existing tests have to be adjusted.
> > 
> > FWIW, we don't have to adjust all the tests -- sometimes bookmarks make 
> > things more clear, other times they don't help all that much, and it's an 
> > equivalent test either way. My recommendation is to use bookmarks when you 
> > think they make sense to use or when a reviewer asks for one. Updating 
> > other tests can be done with NFC changes if someone sees a particular need.
> > FWIW, we don't have to adjust all the tests -- sometimes bookmarks make 
> > things more clear, other times they don't help all that much, and it's an 
> > equivalent test either way. My recommendation is to use bookmarks when you 
> > think they make sense to use or when a reviewer asks for one. Updating 
> > other tests can be done with NFC changes if someone sees a particular need.
> 
> The concern about expected-note comments scattered across a test seems 
> applicable to any test with more than one expected-warning or expected-error. 
> If maintainers agree that it should be addressed with bookmarks, I'll update 
> this patch, and make NFC commits to fix existing tests.
> 
> What I'd like to avoid is introducing even more inconsistencies into DR 
> tests. Until very recently (before tests for 2565 and 2628), bookmarks have 
> been used only under `#if __cplusplus`, where you don't have any other 
> straightforward option (e.g. dr100).
> The concern about expected-note comments scattered across a test seems 
> applicable to any test with more than one expected-warning or expected-error.

To me, it's less about the number of expected diagnostics and more about 
locality of the diagnostics. If the warning/error and note are only a few lines 
away from one another, I (personally) don't use bookmarks because the syntax is 
a bit novel, especially for newcomers. But if there is quite a bit of space 
between the warning/error and the note, then I like using bookmarks because it 
helps me to pair the note with the diagnostic. e.g.,
```
// To me, this is fine.
int note_goes_here; // expected-note {{the bad thing was declared here}}
foo(note_goes_here); // expected-warning {{something went wrong with this 
argument}}
```
```
// To me, this is also fine.
int note_goes_here; // #bad_thing
// ... lots of code ...
// ... even more code ...
foo(note_goes_here); // expected-warning {{something went wrong with this 
argument}} \
expected-note@#bad_thing {{the bad thing was declared 
here}}
```
but it's a value judgment as to what "quite a bit of space" is and whether 
using the bookmark improves the test or not. So:
```
// To me, this is not really a good use of bookmarks.
int note_goes_here; // #bad_thing
foo(note_goes_here); // expected-warning {{something went wrong with this 
argument}} \
expected-note@#bad_thing {{the bad thing was declared 
here}}

```
> What I'd like to 

[PATCH] D138822: [clang] Add test for CWG36

2022-11-30 Thread Vlad Serebrennikov via Phabricator via cfe-commits
Endill added inline comments.



Comment at: clang/test/CXX/drs/dr0xx.cpp:489
+
+using B::i; // expected-error {{redeclaration of using declaration}}
+using C::i; // expected-error {{redeclaration of using declaration}}

aaron.ballman wrote:
> Endill wrote:
> > erichkeane wrote:
> > > Endill wrote:
> > > > erichkeane wrote:
> > > > > As a nit, I prefer the 'notes' to live next to the error, and use a 
> > > > > bookmark line-marker here.  My issue is basically how we have no way 
> > > > > of knowing (particularly in template code...) what this diagnoses.
> > > > > 
> > > > > I would also think a dependent example of this diagnostic would be 
> > > > > useful.
> > > > >I would also think a dependent example of this diagnostic would be 
> > > > >useful.
> > > > Do you mean something of this sort: `using D::i`?
> > > That is a good example too, but more a case where the using expression is 
> > > dependent, so something like: `using Struct::i` sorta thing
> > > I prefer the 'notes' to live next to the error
> > done
> > 
> > > I would also think a dependent example of this diagnostic would be useful.
> > I'm not sure how you wanted it to interact with virtual bases, so I wrote 
> > examples both with virtual bases and without
> > 
> > > use a bookmark line-marker here
> > While I'm sympathetic to your concern, and agree that bookmarks allow to 
> > order expected errors and notes in the order they would appear for user, 
> > searching for `@#` gives only 5 DR tests. If that's the direction we want 
> > DR tests to take, we should be explicit about this, because almost all 
> > existing tests have to be adjusted.
> > While I'm sympathetic to your concern, and agree that bookmarks allow to 
> > order expected errors and notes in the order they would appear for user, 
> > searching for @# gives only 5 DR tests. If that's the direction we want DR 
> > tests to take, we should be explicit about this, because almost all 
> > existing tests have to be adjusted.
> 
> FWIW, we don't have to adjust all the tests -- sometimes bookmarks make 
> things more clear, other times they don't help all that much, and it's an 
> equivalent test either way. My recommendation is to use bookmarks when you 
> think they make sense to use or when a reviewer asks for one. Updating other 
> tests can be done with NFC changes if someone sees a particular need.
> FWIW, we don't have to adjust all the tests -- sometimes bookmarks make 
> things more clear, other times they don't help all that much, and it's an 
> equivalent test either way. My recommendation is to use bookmarks when you 
> think they make sense to use or when a reviewer asks for one. Updating other 
> tests can be done with NFC changes if someone sees a particular need.

The concern about expected-note comments scattered across a test seems 
applicable to any test with more than one expected-warning or expected-error. 
If maintainers agree that it should be addressed with bookmarks, I'll update 
this patch, and make NFC commits to fix existing tests.

What I'd like to avoid is introducing even more inconsistencies into DR tests. 
Until very recently (before tests for 2565 and 2628), bookmarks have been used 
only under `#if __cplusplus`, where you don't have any other straightforward 
option (e.g. dr100).


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D138822: [clang] Add test for CWG36

2022-11-30 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added inline comments.



Comment at: clang/test/CXX/drs/dr0xx.cpp:489
+
+using B::i; // expected-error {{redeclaration of using declaration}}
+using C::i; // expected-error {{redeclaration of using declaration}}

Endill wrote:
> erichkeane wrote:
> > Endill wrote:
> > > erichkeane wrote:
> > > > As a nit, I prefer the 'notes' to live next to the error, and use a 
> > > > bookmark line-marker here.  My issue is basically how we have no way of 
> > > > knowing (particularly in template code...) what this diagnoses.
> > > > 
> > > > I would also think a dependent example of this diagnostic would be 
> > > > useful.
> > > >I would also think a dependent example of this diagnostic would be 
> > > >useful.
> > > Do you mean something of this sort: `using D::i`?
> > That is a good example too, but more a case where the using expression is 
> > dependent, so something like: `using Struct::i` sorta thing
> > I prefer the 'notes' to live next to the error
> done
> 
> > I would also think a dependent example of this diagnostic would be useful.
> I'm not sure how you wanted it to interact with virtual bases, so I wrote 
> examples both with virtual bases and without
> 
> > use a bookmark line-marker here
> While I'm sympathetic to your concern, and agree that bookmarks allow to 
> order expected errors and notes in the order they would appear for user, 
> searching for `@#` gives only 5 DR tests. If that's the direction we want DR 
> tests to take, we should be explicit about this, because almost all existing 
> tests have to be adjusted.
> While I'm sympathetic to your concern, and agree that bookmarks allow to 
> order expected errors and notes in the order they would appear for user, 
> searching for @# gives only 5 DR tests. If that's the direction we want DR 
> tests to take, we should be explicit about this, because almost all existing 
> tests have to be adjusted.

FWIW, we don't have to adjust all the tests -- sometimes bookmarks make things 
more clear, other times they don't help all that much, and it's an equivalent 
test either way. My recommendation is to use bookmarks when you think they make 
sense to use or when a reviewer asks for one. Updating other tests can be done 
with NFC changes if someone sees a particular need.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D138822: [clang] Add test for CWG36

2022-11-30 Thread Vlad Serebrennikov via Phabricator via cfe-commits
Endill added inline comments.



Comment at: clang/test/CXX/drs/dr0xx.cpp:489
+
+using B::i; // expected-error {{redeclaration of using declaration}}
+using C::i; // expected-error {{redeclaration of using declaration}}

erichkeane wrote:
> Endill wrote:
> > erichkeane wrote:
> > > As a nit, I prefer the 'notes' to live next to the error, and use a 
> > > bookmark line-marker here.  My issue is basically how we have no way of 
> > > knowing (particularly in template code...) what this diagnoses.
> > > 
> > > I would also think a dependent example of this diagnostic would be useful.
> > >I would also think a dependent example of this diagnostic would be useful.
> > Do you mean something of this sort: `using D::i`?
> That is a good example too, but more a case where the using expression is 
> dependent, so something like: `using Struct::i` sorta thing
> I prefer the 'notes' to live next to the error
done

> I would also think a dependent example of this diagnostic would be useful.
I'm not sure how you wanted it to interact with virtual bases, so I wrote 
examples both with virtual bases and without

> use a bookmark line-marker here
While I'm sympathetic to your concern, and agree that bookmarks allow to order 
expected errors and notes in the order they would appear for user, searching 
for `@#` gives only 5 DR tests. If that's the direction we want DR tests to 
take, we should be explicit about this, because almost all existing tests have 
to be adjusted.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D138822: [clang] Add test for CWG36

2022-11-30 Thread Vlad Serebrennikov via Phabricator via cfe-commits
Endill updated this revision to Diff 478878.
Endill added a comment.

Get rid of unwanted changes supposedly cause by `arc diff`


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

Files:
  clang/test/CXX/drs/dr0xx.cpp
  clang/www/cxx_dr_status.html

Index: clang/www/cxx_dr_status.html
===
--- clang/www/cxx_dr_status.html
+++ clang/www/cxx_dr_status.html
@@ -254,7 +254,7 @@
 https://wg21.link/cwg36;>36
 CD6
 using-declarations in multiple-declaration contexts
-Unknown
+Yes
   
   
 https://wg21.link/cwg37;>37
Index: clang/test/CXX/drs/dr0xx.cpp
===
--- clang/test/CXX/drs/dr0xx.cpp
+++ clang/test/CXX/drs/dr0xx.cpp
@@ -2,6 +2,8 @@
 // RUN: %clang_cc1 -std=c++11 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple
 // RUN: %clang_cc1 -std=c++14 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple
 // RUN: %clang_cc1 -std=c++17 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple
+// RUN: %clang_cc1 -std=c++20 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple
+// RUN: %clang_cc1 -std=c++2b %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple
 
 namespace dr1 { // dr1: no
   namespace X { extern "C" void dr1_f(int a = 1); }
@@ -448,6 +450,94 @@
 
 // dr34: na
 // dr35: dup 178
+
+namespace dr36 { // dr36: yes
+namespace example1 {
+  namespace A {
+int i;
+  }
+  
+  namespace A1 {
+using A::i;
+using A::i;
+  }
+  
+  void f()
+  {
+using A::i;
+using A::i;
+  }
+}
+
+namespace example2 {
+  struct A
+  {
+int i;
+static int j;
+  };
+
+  struct B : A { };
+  struct C : A { };
+
+  struct D : virtual B, virtual C
+  {
+using B::i; // expected-note {{previous using declaration}}
+using B::i; // expected-error {{redeclaration of using declaration}}
+
+using C::i; // expected-note {{previous using declaration}}
+using C::i; // expected-error {{redeclaration of using declaration}}
+
+using B::j; // expected-note {{previous using declaration}}
+using B::j; // expected-error {{redeclaration of using declaration}}
+
+using C::j; // expected-note {{previous using declaration}}
+using C::j; // expected-error {{redeclaration of using declaration}}
+  };
+}
+
+namespace example3 {
+  template
+  struct A
+  {
+T i;
+static T j;
+  };
+
+  template
+  struct B : A { };
+  template
+  struct C : A { };
+
+  template
+  struct D : virtual B, virtual C
+  {
+using B::i; // expected-note {{previous using declaration}}
+using B::i; // expected-error {{redeclaration of using declaration}}
+
+using C::i; // expected-note {{previous using declaration}}
+using C::i; // expected-error {{redeclaration of using declaration}}
+
+using B::j; // expected-note {{previous using declaration}}
+using B::j; // expected-error {{redeclaration of using declaration}}
+
+using C::j; // expected-note {{previous using declaration}}
+using C::j; // expected-error {{redeclaration of using declaration}}
+  };
+}
+namespace example4 {
+  template
+  struct E {
+T k;
+  };
+
+  template
+  struct G : E {
+using E::k; // expected-note {{previous using declaration}}
+using E::k; // expected-error {{redeclaration of using declaration}}
+  };
+}
+}
+
 // dr37: sup 475
 
 namespace dr38 { // dr38: yes
@@ -699,6 +789,8 @@
 }
 
 namespace dr59 { // dr59: yes
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-volatile"
   template struct convert_to { operator T() const; };
   struct A {}; // expected-note 5+{{candidate}}
   struct B : A {}; // expected-note 0+{{candidate}}
@@ -732,6 +824,7 @@
   int n3 = convert_to();
   int n4 = convert_to();
   int n5 = convert_to();
+#pragma clang diagnostic pop
 }
 
 namespace dr60 { // dr60: yes
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D138822: [clang] Add test for CWG36

2022-11-30 Thread Vlad Serebrennikov via Phabricator via cfe-commits
Endill updated this revision to Diff 478875.
Endill added a comment.

Add examples with dependent types, and rearrange using declarations to group 
errors and notes.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

Files:
  clang/test/CXX/drs/dr0xx.cpp
  clang/www/cxx_dr_status.html

Index: clang/www/cxx_dr_status.html
===
--- clang/www/cxx_dr_status.html
+++ clang/www/cxx_dr_status.html
@@ -254,7 +254,7 @@
 https://wg21.link/cwg36;>36
 CD6
 using-declarations in multiple-declaration contexts
-Unknown
+Yes
   
   
 https://wg21.link/cwg37;>37
Index: clang/test/CXX/drs/dr0xx.cpp
===
--- clang/test/CXX/drs/dr0xx.cpp
+++ clang/test/CXX/drs/dr0xx.cpp
@@ -2,6 +2,8 @@
 // RUN: %clang_cc1 -std=c++11 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple
 // RUN: %clang_cc1 -std=c++14 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple
 // RUN: %clang_cc1 -std=c++17 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple
+// RUN: %clang_cc1 -std=c++20 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple
+// RUN: %clang_cc1 -std=c++2b %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple
 
 namespace dr1 { // dr1: no
   namespace X { extern "C" void dr1_f(int a = 1); }
@@ -448,6 +450,94 @@
 
 // dr34: na
 // dr35: dup 178
+
+namespace dr36 { // dr36: yes
+namespace example1 {
+  namespace A {
+int i;
+  }
+  
+  namespace A1 {
+using A::i;
+using A::i;
+  }
+  
+  void f()
+  {
+using A::i;
+using A::i;
+  }
+}
+
+namespace example2 {
+  struct A
+  {
+int i;
+static int j;
+  };
+
+  struct B : A { };
+  struct C : A { };
+
+  struct D : virtual B, virtual C
+  {
+using B::i; // expected-note {{previous using declaration}}
+using B::i; // expected-error {{redeclaration of using declaration}}
+
+using C::i; // expected-note {{previous using declaration}}
+using C::i; // expected-error {{redeclaration of using declaration}}
+
+using B::j; // expected-note {{previous using declaration}}
+using B::j; // expected-error {{redeclaration of using declaration}}
+
+using C::j; // expected-note {{previous using declaration}}
+using C::j; // expected-error {{redeclaration of using declaration}}
+  };
+}
+
+namespace example3 {
+  template
+  struct A
+  {
+T i;
+static T j;
+  };
+
+  template
+  struct B : A { };
+  template
+  struct C : A { };
+
+  template
+  struct D : virtual B, virtual C
+  {
+using B::i; // expected-note {{previous using declaration}}
+using B::i; // expected-error {{redeclaration of using declaration}}
+
+using C::i; // expected-note {{previous using declaration}}
+using C::i; // expected-error {{redeclaration of using declaration}}
+
+using B::j; // expected-note {{previous using declaration}}
+using B::j; // expected-error {{redeclaration of using declaration}}
+
+using C::j; // expected-note {{previous using declaration}}
+using C::j; // expected-error {{redeclaration of using declaration}}
+  };
+}
+namespace example4 {
+  template
+  struct E {
+T k;
+  };
+
+  template
+  struct G : E {
+using E::k; // expected-note {{previous using declaration}}
+using E::k; // expected-error {{redeclaration of using declaration}}
+  };
+}
+}
+
 // dr37: sup 475
 
 namespace dr38 { // dr38: yes
@@ -699,6 +789,8 @@
 }
 
 namespace dr59 { // dr59: yes
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-volatile"
   template struct convert_to { operator T() const; };
   struct A {}; // expected-note 5+{{candidate}}
   struct B : A {}; // expected-note 0+{{candidate}}
@@ -732,6 +824,7 @@
   int n3 = convert_to();
   int n4 = convert_to();
   int n5 = convert_to();
+#pragma clang diagnostic pop
 }
 
 namespace dr60 { // dr60: yes
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D138822: [clang] Add test for CWG36

2022-11-29 Thread Erich Keane via Phabricator via cfe-commits
erichkeane added inline comments.



Comment at: clang/test/CXX/drs/dr0xx.cpp:489
+
+using B::i; // expected-error {{redeclaration of using declaration}}
+using C::i; // expected-error {{redeclaration of using declaration}}

Endill wrote:
> erichkeane wrote:
> > As a nit, I prefer the 'notes' to live next to the error, and use a 
> > bookmark line-marker here.  My issue is basically how we have no way of 
> > knowing (particularly in template code...) what this diagnoses.
> > 
> > I would also think a dependent example of this diagnostic would be useful.
> >I would also think a dependent example of this diagnostic would be useful.
> Do you mean something of this sort: `using D::i`?
That is a good example too, but more a case where the using expression is 
dependent, so something like: `using Struct::i` sorta thing


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D138822: [clang] Add test for CWG36

2022-11-29 Thread Vlad Serebrennikov via Phabricator via cfe-commits
Endill added inline comments.



Comment at: clang/test/CXX/drs/dr0xx.cpp:489
+
+using B::i; // expected-error {{redeclaration of using declaration}}
+using C::i; // expected-error {{redeclaration of using declaration}}

erichkeane wrote:
> As a nit, I prefer the 'notes' to live next to the error, and use a bookmark 
> line-marker here.  My issue is basically how we have no way of knowing 
> (particularly in template code...) what this diagnoses.
> 
> I would also think a dependent example of this diagnostic would be useful.
>I would also think a dependent example of this diagnostic would be useful.
Do you mean something of this sort: `using D::i`?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D138822: [clang] Add test for CWG36

2022-11-29 Thread Vlad Serebrennikov via Phabricator via cfe-commits
Endill added a comment.

Discord feels perfect to me for this kind of questions. What's left is to get 
past a broken bot for agreeing with code of conduct.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D138822: [clang] Add test for CWG36

2022-11-29 Thread Erich Keane via Phabricator via cfe-commits
erichkeane added inline comments.



Comment at: clang/test/CXX/drs/dr0xx.cpp:489
+
+using B::i; // expected-error {{redeclaration of using declaration}}
+using C::i; // expected-error {{redeclaration of using declaration}}

As a nit, I prefer the 'notes' to live next to the error, and use a bookmark 
line-marker here.  My issue is basically how we have no way of knowing 
(particularly in template code...) what this diagnoses.

I would also think a dependent example of this diagnostic would be useful.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D138822: [clang] Add test for CWG36

2022-11-29 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added a comment.

In D138822#3957503 , @Endill wrote:

> Thank you!
>
>> FWIW, if you need help getting references from the mailing list or the wiki, 
>> feel free to mention what you're after and one of us on the committee can 
>> see about tracking down the details.
>
> Do you mean creating an incomplete diff and asking here in the comments?

That's one approach, but if you don't have a diff handy when the questions come 
up, you can also ask on Discourse/Discord/IRC or you can ask me directly via 
email.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D138822: [clang] Add test for CWG36

2022-11-29 Thread Vlad Serebrennikov via Phabricator via cfe-commits
Endill added a comment.

Thank you!

> FWIW, if you need help getting references from the mailing list or the wiki, 
> feel free to mention what you're after and one of us on the committee can see 
> about tracking down the details.

Do you mean creating an incomplete diff and asking here in the comments?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D138822: [clang] Add test for CWG36

2022-11-29 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman accepted this revision as: aaron.ballman.
aaron.ballman added a comment.
This revision is now accepted and ready to land.

Adding my explicit LG, but just personally instead of for the language wg. If 
we don't hear from anyone else in the next 1-2 days, I'd say this is safe to 
land.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D138822: [clang] Add test for CWG36

2022-11-29 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added a comment.

In D138822#3957459 , @Endill wrote:

> Among the worst parts of this paper are references to mailing list and EDG 
> wiki, which I don't have access to. But I still managed to dig everything up, 
> and ready to explain if requested. No tests were copied blindly from issues.

Good to know, thank you! FWIW, if you need help getting references from the 
mailing list or the wiki, feel free to mention what you're after and one of us 
on the committee can see about tracking down the details.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D138822: [clang] Add test for CWG36

2022-11-29 Thread Vlad Serebrennikov via Phabricator via cfe-commits
Endill added a comment.

Among the worst parts of this paper are references to mailing list and EDG 
wiki, which I don't have access to. But I still managed to dig everything up, 
and ready to explain if requested. No tests were copied blindly from issues.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D138822: [clang] Add test for CWG36

2022-11-29 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added a comment.

In D138822#3957395 , @Endill wrote:

> @aaron.ballman Following example of other DR tests, I was reluctant to add 
> relevant comments, e.g. wording. But I can provide it going forward or even 
> update this patch.

No worries, you didn't do anything wrong. I was grousing about WG21 leaving the 
DR in a state where it's not clear *how* it was resolved without going back to 
a very complex omnibus paper.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D138822: [clang] Add test for CWG36

2022-11-29 Thread Vlad Serebrennikov via Phabricator via cfe-commits
Endill added a comment.

@aaron.ballman Following example of other DR test, I was reluctant to add 
relevant comments, e.g. wording. But I can provide it going forward or even 
update this patch.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D138822: [clang] Add test for CWG36

2022-11-28 Thread Shafik Yaghmour via Phabricator via cfe-commits
shafik added inline comments.



Comment at: clang/test/CXX/drs/dr0xx.cpp:454
+
+namespace dr36 { // dr36: yes
+namespace example1 {

aaron.ballman wrote:
> It took me a while to convince myself, but yes, I agree that Clang seems to 
> implement the DR. I had to go back to P1787 to figure that out, but the key 
> bit of new wording is:
> 
> > If a declaration named by a using-declaration that inhabits the target 
> > scope of another declaration potentially conflicts with it 
> > ([basic.scope.scope]) and either is reachable from the other, the program 
> > is ill-formed. If two declarations named by using-declaration⁠s that 
> > inhabit the same scope potentially conflict, either is reachable from the 
> > other, and they do not both declare functions or function templates, the 
> > program is ill-formed.
It makes sense to me as well, although it would have been nice to have some 
examples in standard to reflect this as well.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D138822: [clang] Add test for CWG36

2022-11-28 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added a reviewer: hubert.reinterpretcast.
aaron.ballman added a comment.

Adding Hubert for his C++ conformance opinion.




Comment at: clang/test/CXX/drs/dr0xx.cpp:454
+
+namespace dr36 { // dr36: yes
+namespace example1 {

It took me a while to convince myself, but yes, I agree that Clang seems to 
implement the DR. I had to go back to P1787 to figure that out, but the key bit 
of new wording is:

> If a declaration named by a using-declaration that inhabits the target scope 
> of another declaration potentially conflicts with it ([basic.scope.scope]) 
> and either is reachable from the other, the program is ill-formed. If two 
> declarations named by using-declaration⁠s that inhabit the same scope 
> potentially conflict, either is reachable from the other, and they do not 
> both declare functions or function templates, the program is ill-formed.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D138822: [clang] Add test for CWG36

2022-11-28 Thread Vlad Serebrennikov via Phabricator via cfe-commits
Endill updated this revision to Diff 478303.
Endill added a comment.

Incorporate D138835  (correctly this time 
around)


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

Files:
  clang/test/CXX/drs/dr0xx.cpp
  clang/www/cxx_dr_status.html


Index: clang/www/cxx_dr_status.html
===
--- clang/www/cxx_dr_status.html
+++ clang/www/cxx_dr_status.html
@@ -254,7 +254,7 @@
 https://wg21.link/cwg36;>36
 CD6
 using-declarations in multiple-declaration contexts
-Unknown
+Yes
   
   
 https://wg21.link/cwg37;>37
Index: clang/test/CXX/drs/dr0xx.cpp
===
--- clang/test/CXX/drs/dr0xx.cpp
+++ clang/test/CXX/drs/dr0xx.cpp
@@ -2,6 +2,8 @@
 // RUN: %clang_cc1 -std=c++11 %s -verify -fexceptions -fcxx-exceptions 
-pedantic-errors -triple %itanium_abi_triple
 // RUN: %clang_cc1 -std=c++14 %s -verify -fexceptions -fcxx-exceptions 
-pedantic-errors -triple %itanium_abi_triple
 // RUN: %clang_cc1 -std=c++17 %s -verify -fexceptions -fcxx-exceptions 
-pedantic-errors -triple %itanium_abi_triple
+// RUN: %clang_cc1 -std=c++20 %s -verify -fexceptions -fcxx-exceptions 
-pedantic-errors -triple %itanium_abi_triple
+// RUN: %clang_cc1 -std=c++2b %s -verify -fexceptions -fcxx-exceptions 
-pedantic-errors -triple %itanium_abi_triple
 
 namespace dr1 { // dr1: no
   namespace X { extern "C" void dr1_f(int a = 1); }
@@ -448,6 +450,50 @@
 
 // dr34: na
 // dr35: dup 178
+
+namespace dr36 { // dr36: yes
+namespace example1 {
+  namespace A {
+int i;
+  }
+  
+  namespace A1 {
+using A::i;
+using A::i;
+  }
+  
+  void f()
+  {
+using A::i;
+using A::i;
+  }
+}
+
+namespace example2 {
+  struct A
+  {
+int i;
+static int j;
+  };
+
+  struct B : A { };
+  struct C : A { };
+
+  struct D : virtual B, virtual C
+  {
+using B::i; // expected-note {{previous using declaration}}
+using C::i; // expected-note {{previous using declaration}}
+using B::j; // expected-note {{previous using declaration}}
+using C::j; // expected-note {{previous using declaration}}
+
+using B::i; // expected-error {{redeclaration of using declaration}}
+using C::i; // expected-error {{redeclaration of using declaration}}
+using B::j; // expected-error {{redeclaration of using declaration}}
+using C::j; // expected-error {{redeclaration of using declaration}}
+  };
+}
+}
+
 // dr37: sup 475
 
 namespace dr38 { // dr38: yes
@@ -699,6 +745,8 @@
 }
 
 namespace dr59 { // dr59: yes
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-volatile"
   template struct convert_to { operator T() const; };
   struct A {}; // expected-note 5+{{candidate}}
   struct B : A {}; // expected-note 0+{{candidate}}
@@ -732,6 +780,7 @@
   int n3 = convert_to();
   int n4 = convert_to();
   int n5 = convert_to();
+#pragma clang diagnostic pop
 }
 
 namespace dr60 { // dr60: yes


Index: clang/www/cxx_dr_status.html
===
--- clang/www/cxx_dr_status.html
+++ clang/www/cxx_dr_status.html
@@ -254,7 +254,7 @@
 https://wg21.link/cwg36;>36
 CD6
 using-declarations in multiple-declaration contexts
-Unknown
+Yes
   
   
 https://wg21.link/cwg37;>37
Index: clang/test/CXX/drs/dr0xx.cpp
===
--- clang/test/CXX/drs/dr0xx.cpp
+++ clang/test/CXX/drs/dr0xx.cpp
@@ -2,6 +2,8 @@
 // RUN: %clang_cc1 -std=c++11 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple
 // RUN: %clang_cc1 -std=c++14 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple
 // RUN: %clang_cc1 -std=c++17 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple
+// RUN: %clang_cc1 -std=c++20 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple
+// RUN: %clang_cc1 -std=c++2b %s -verify -fexceptions -fcxx-exceptions -pedantic-errors -triple %itanium_abi_triple
 
 namespace dr1 { // dr1: no
   namespace X { extern "C" void dr1_f(int a = 1); }
@@ -448,6 +450,50 @@
 
 // dr34: na
 // dr35: dup 178
+
+namespace dr36 { // dr36: yes
+namespace example1 {
+  namespace A {
+int i;
+  }
+  
+  namespace A1 {
+using A::i;
+using A::i;
+  }
+  
+  void f()
+  {
+using A::i;
+using A::i;
+  }
+}
+
+namespace example2 {
+  struct A
+  {
+int i;
+static int j;
+  };
+
+  struct B : A { };
+  struct C : A { };
+
+  struct D : virtual B, virtual C
+  {
+using B::i; // expected-note {{previous using declaration}}
+using C::i; // expected-note {{previous using declaration}}
+using B::j; // expected-note {{previous using declaration}}
+using C::j; // expected-note {{previous using declaration}}
+
+using B::i; // expected-error 

[PATCH] D138822: [clang] Add test for CWG36

2022-11-28 Thread Vlad Serebrennikov via Phabricator via cfe-commits
Endill added a comment.

Sorry, I messed up diff update


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D138822: [clang] Add test for CWG36

2022-11-28 Thread Vlad Serebrennikov via Phabricator via cfe-commits
Endill updated this revision to Diff 478300.
Endill added a comment.

Incorporate D138835 


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

Files:
  clang/www/cxx_dr_status.html
  clang/www/make_cxx_dr_status

Index: clang/www/make_cxx_dr_status
===
--- clang/www/make_cxx_dr_status
+++ clang/www/make_cxx_dr_status
@@ -158,7 +158,7 @@
 # This refers to the old ("C++0x") concepts feature, which was not part
 # of any C++ International Standard or Technical Specification.
 continue
-  if dr.issue in (1432,2565):
+  if dr.issue in (2565, 2628):
 row_style = ' class="open"'
 avail, avail_style = availability(dr.issue)
   elif dr.status in ('open', 'concurrency', 'drafting', 'review', 'extension'):
Index: clang/www/cxx_dr_status.html
===
--- clang/www/cxx_dr_status.html
+++ clang/www/cxx_dr_status.html
@@ -252,7 +252,7 @@
   
   
 https://wg21.link/cwg36;>36
-DRWP
+CD6
 using-declarations in multiple-declaration contexts
 Unknown
   
@@ -696,7 +696,7 @@
   
   
 https://wg21.link/cwg110;>110
-DRWP
+CD6
 Can template functions and classes be declared in the same scope?
 Unknown
   
@@ -864,7 +864,7 @@
   
   
 https://wg21.link/cwg138;>138
-DRWP
+CD6
 Friend declaration name lookup
 Unknown
   
@@ -1056,7 +1056,7 @@
   
   
 https://wg21.link/cwg170;>170
-open
+review
 Pointer-to-member conversions
 Not resolved
   
@@ -1182,7 +1182,7 @@
   
   
 https://wg21.link/cwg191;>191
-DRWP
+CD6
 Name lookup does not handle complex nesting
 Unknown
   
@@ -1567,7 +1567,7 @@
   
   
 https://wg21.link/cwg255;>255
-DRWP
+CD6
 Placement deallocation functions and lookup ambiguity
 Unknown
   
@@ -1664,7 +1664,7 @@
   
   
 https://wg21.link/cwg271;>271
-DRWP
+CD6
 Explicit instantiation and template argument deduction
 Unknown
   
@@ -1712,7 +1712,7 @@
   
   
 https://wg21.link/cwg279;>279
-DRWP
+CD6
 Correspondence of "names for linkage purposes"
 Unknown
   
@@ -2066,7 +2066,7 @@
   
   
 https://wg21.link/cwg338;>338
-DRWP
+CD6
 Enumerator name with linkage used as class name in other translation unit
 Unknown
   
@@ -2198,7 +2198,7 @@
   
   
 https://wg21.link/cwg360;>360
-DRWP
+CD6
 Using-declaration that reduces access
 Unknown
   
@@ -2354,7 +2354,7 @@
   
   
 https://wg21.link/cwg386;>386
-DRWP
+CD6
 Friend declaration of name brought in by using-declaration
 Unknown
   
@@ -2432,7 +2432,7 @@
   
   
 https://wg21.link/cwg399;>399
-DRWP
+CD6
 Destructor lookup redux
 Unknown
   
@@ -2468,7 +2468,7 @@
   
   
 https://wg21.link/cwg405;>405
-DRWP
+CD6
 Unqualified function name lookup
 Unknown
   
@@ -2504,7 +2504,7 @@
   
   
 https://wg21.link/cwg411;>411
-WP
+CD6
 Use of universal-character-name in character versus string literals
 Unknown
   
@@ -2546,7 +2546,7 @@
   
   
 https://wg21.link/cwg418;>418
-DRWP
+CD6
 Imperfect wording on error on multiple default arguments on a called function
 Unknown
   
@@ -2766,11 +2766,11 @@
 When is a definition of a static data member required?
 Unknown
   
-  
+  
 https://wg21.link/cwg455;>455
-open
+NAD
 Partial ordering and non-deduced arguments
-Not resolved
+Unknown
   
   
 https://wg21.link/cwg456;>456
@@ -3254,7 +3254,7 @@
   
   
 https://wg21.link/cwg536;>536
-DRWP
+CD6
 Problems in the description of id-expressions
 Unknown
   
@@ -3364,7 +3364,7 @@
   
   
 https://wg21.link/cwg554;>554
-DRWP
+CD6
 Definition of declarative region and scope
 Unknown
   
@@ -3412,13 +3412,13 @@
   
   
 https://wg21.link/cwg562;>562
-DRWP
+CD6
 qualified-ids in non-expression contexts
 Unknown
   
   
 https://wg21.link/cwg563;>563
-DRWP
+CD6
 Linkage specification for objects
 Unknown
   
@@ -3506,11 +3506,11 @@
 void in an empty parameter list
 Yes
   
-  
+  
 https://wg21.link/cwg578;>578
-review
+CD6
 Phase 1 replacement of characters with universal-character-names
-Not resolved
+Unknown
   
   
 https://wg21.link/cwg579;>579
@@ -3640,7 +3640,7 @@
   
   
 https://wg21.link/cwg600;>600
-DRWP
+CD6
 Does access control apply to members or to names?
 Unknown
   
@@ -3682,7 +3682,7 @@
   
   
 https://wg21.link/cwg607;>607
-DRWP
+CD6
 Lookup of mem-initializer-ids
 Unknown
   
@@ -4760,11 +4760,11 @@
 Use of class members during destruction
 Unknown
   
-  
+  
 https://wg21.link/cwg794;>794
-extension
+NAD
 Base-derived conversion in 

[PATCH] D138822: [clang] Add test for CWG36

2022-11-28 Thread Erich Keane via Phabricator via cfe-commits
erichkeane added a comment.

BTW, I suspect you're close enough to ask for commit rights, and I'd prefer to 
not have to commit too many things for you, so please go through this 
procedure: https://llvm.org/docs/DeveloperPolicy.html#obtaining-commit-access


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D138822: [clang] Add test for CWG36

2022-11-28 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added a comment.

In D138822#3954104 , @Endill wrote:

> Sure, I'll update core issue list in a separate diff.

Thanks!

> I don't have commit rights, but I have a commit merged (just one). Does it 
> make me eligible for that?

Not quite yet but I'm guessing by the time we're getting started with accepting 
these tests we'll have you ask for commit privileges. For the moment, I'd 
recommend making a separate patch and uploading it for (what should be a very 
quick) review and one of us can land that for you.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D138822: [clang] Add test for CWG36

2022-11-28 Thread Vlad Serebrennikov via Phabricator via cfe-commits
Endill added a comment.

Sure, I'll update core issue list in a separate diff.
I don't have commit rights, but I have a commit merged (just one). Does it make 
me eligible for that?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D138822: [clang] Add test for CWG36

2022-11-28 Thread Corentin Jabot via Phabricator via cfe-commits
cor3ntin added a comment.

Could you make a separate pull request for updating the core issue list (I 
didn't know it had been updated recently)?
Or, i think you could commit the update of the core issue list directly (do you 
have commit rights?) and then work on the DR.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D138822/new/

https://reviews.llvm.org/D138822

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D138822: [clang] Add test for CWG36

2022-11-28 Thread Vlad Serebrennikov via Phabricator via cfe-commits
Endill created this revision.
Endill added a project: clang-language-wg.
Herald added a project: All.
Endill requested review of this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.

Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D138822

Files:
  clang/test/CXX/drs/dr0xx.cpp
  clang/www/cxx_dr_status.html
  clang/www/make_cxx_dr_status

Index: clang/www/make_cxx_dr_status
===
--- clang/www/make_cxx_dr_status
+++ clang/www/make_cxx_dr_status
@@ -158,7 +158,7 @@
 # This refers to the old ("C++0x") concepts feature, which was not part
 # of any C++ International Standard or Technical Specification.
 continue
-  if dr.issue in (1432,2565):
+  if dr.issue in (2565, 2628):
 row_style = ' class="open"'
 avail, avail_style = availability(dr.issue)
   elif dr.status in ('open', 'concurrency', 'drafting', 'review', 'extension'):
Index: clang/www/cxx_dr_status.html
===
--- clang/www/cxx_dr_status.html
+++ clang/www/cxx_dr_status.html
@@ -252,9 +252,9 @@
   
   
 https://wg21.link/cwg36;>36
-DRWP
+CD6
 using-declarations in multiple-declaration contexts
-Unknown
+Yes
   
   
 https://wg21.link/cwg37;>37
@@ -696,7 +696,7 @@
   
   
 https://wg21.link/cwg110;>110
-DRWP
+CD6
 Can template functions and classes be declared in the same scope?
 Unknown
   
@@ -864,7 +864,7 @@
   
   
 https://wg21.link/cwg138;>138
-DRWP
+CD6
 Friend declaration name lookup
 Unknown
   
@@ -1056,7 +1056,7 @@
   
   
 https://wg21.link/cwg170;>170
-open
+review
 Pointer-to-member conversions
 Not resolved
   
@@ -1182,7 +1182,7 @@
   
   
 https://wg21.link/cwg191;>191
-DRWP
+CD6
 Name lookup does not handle complex nesting
 Unknown
   
@@ -1567,7 +1567,7 @@
   
   
 https://wg21.link/cwg255;>255
-DRWP
+CD6
 Placement deallocation functions and lookup ambiguity
 Unknown
   
@@ -1664,7 +1664,7 @@
   
   
 https://wg21.link/cwg271;>271
-DRWP
+CD6
 Explicit instantiation and template argument deduction
 Unknown
   
@@ -1712,7 +1712,7 @@
   
   
 https://wg21.link/cwg279;>279
-DRWP
+CD6
 Correspondence of "names for linkage purposes"
 Unknown
   
@@ -2066,7 +2066,7 @@
   
   
 https://wg21.link/cwg338;>338
-DRWP
+CD6
 Enumerator name with linkage used as class name in other translation unit
 Unknown
   
@@ -2198,7 +2198,7 @@
   
   
 https://wg21.link/cwg360;>360
-DRWP
+CD6
 Using-declaration that reduces access
 Unknown
   
@@ -2354,7 +2354,7 @@
   
   
 https://wg21.link/cwg386;>386
-DRWP
+CD6
 Friend declaration of name brought in by using-declaration
 Unknown
   
@@ -2432,7 +2432,7 @@
   
   
 https://wg21.link/cwg399;>399
-DRWP
+CD6
 Destructor lookup redux
 Unknown
   
@@ -2468,7 +2468,7 @@
   
   
 https://wg21.link/cwg405;>405
-DRWP
+CD6
 Unqualified function name lookup
 Unknown
   
@@ -2504,7 +2504,7 @@
   
   
 https://wg21.link/cwg411;>411
-WP
+CD6
 Use of universal-character-name in character versus string literals
 Unknown
   
@@ -2546,7 +2546,7 @@
   
   
 https://wg21.link/cwg418;>418
-DRWP
+CD6
 Imperfect wording on error on multiple default arguments on a called function
 Unknown
   
@@ -2766,11 +2766,11 @@
 When is a definition of a static data member required?
 Unknown
   
-  
+  
 https://wg21.link/cwg455;>455
-open
+NAD
 Partial ordering and non-deduced arguments
-Not resolved
+Unknown
   
   
 https://wg21.link/cwg456;>456
@@ -3254,7 +3254,7 @@
   
   
 https://wg21.link/cwg536;>536
-DRWP
+CD6
 Problems in the description of id-expressions
 Unknown
   
@@ -3364,7 +3364,7 @@
   
   
 https://wg21.link/cwg554;>554
-DRWP
+CD6
 Definition of declarative region and scope
 Unknown
   
@@ -3412,13 +3412,13 @@
   
   
 https://wg21.link/cwg562;>562
-DRWP
+CD6
 qualified-ids in non-expression contexts
 Unknown
   
   
 https://wg21.link/cwg563;>563
-DRWP
+CD6
 Linkage specification for objects
 Unknown
   
@@ -3506,11 +3506,11 @@
 void in an empty parameter list
 Yes
   
-  
+  
 https://wg21.link/cwg578;>578
-review
+CD6
 Phase 1 replacement of characters with universal-character-names
-Not resolved
+Unknown
   
   
 https://wg21.link/cwg579;>579
@@ -3640,7 +3640,7 @@
   
   
 https://wg21.link/cwg600;>600
-DRWP
+CD6
 Does access control apply to members or to names?
 Unknown
   
@@ -3682,7 +3682,7 @@
   
   
 https://wg21.link/cwg607;>607
-DRWP
+CD6
 Lookup of mem-initializer-ids
 Unknown
   
@@ -4760,11 +4760,11 @@
 Use of class members