llvm-project/clang/test/Parser/cxx2c-variadic-friends-ext-diags.cpp
Sirraide 2b0a8fcf70
[Clang] Implement C++26’s P2893R3 ‘Variadic friends’ (#101448)
Implement P2893R3 ‘Variadic friends’ for C++26.

This closes #98587.

Co-authored-by: Younan Zhang <zyn7109@gmail.com>
2024-08-15 21:16:30 +02:00

17 lines
914 B
C++

// RUN: %clang_cc1 -std=c++2c -verify=compat -fsyntax-only -Wpre-c++26-compat %s
// RUN: %clang_cc1 -std=c++11 -verify=pre2c -fsyntax-only -Wc++26-extensions %s
struct S {
friend int, long, char; // compat-warning {{variadic 'friend' declarations are incompatible with C++ standards before C++2c}} \
// pre2c-warning {{variadic 'friend' declarations are a C++2c extension}}
};
template <typename ...Types>
struct TS {
friend Types...; // compat-warning {{variadic 'friend' declarations are incompatible with C++ standards before C++2c}} \
// pre2c-warning {{variadic 'friend' declarations are a C++2c extension}}
friend int, Types..., Types...; // compat-warning {{variadic 'friend' declarations are incompatible with C++ standards before C++2c}} \
// pre2c-warning {{variadic 'friend' declarations are a C++2c extension}}
};