llvm-project/clang/test/CXX/basic
Reid Kleckner 1a4ab7e772 Improve error message when referencing a non-tag type with a tag
Other compilers accept invalid code here that we reject, and we need a
better error message to try to convince users that the code is really
incorrect. Consider:
  class Foo {
    typedef MyIterHelper<Foo> iterator;
    friend class iterator;
  };

Previously our wording was "elaborated type refers to a typedef".
"elaborated type" isn't widely known terminology, so the new diagnostic
says "typedef 'iterator' cannot be referenced with class specifier".

Reviewers: rsmith

Differential Revision: https://reviews.llvm.org/D25216

llvm-svn: 289259
2016-12-09 19:47:58 +00:00
..
basic.def Implement C++17 P0386R2, inline variables. (The 'inline' specifier gives a 2016-06-25 00:15:56 +00:00
basic.def.odr
basic.link
basic.lookup Improve error message when referencing a non-tag type with a tag 2016-12-09 19:47:58 +00:00
basic.scope [Lit Test] Updated 34 Lit tests to be C++11 compatible. 2015-11-17 20:25:05 +00:00
basic.start [Sema] main can't be declared as global variable, in C++. 2015-08-14 14:13:29 +00:00
basic.stc/basic.stc.dynamic Re-commit r283722, reverted in r283750, with a fix for a CUDA-specific use of 2016-10-10 18:54:32 +00:00
basic.types P0136R1, DR1573, DR1645, DR1715, DR1736, DR1903, DR1941, DR1959, DR1991: 2016-06-28 19:03:57 +00:00