llvm-project/clang/test/CXX
Richard Smith 7ae1b4a0ce Implement P1766R1: diagnose giving non-C-compatible classes a typedef name for linkage purposes.
Summary:
Due to a recent (but retroactive) C++ rule change, only sufficiently
C-compatible classes are permitted to be given a typedef name for
linkage purposes. Add an enabled-by-default warning for these cases, and
rephrase our existing error for the case where we encounter the typedef
name for linkage after we've already computed and used a wrong linkage
in terms of the new rule.

Reviewers: rjmccall

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D74103
2020-02-07 11:47:37 -08:00
..
basic When diagnosing the lack of a viable conversion function, also list 2020-01-09 15:15:02 -08:00
class Implement P1766R1: diagnose giving non-C-compatible classes a typedef name for linkage purposes. 2020-02-07 11:47:37 -08:00
class.access Fix implementation of [temp.local]p4. 2019-02-15 21:53:07 +00:00
class.derived [Concepts] Deprecate -fconcepts-ts, enable Concepts under -std=c++2a 2020-01-24 00:48:59 +02:00
conv Specify an explicit underlying type for this enum to fix Windows 2018-06-29 20:41:23 +00:00
cpp PR41192: fix cases where "missing ';' after class" error would 2019-04-16 00:47:45 +00:00
dcl [Concepts] Deprecate -fconcepts-ts, enable Concepts under -std=c++2a 2020-01-24 00:48:59 +02:00
dcl.dcl When diagnosing an ambiguity, only note the candidates that contribute 2019-10-24 14:58:29 -07:00
dcl.decl PR44540: Prefer an inherited default constructor over an initializer 2020-01-14 19:29:50 -08:00
drs Implement P1766R1: diagnose giving non-C-compatible classes a typedef name for linkage purposes. 2020-02-07 11:47:37 -08:00
except [c++20] Compute exception specifications for defaulted comparisons. 2019-12-15 22:02:31 -08:00
expr Revert "[CodeGenModule] Assume dso_local for -fpic -fno-semantic-interposition" 2020-02-03 10:09:39 -08:00
lex [C++20] Implement context-sensitive header-name lexing and pp-import parsing in the preprocessor. 2019-04-11 21:18:23 +00:00
module C++ DR2387: a variable template declared wtih (or instantiated with) a 2019-04-26 01:51:08 +00:00
modules-ts [c++2a] Implement semantic restrictions for 'export' declarations. 2019-04-22 22:50:11 +00:00
over PR44761: Fix fallback to later tiebreakers if two non-template functions 2020-02-04 12:21:42 -08:00
special C++ DR2026: static storage duration variables are not zeroed before 2020-02-06 16:37:22 -08:00
stmt.stmt Refactor the way we handle diagnosing unused expression results. 2019-01-04 16:58:14 +00:00
temp [Concepts] Correctly form initial parameter mapping for parameter packs, support substitution into SubstNonTypeTemplateParmExpr 2020-01-31 15:59:42 +02:00