Vendor import of clang RELEASE_34/final tag r197956 (effectively, 3.4 release):
https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_34/final@197956
This commit is contained in:
parent
952eddef9a
commit
fcddf668e7
@ -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.
|
||||
|
@ -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"));
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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'}}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user