Stat system dependencies when using -verify-pch

We don't stat the system headers to check for stalenes during regular
PCH loading for performance reasons.  When explicitly saying
-verify-pch, we want to check all the dependencies - user or system.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200979 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] Just silence all warnings coming out of std::basic_string.

This means always walking the whole call stack for the end path node, but
we'll assume that's always fairly tractable.

<rdar://problem/15952973>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200980 91177308-0d34-0410-b5e6-96231b3b80d8
Fix test from r200979 on non-Darwin systems

Add a darwin triple to get the behaviour from isysroot that the test
expects.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200982 91177308-0d34-0410-b5e6-96231b3b80d8
Objective-C. Revert patch r193003 for further
internal discussions. // rdar://16006401


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200986 91177308-0d34-0410-b5e6-96231b3b80d8
Fix test from r200979 on Windows

Hopefully the last tweak needed to get this test working everywhere.

Remove matching of the prefix of sys_header.h, which was never the point
of the test anyway.  This avoids dealing with path separators.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200987 91177308-0d34-0410-b5e6-96231b3b80d8
Fold together two repeated identical 'if's.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201000 91177308-0d34-0410-b5e6-96231b3b80d8
PR16638, DR1552: the exception specification on an implicitly-declared
'operator delete' or 'operator delete[]' is an explicit exception
specification. Therefore we should diagnose 'void operator delete(void*)'
instead of 'void operator delete(void*) noexcept'.

This diagnostic remains an ExtWarn, since in practice people don't always
include the exception specification in such a declaration.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201002 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] Objective-C object literals are always non-nil.

<rdar://problem/15999214>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201007 91177308-0d34-0410-b5e6-96231b3b80d8
ASTUnit: remove dead code in remapping files

ASTUnit contains code to remap files to other files on disk.  This code is not
used.  We only remap files to MemoryBuffers.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201010 91177308-0d34-0410-b5e6-96231b3b80d8
Remove the -fhidden-weak-vtables -cc1 option.  It was dead,
gross, and increasingly replaced through other mechanisms.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201011 91177308-0d34-0410-b5e6-96231b3b80d8
Fix lifetime issue causing buildbot failures.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201012 91177308-0d34-0410-b5e6-96231b3b80d8
MS ABI: Use the most recent decl to check the inheritance model

This was crashing compilation of DeclContext::buildLookupImpl<>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201013 91177308-0d34-0410-b5e6-96231b3b80d8
clang-cl: Alias /Zi and /Z7 to -gline-tables-only

LLVM only knows how to emit Z7-style line tables on -win32, so there's
no reason for clang to emit anything other than line info.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201017 91177308-0d34-0410-b5e6-96231b3b80d8
PR18581: Attempt to complete the type in a VLA declaration before checking
whether it's POD.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201018 91177308-0d34-0410-b5e6-96231b3b80d8
Move the -fms-compatibility using decl check after real access checking

Summary:
This avoids false positives from -Wmicrosoft when name lookup would
normally succeed in standard C++.  This triggered on a common CRTP
pattern in clang, where a derived class would have a private using decl
to pull in members of a dependent base:

class Verifier : InstVisitor<Verifier> {
private:
  using InstVisitor<Verifier>::visit;
  ...
  void anything() {
    visit(); // warned here
  }
};

Real access checks pass here because we're in the context of the
Verifier, but the -Wmicrosoft extension was just looking for the private
access specifier.

Reviewers: rsmith

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D2679

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201019 91177308-0d34-0410-b5e6-96231b3b80d8
type_info objects are not unnamed_addr: the ABI requires us to
unique them and permits the implementation of dynamic_cast (and
anything else which knows it's working with a complete class
type) to compare their addresses directly.

rdar://16005328

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201020 91177308-0d34-0410-b5e6-96231b3b80d8
PR16519, PR18009: When checking a partial specialization for uses of its own
template parameters, don't look for parameters of outer templates. If a problem
is found in a default template argument, point the diagnostic at the partial
specialization (with a note pointing at the default argument) instead of
pointing it at the default argument and leaving it unclear which partial
specialization os problematic.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201031 91177308-0d34-0410-b5e6-96231b3b80d8
Preprocessor: Add __ALIGNOF_MAX_ALIGN_T__

TargetInfo::getSuitableAlign() was introduced in r146762 and is defined
as alignof(std::max_align_t).

Introduce __ALIGNOF_MAX_ALIGN_T__ which exposes getSuitableAlign() so
that libc++ may take advantage of it.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201037 91177308-0d34-0410-b5e6-96231b3b80d8
Improve diagnostic for using non-class/namespace/scoped enum in a nested name specifier.

Rather than simply saying "X is not a class or namespace", clarify what
X is by providing the aka type in the case where X is a type, or
pointing to the named declaration if there's an unambiguous one to refer
to. In the ambiguous case, the ambiguities are already enumerated
(though could be clarified by describing what kind of entities they are)

Included a few FIXMEs in tests where some further improvements could be
made.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201038 91177308-0d34-0410-b5e6-96231b3b80d8
Clarify comment. Remove braces from single-statement block.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201040 91177308-0d34-0410-b5e6-96231b3b80d8