diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2014-01-01 00:37:42 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2014-01-01 00:37:42 +0000 |
commit | 33fa48314f06936f83859852feb3c0ce68b08c0c (patch) | |
tree | 6093927642346f0672b480cbc4b6c2a1b26b8a64 | |
parent | bfef399519ca9b8a4b4c6b563253bad7e0eeffe0 (diff) |
Vendor import of clang RELEASE_34/final tag r197956 (effectively, 3.4 release):vendor/clang/clang-release_34-r197956
Notes
Notes:
svn path=/vendor/clang/dist/; revision=260148
svn path=/vendor/clang/clang-release_34-r197956/; revision=260149; tag=vendor/clang/clang-release_34-r197956
-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 ec0dbffed079..453110e650aa 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 4a2b1fccb24e..77e4ad5bc4aa 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 16d06d7d152c..dd29f99ffc71 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 b5b09484ad9e..4bed2570fcba 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'}} +} |