diff options
-rw-r--r-- | docs/ReleaseNotes.rst | 29 | ||||
-rw-r--r-- | lib/Basic/Version.cpp | 2 | ||||
-rw-r--r-- | lib/Parse/ParseDeclCXX.cpp | 8 | ||||
-rw-r--r-- | test/Parser/recovery.cpp | 6 |
4 files changed, 28 insertions, 17 deletions
diff --git a/docs/ReleaseNotes.rst b/docs/ReleaseNotes.rst index ec0dbff..453110e 100644 --- a/docs/ReleaseNotes.rst +++ b/docs/ReleaseNotes.rst @@ -18,23 +18,22 @@ documentation <http://llvm.org/docs/ReleaseNotes.html>`_. All LLVM releases may be downloaded from the `LLVM releases web site <http://llvm.org/releases/>`_. -For more information about Clang or LLVM, including information about -the latest release, please check out the main `Clang Web -Site <http://clang.llvm.org>`_ or the `LLVM Web -Site <http://llvm.org>`_. +For more information about Clang or LLVM, including information about the +latest release, please check out the main `Clang Web Site +<http://clang.llvm.org>`_ or the `LLVM Web Site <http://llvm.org>`_. -Note that if you are reading this file from a Subversion checkout or the -main Clang web page, this document applies to the *next* release, not -the current one. To see the release notes for a specific release, please -see the `releases page <http://llvm.org/releases/>`_. +Note that if you are reading this file from a Subversion checkout or the main +Clang web page, this document applies to the *next* release, not the current +one. To see the release notes for a specific release, please see the `releases +page <http://llvm.org/releases/>`_. What's New in Clang 3.4? ======================== -Some of the major new features and improvements to Clang are listed -here. Generic improvements to Clang as a whole or to its underlying -infrastructure are described first, followed by language-specific -sections with improvements to Clang's support for those languages. +Some of the major new features and improvements to Clang are listed here. +Generic improvements to Clang as a whole or to its underlying infrastructure +are described first, followed by language-specific sections with improvements +to Clang's support for those languages. Last release which will build as C++98 -------------------------------------- @@ -58,9 +57,9 @@ Major New Features Improvements to Clang's diagnostics ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Clang's diagnostics are constantly being improved to catch more issues, -explain them more clearly, and provide more accurate source information -about them. The improvements since the 3.3 release include: +Clang's diagnostics are constantly being improved to catch more issues, explain +them more clearly, and provide more accurate source information about them. The +improvements since the 3.3 release include: - -Wheader-guard warns on mismatches between the #ifndef and #define lines in a header guard. diff --git a/lib/Basic/Version.cpp b/lib/Basic/Version.cpp index 4a2b1fc..77e4ad5 100644 --- a/lib/Basic/Version.cpp +++ b/lib/Basic/Version.cpp @@ -36,7 +36,7 @@ std::string getClangRepositoryPath() { // If the SVN_REPOSITORY is empty, try to use the SVN keyword. This helps us // pick up a tag in an SVN export, for example. - StringRef SVNRepository("$URL: https://llvm.org/svn/llvm-project/cfe/branches/release_34/lib/Basic/Version.cpp $"); + StringRef SVNRepository("$URL: https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_34/final/lib/Basic/Version.cpp $"); if (URL.empty()) { URL = SVNRepository.slice(SVNRepository.find(':'), SVNRepository.find("/lib/Basic")); diff --git a/lib/Parse/ParseDeclCXX.cpp b/lib/Parse/ParseDeclCXX.cpp index 16d06d7..dd29f99 100644 --- a/lib/Parse/ParseDeclCXX.cpp +++ b/lib/Parse/ParseDeclCXX.cpp @@ -1427,7 +1427,13 @@ void Parser::ParseClassSpecifier(tok::TokenKind TagTokKind, << DeclSpec::getSpecifierName(TagType); } - SkipUntil(tok::comma, StopAtSemi); + // If we are parsing a definition and stop at a base-clause, continue on + // until the semicolon. Continuing from the comma will just trick us into + // thinking we are seeing a variable declaration. + if (TUK == Sema::TUK_Definition && Tok.is(tok::colon)) + SkipUntil(tok::semi, StopBeforeMatch); + else + SkipUntil(tok::comma, StopAtSemi); return; } diff --git a/test/Parser/recovery.cpp b/test/Parser/recovery.cpp index b5b0948..4bed257 100644 --- a/test/Parser/recovery.cpp +++ b/test/Parser/recovery.cpp @@ -119,3 +119,9 @@ void MissingSemiInFunction() { struct Inner4 {} // ok, no missing ';' here Inner5; } + +namespace PR17084 { +enum class EnumID {}; +template <typename> struct TempID; +template <> struct TempID<BadType> : BadType, EnumID::Garbage; // expected-error{{use of undeclared identifier 'BadType'}} +} |