]> granicus.if.org Git - clang/log
clang
8 years agoDelay emitting members of dllexport classes until the class is fully parsed (PR23542)
Hans Wennborg [Sat, 15 Aug 2015 01:18:16 +0000 (01:18 +0000)]
Delay emitting members of dllexport classes until the class is fully parsed (PR23542)

This enables Clang to correctly handle code such as:

  struct __declspec(dllexport) S {
    int x = 42;
  };

where it would otherwise error due to trying to generate the default
constructor before the in-class initializer for x has been parsed.

Differential Revision: http://reviews.llvm.org/D11850

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

8 years ago[modules] Stop dropping 'module.timestamp' files into the current directory
Richard Smith [Sat, 15 Aug 2015 00:34:15 +0000 (00:34 +0000)]
[modules] Stop dropping 'module.timestamp' files into the current directory
when building with implicit modules disabled.

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

8 years agoclarified test comment
Naomi Musgrave [Fri, 14 Aug 2015 23:22:03 +0000 (23:22 +0000)]
clarified test comment

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

8 years ago[CONCEPTS] Add diagnostic; invalid tag when concept specified
Nathan Wilson [Fri, 14 Aug 2015 23:19:32 +0000 (23:19 +0000)]
[CONCEPTS] Add diagnostic; invalid tag when concept specified

Summary: Adding check to emit diagnostic for invalid tag when concept is specified and associated tests.

Reviewers: rsmith, hubert.reinterpretcast, fraggamuffin, faisalv, aaron.ballman

Subscribers: aaron.ballman, cfe-commits

Differential Revision: http://reviews.llvm.org/D11916

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

8 years ago[analyzer] Add checkers for OS X / iOS localizability issues
Anna Zaks [Fri, 14 Aug 2015 20:22:22 +0000 (20:22 +0000)]
[analyzer] Add checkers for OS X / iOS localizability issues

Add checkers that detect code-level localizability issues for OS X / iOS:
  - A path sensitive checker that warns about uses of non-localized
    NSStrings passed to UI methods expecting localized strings.
  - A syntax checker that warns against not including a comment in
    NSLocalizedString macros.

A patch by Kulpreet Chilana!

(This is the second attempt with the compilation issue on Windows and
the random test failures resolved.)

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

8 years agoWindowsX86: long double is x87DoubleExtended on mingw
Martell Malone [Fri, 14 Aug 2015 19:05:56 +0000 (19:05 +0000)]
WindowsX86: long double is x87DoubleExtended on mingw

    Summary:
    long double on x86 mingw is 80bits and is aligned to 16bytes

Fixes:
    https://llvm.org/bugs/show_bug.cgi?id=24398

    Reviewers: rnk

    Subscribers: cfe-commits

    Differential Revision: http://reviews.llvm.org/D12037

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

8 years agoDon't run explicit-modules-missing-files.cpp on Windows
Reid Kleckner [Fri, 14 Aug 2015 19:03:02 +0000 (19:03 +0000)]
Don't run explicit-modules-missing-files.cpp on Windows

It is flaky due to inability to remove files with open handles.  We
could paper over it with rm -f, but then the file would still be
present.

This is more evidence to me that we should roll our own 'rm'
implementation in LLVM.

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

8 years agoWindows ARM: ignore calling conventions as described on MSDN
Martell Malone [Fri, 14 Aug 2015 18:00:09 +0000 (18:00 +0000)]
Windows ARM: ignore calling conventions as described on MSDN

Summary:
MSDN says that fastcall, stdcall, thiscall, and vectorcall are all
accepted but ignored on ARM and X64.
https://msdn.microsoft.com/en-us/library/984x0h58.aspx

MSDN also says cdecl is also accepted and typically ignored
This patch brings ARM in line with how we ignore them for X64

Reviewers: rnk

Subscribers: compnerd, cfe-commits

Differential Revision: http://reviews.llvm.org/D12034

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

8 years agoRepresent 2 parallel string arrays as one string[][2] array.
Douglas Katzman [Fri, 14 Aug 2015 15:52:12 +0000 (15:52 +0000)]
Represent 2 parallel string arrays as one string[][2] array.

Differential Revision: http://reviews.llvm.org/D11991

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

8 years ago[ASTContext] Call APValue destructors for MaterializedTemporaryValues
David Majnemer [Fri, 14 Aug 2015 14:43:50 +0000 (14:43 +0000)]
[ASTContext] Call APValue destructors for MaterializedTemporaryValues

Hopefully this makes the sanitizer build bot happy.

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

8 years ago[Sema] main can't be declared as global variable, in C++.
Davide Italiano [Fri, 14 Aug 2015 14:13:29 +0000 (14:13 +0000)]
[Sema] main can't be declared as global variable, in C++.

So, we now reject that. We also warn for any external-linkage global
variable named main in C, because it results in undefined behavior.

PR:   24309
Differential Revision: http://reviews.llvm.org/D11658
Reviewed by: rsmith

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

8 years agoclang-format: Don't remove space between #elif and parentheses.
Daniel Jasper [Fri, 14 Aug 2015 12:44:06 +0000 (12:44 +0000)]
clang-format: Don't remove space between #elif and parentheses.

Before:
  #elif(AAAA && BBBB)

After:
  #elif (AAAA && BBBB)

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

8 years ago[OPENMP] Fix for http://llvm.org/PR24371: Assert failure compiling blender 2.75.
Alexey Bataev [Fri, 14 Aug 2015 12:25:37 +0000 (12:25 +0000)]
[OPENMP] Fix for http://llvm.org/PR24371: Assert failure compiling blender 2.75.
blender uses statements expression in condition of the loop under control of the '#pragma omp parallel for'. This condition is used several times in different expressions required for codegen of the loop directive. If there are some variables defined in statement expression, it fires an assert during codegen because of redefinition of the same variables.
We have to rebuild several expression to be sure that all variables are unique.

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

8 years agoFix AST matcher documentation.
Manuel Klimek [Fri, 14 Aug 2015 11:47:51 +0000 (11:47 +0000)]
Fix AST matcher documentation.

Fix a bug in the matcher docs where callExpr(on(...)) was in the examples,
but didn't work (on() only works for memberCallExpr).

Fix a bug in the doc dump script that was introduced in r231575 when
removing a regexp capture without adapting the code that uses the
captures.

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

8 years agoAdd structed way to express command line options in the compilation database.
Manuel Klimek [Fri, 14 Aug 2015 09:55:36 +0000 (09:55 +0000)]
Add structed way to express command line options in the compilation database.

Currently, arguments are passed via the string attribute 'command',
assuming a shell-escaped / quoted command line to extract the original
arguments. This works well enough on Unix systems, but turns out to be
problematic for Windows tools to generate.

This CL adds a new attribute 'arguments', an array of strings, which
specifies the exact command line arguments. If 'arguments' is available
in the compilation database, it is preferred to 'commands'.

Currently there is no plan to retire 'commands': there are enough
different use cases where users want to create their own mechanism for
creating compilation databases, that it doesn't make sense to force them
all to implement shell command line parsing.

Patch by Daniel Dilts.

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

8 years ago[modules] Add an experimental -cc1 feature to embed the contents of an input
Richard Smith [Fri, 14 Aug 2015 05:02:58 +0000 (05:02 +0000)]
[modules] Add an experimental -cc1 feature to embed the contents of an input
file in the .pcm files. This allows a smaller set of files to be sent to a
remote build worker when building with explicit modules (for instance, module
map files need not be sent along with the corresponding precompiled modules).

This doesn't actually make the embedded files visible to header search, so
it's not useful as a packaging format for public header files.

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

8 years agounique_ptrify ConsumedBlockInfo analysis to make it move assignable
David Blaikie [Fri, 14 Aug 2015 01:26:19 +0000 (01:26 +0000)]
unique_ptrify ConsumedBlockInfo analysis to make it move assignable

ConsumedBlockInfo objects were move assigned, but only in a state where
the dtor was a no-op anyway. Subtle and easily could've happened in ways
that wouldn't've been safe - so this change makes it safe no matter what
state the ConsumedBlockInfo object is in.

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

8 years agoThis test was still failing for me after r244925, fix it harder.
Richard Smith [Fri, 14 Aug 2015 00:16:05 +0000 (00:16 +0000)]
This test was still failing for me after r244925, fix it harder.

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

8 years agoWdeprecated: ByrefHelpers are copy constructed by the ::buildByrefHelpers helper...
David Blaikie [Thu, 13 Aug 2015 23:53:09 +0000 (23:53 +0000)]
Wdeprecated: ByrefHelpers are copy constructed by the ::buildByrefHelpers helper, make sure they're safely copyable

Make the copy/move ctors protected and defaulted in the base, make the
derived classes final to avoid exposing any slicing-prone APIs.

Also, while I'm here, simplify the use of buildByrefHelpers by taking
the parameter by value instead of non-const ref. None of the callers
care aobut observing the state after the call.

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

8 years agoAvoid iteration invalidation issues around MaterializedTemporaryExpr
David Majnemer [Thu, 13 Aug 2015 23:50:15 +0000 (23:50 +0000)]
Avoid iteration invalidation issues around MaterializedTemporaryExpr

We risk iterator invalidation issues if we use a DenseMap to hold the
backing storage for an APValue.  Instead, BumpPtrAllocate them and
use APValue * as our DenseMap value.

Also, don't assume that MaterializedGlobalTemporaryMap won't regrow
between when we initially perform a lookup and later on when we actually
try to insert into it.

This fixes PR24289.

Differential Revision: http://reviews.llvm.org/D11629

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

8 years ago[modules] When writing a module file built with -fmodule-map-file-home-is-cwd,
Richard Smith [Thu, 13 Aug 2015 23:47:44 +0000 (23:47 +0000)]
[modules] When writing a module file built with -fmodule-map-file-home-is-cwd,
via a module map found by -fmodule-map-file=, the home directory of the module
is the current working directory, even if that's a different directory on
reload.

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

8 years agoWdeprecated: Ensure CheckNames are copy assignable (used in setCurrentCheckName)...
David Blaikie [Thu, 13 Aug 2015 23:38:46 +0000 (23:38 +0000)]
Wdeprecated: Ensure CheckNames are copy assignable (used in setCurrentCheckName) by removing the unnecessary copy ctor

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

8 years agoRemove test cases, which rely on the default sanitizer blacklists.
Ivan Krasin [Thu, 13 Aug 2015 23:37:28 +0000 (23:37 +0000)]
Remove test cases, which rely on the default sanitizer blacklists.

Summary:
The default blacklists may vary across different architectures and
configurations. It was not wise to include into http://reviews.llvm.org/D11968

Reviewers: chapuni, pcc

Subscribers: cfe-commits, pcc

Differential Revision: http://reviews.llvm.org/D12021

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

8 years agoWdeprecated: Make Filter safely move constructible.
David Blaikie [Thu, 13 Aug 2015 23:15:20 +0000 (23:15 +0000)]
Wdeprecated: Make Filter safely move constructible.

makeFilter returns Filters by value which seems to be only safe when the
copy doesn't occur and RVO kicks in. Make the object safely movable to
support this more reliably.

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

8 years agoWdeprecated: Make the SecKeychainBugVisitor copyable (for the clone support in the...
David Blaikie [Thu, 13 Aug 2015 23:09:18 +0000 (23:09 +0000)]
Wdeprecated: Make the SecKeychainBugVisitor copyable (for the clone support in the CRTP base) my removing the user-declared dtor

The implicit dtor is just as good, and avoid suppressing implicit
copy/move ops.

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

8 years agoFix the MSVC build which cannot manifest default move ops
David Blaikie [Thu, 13 Aug 2015 23:05:58 +0000 (23:05 +0000)]
Fix the MSVC build which cannot manifest default move ops

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

8 years agoWdeprecated: BugReporterVisitors are copied for cloning (BugReporterVisitorImpl)...
David Blaikie [Thu, 13 Aug 2015 22:58:37 +0000 (22:58 +0000)]
Wdeprecated: BugReporterVisitors are copied for cloning (BugReporterVisitorImpl), make sure such copies are safe

Make the copy/move ctors defaulted in the base class and make the
derived classes final to avoid any intermediate hierarchy slicing if
these types were further derived.

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

8 years agoFollow up r244975: The ctors of an abstract class don't need to be protected - the...
David Blaikie [Thu, 13 Aug 2015 22:58:35 +0000 (22:58 +0000)]
Follow up r244975: The ctors of an abstract class don't need to be protected - the object isn't directly constructible/doesn't present a slicing risk

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

8 years agoWdeprecated: CollectReachableSymbolsCallback are move constructed/returned by value...
David Blaikie [Thu, 13 Aug 2015 22:50:09 +0000 (22:50 +0000)]
Wdeprecated: CollectReachableSymbolsCallback are move constructed/returned by value, so make sure they're copy/moveable

(return by value is in ExprEngine::processPointerEscapedOnBind and any
other call to the scanReachableSymbols function template used there)

Protect the special members in the base class to avoid slicing, and make
derived classes final so these special members don't accidentally become
public on an intermediate base which would open up the possibility of
slicing again.

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

8 years agoWdeprecated: RegionBindingsRef are copy constructed, make sure that's safe by removin...
David Blaikie [Thu, 13 Aug 2015 22:33:24 +0000 (22:33 +0000)]
Wdeprecated: RegionBindingsRef are copy constructed, make sure that's safe by removing the unnecessary user-declared copy assignment operator

The user-defined copy assignment looks like it was working around the
presence of a reference member (that probably doesn't change in the copy
assignment cases present in the program). Rather than continuing this - just
change the reference to a pointer and let all the special members be
defined implicitly.

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

8 years agoWdeprecated: PathPieces are copied, make them safely implicitly copyable by removing...
David Blaikie [Thu, 13 Aug 2015 22:23:53 +0000 (22:23 +0000)]
Wdeprecated: PathPieces are copied, make them safely implicitly copyable by removing the unnecessary user declared dtor.

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

8 years agoWdeprecated: StoredDiagnostics are stored in a SmallVector, so make sure they're...
David Blaikie [Thu, 13 Aug 2015 22:20:14 +0000 (22:20 +0000)]
Wdeprecated: StoredDiagnostics are stored in a SmallVector, so make sure they're copy/movable

Removing the no-op dtor makes these objects safely implicitly
copyable/movable/etc.

(& tidy up the ctor, while I'm here)

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

8 years agoclang/test/Frontend/dependency-gen.c: Add explicit -target x86_64-linux-gnu for ...
NAKAMURA Takumi [Thu, 13 Aug 2015 22:17:34 +0000 (22:17 +0000)]
clang/test/Frontend/dependency-gen.c: Add explicit -target x86_64-linux-gnu for -fsanitize.

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

8 years agoWdeprecated: Make BumpVectorContext movable
David Blaikie [Thu, 13 Aug 2015 22:12:21 +0000 (22:12 +0000)]
Wdeprecated: Make BumpVectorContext movable

Turns out the one place that relied on the implicit copy ctor was safe
because it created an object in a state where the dtor was a no-op, but
that's more luck that good management.

Sure up the API by defining move construction and using it, which
implicitly disallows the unreliable copy operations.

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

8 years agoRemoved one too many braces.
Brad Smith [Thu, 13 Aug 2015 22:00:53 +0000 (22:00 +0000)]
Removed one too many braces.

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

8 years ago[SPARC] Fix types of size_t, intptr_t, and ptrdiff_t on OpenBSD.
Brad Smith [Thu, 13 Aug 2015 21:45:57 +0000 (21:45 +0000)]
[SPARC] Fix types of size_t, intptr_t, and ptrdiff_t on OpenBSD.

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

8 years agoFix some coding standard issues and delete a dead conditional.
Eric Christopher [Thu, 13 Aug 2015 21:34:35 +0000 (21:34 +0000)]
Fix some coding standard issues and delete a dead conditional.

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

8 years agoWdeprecated: CommentVerifiers are returned by value, make sure they're correctly...
David Blaikie [Thu, 13 Aug 2015 21:24:08 +0000 (21:24 +0000)]
Wdeprecated: CommentVerifiers are returned by value, make sure they're correctly copy/moveable

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

8 years agoWdeprecated: LambdaScopeInfos are copied in TreeTransform, so make sure they're copyable.
David Blaikie [Thu, 13 Aug 2015 21:23:08 +0000 (21:23 +0000)]
Wdeprecated: LambdaScopeInfos are copied in TreeTransform, so make sure they're copyable.

Partly addressed by r244843, but the explicit dtor in LambdaScopeInfo
was still thwarting the implicit copy ctor. This does remove the key
function from LambdaScopeInfo unfortunately, but it seems neater than
having to explicitly default any special members LambdaScopeInfo needs.

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

8 years agoWdeprecated: Replace deprecated throw() with LLVM_NOEXCEPT which expands to 'noexcept...
David Blaikie [Thu, 13 Aug 2015 21:15:23 +0000 (21:15 +0000)]
Wdeprecated: Replace deprecated throw() with LLVM_NOEXCEPT which expands to 'noexcept' where available (and throw() otherwise)

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

8 years agoFix previous commit: poison only class members, simpler tests
Naomi Musgrave [Thu, 13 Aug 2015 18:35:11 +0000 (18:35 +0000)]
Fix previous commit: poison only class members, simpler tests

Summary: Poisoning applied to only class members, and before dtors for base class invoked

Implement poisoning of only class members in dtor, as opposed to also
poisoning fields inherited from base classes. Members are poisoned
only once, by the last dtor for a class. Skip poisoning if class has
no fields.
Verify emitted code for derived class with virtual destructor sanitizes
its members only once.
Removed patch file containing extraneous changes.

Reviewers: eugenis, kcc

Differential Revision: http://reviews.llvm.org/D11951

Simplified test cases for use-after-dtor

Summary: Simplified test cases to focus on one feature at time.
Tests updated to align with new emission order for sanitizing
callback.

Reviewers: eugenis, kcc

Differential Revision: http://reviews.llvm.org/D12003

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

8 years ago[modules] For explicit module file dependencies, only list direct dependency module...
Richard Smith [Thu, 13 Aug 2015 18:30:25 +0000 (18:30 +0000)]
[modules] For explicit module file dependencies, only list direct dependency module files.

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

8 years agoRemove and forbid raw_svector_ostream::flush() calls.
Yaron Keren [Thu, 13 Aug 2015 18:12:56 +0000 (18:12 +0000)]
Remove and forbid raw_svector_ostream::flush() calls.
After r244870 flush() will only compare two null pointers and return,
doing nothing but wasting run time. The call is not required any more
as the stream and its SmallString are always in sync.

Thanks to David Blaikie for reviewing.

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

8 years agoFix wrong expected test output in r244923.
Richard Smith [Thu, 13 Aug 2015 18:11:20 +0000 (18:11 +0000)]
Fix wrong expected test output in r244923.

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

8 years agoTry to fix the build after r244923
Reid Kleckner [Thu, 13 Aug 2015 18:10:34 +0000 (18:10 +0000)]
Try to fix the build after r244923

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

8 years agoTry to fix new.cpp after r244920 to make it pass
Reid Kleckner [Thu, 13 Aug 2015 18:10:32 +0000 (18:10 +0000)]
Try to fix new.cpp after r244920 to make it pass

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

8 years ago[modules] Change the way we deal with .d output for explicitly-specified module
Richard Smith [Thu, 13 Aug 2015 17:57:10 +0000 (17:57 +0000)]
[modules] Change the way we deal with .d output for explicitly-specified module
files: include the .pcm file itself in the .d output, rather than including its
own input files. Other forms of module file continue to be transparent for .d
output.

Arguably, the input files for the .pcm file are still inputs to the
compilation, but that's unnecessary for make-like build systems (where the
mtime of the .pcm file is sufficient) and harmful for smarter build systems
that know about module files and want to track only the local dependencies.

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

8 years agoTurn off __has_feature(cxx_rtti) when -fno-rtti-data is present
Reid Kleckner [Thu, 13 Aug 2015 17:56:49 +0000 (17:56 +0000)]
Turn off __has_feature(cxx_rtti) when -fno-rtti-data is present

-fno-rtti-data makes it so that vtables emitted in the current TU lack
RTTI data. This means that dynamic_cast usually fails at runtime. Users
of the existing cxx_rtti feature expect all of RTTI to work, not just
some of it.

Chromium bug for context: http://crbug.com/518191

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

8 years agoAttempt to fix build after r244912
Ben Langmuir [Thu, 13 Aug 2015 17:30:07 +0000 (17:30 +0000)]
Attempt to fix build after r244912

Some compilers were less happy about converting a lambda to a comparator
function for array_pod_sort.

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

8 years ago[Modules] Add Darwin-specific compatibility module map parsing hacks
Ben Langmuir [Thu, 13 Aug 2015 17:13:33 +0000 (17:13 +0000)]
[Modules] Add Darwin-specific compatibility module map parsing hacks

This preserves backwards compatibility for two hacks in the Darwin
system module map files:

1. The use of 'requires excluded' to make headers non-modular, which
should really be mapped to 'textual' now that we have this feature.

2. Silently removes a bogus cplusplus requirement from IOKit.avc.

Once we start diagnosing missing requirements and headers on
auto-imports these would have broken compatibility with existing Darwin
SDKs.

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

8 years agoDriver: Fix include directories when not using libgcc under mingw
Martell Malone [Thu, 13 Aug 2015 15:41:04 +0000 (15:41 +0000)]
Driver: Fix include directories when not using libgcc under mingw

Summary:
When we want to use mingw-w64 and clang with compiler-rt we should not
need to have libgcc installed. This fixes finding includes when libgcc
is not installed

Reviewers: yaron.keren

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D11808

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

8 years agoclang-format: Inside decltype(), there is an expression.
Daniel Jasper [Thu, 13 Aug 2015 13:43:51 +0000 (13:43 +0000)]
clang-format: Inside decltype(), there is an expression.

Before:
  decltype(a* b) F();

After:
  decltype(a * b) F();

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

8 years agoclang-format: Fix incorrect lambda-detection.
Daniel Jasper [Thu, 13 Aug 2015 13:37:08 +0000 (13:37 +0000)]
clang-format: Fix incorrect lambda-detection.

Before:
  [ a, a ]() -> a<1>{};

After:
  [a, a]() -> a<1> {};

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

8 years agoRemove raw_svector_ostream::resync and users. It's no-op after r244870.
Yaron Keren [Thu, 13 Aug 2015 12:42:25 +0000 (12:42 +0000)]
Remove raw_svector_ostream::resync and users. It's no-op after r244870.

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

8 years agoRemove superfluous private:, TypeCache is private by default.
Yaron Keren [Thu, 13 Aug 2015 07:12:03 +0000 (07:12 +0000)]
Remove superfluous private:, TypeCache is private by default.

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

8 years agoDisable failing check in bots from r244867.
Yaron Keren [Thu, 13 Aug 2015 06:12:49 +0000 (06:12 +0000)]
Disable failing check in bots from r244867.

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

8 years agoAdd sanitizer blacklists to the rules generated with -M/-MM/-MD/-MMD.
Ivan Krasin [Thu, 13 Aug 2015 04:04:37 +0000 (04:04 +0000)]
Add sanitizer blacklists to the rules generated with -M/-MM/-MD/-MMD.

Summary:
Clang sanitizers, such as AddressSanitizer, ThreadSanitizer, MemorySanitizer,
Control Flow Integrity and others, use blacklists to specify which types / functions
should not be instrumented to avoid false positives or suppress known failures.

This change adds the blacklist filenames to the list of dependencies of the rules,
generated with -M/-MM/-MD/-MMD. This lets CMake/Ninja recognize that certain
C/C++/ObjC files need to be recompiled (if a blacklist is updated).

Reviewers: pcc

Subscribers: rsmith, honggyu.kim, pcc, cfe-commits

Differential Revision: http://reviews.llvm.org/D11968

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

8 years agoUpdate for llvm api change.
Rafael Espindola [Thu, 13 Aug 2015 01:07:06 +0000 (01:07 +0000)]
Update for llvm api change.

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

8 years agoAdd SourceManager::dump() to dump the current set of SLocEntries.
Richard Smith [Thu, 13 Aug 2015 00:45:11 +0000 (00:45 +0000)]
Add SourceManager::dump() to dump the current set of SLocEntries.

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

8 years agoWdeprecated: LambdaScopeInfos need to be copied, so make the ScopeInfo hierarchy...
David Blaikie [Wed, 12 Aug 2015 23:59:02 +0000 (23:59 +0000)]
Wdeprecated: LambdaScopeInfos need to be copied, so make the ScopeInfo hierarchy safely copyable

Making the base class's copy ctor protected and the derived classes
final to avoid any slicing-prone APIs.

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

8 years agoWdeprecated: ApplyDebugLocation is returned by value yet if it is ever copied (rather...
David Blaikie [Wed, 12 Aug 2015 23:49:57 +0000 (23:49 +0000)]
Wdeprecated: ApplyDebugLocation is returned by value yet if it is ever copied (rather than RVO'd) that would be broken, make it movable instead

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

8 years agoWdeprecated: CGBuilderInserter is copy constructed in some contexts - remove the...
David Blaikie [Wed, 12 Aug 2015 23:16:55 +0000 (23:16 +0000)]
Wdeprecated: CGBuilderInserter is copy constructed in some contexts - remove the unnecessarily disabling copy assignment to enable this

The object has very simple state, there seems no reason to disallow all
the usual value semantic operations.

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

8 years ago-Wdeprecated: Job objects are stored in a vector yet are not really copyable, make...
David Blaikie [Wed, 12 Aug 2015 23:09:24 +0000 (23:09 +0000)]
-Wdeprecated: Job objects are stored in a vector yet are not really copyable, make them movable instead

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

8 years ago-Wdeprecated: SavedInstanceContext is returned by value but isn't really copyable...
David Blaikie [Wed, 12 Aug 2015 22:58:10 +0000 (22:58 +0000)]
-Wdeprecated: SavedInstanceContext is returned by value but isn't really copyable, but it can be made movable

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

8 years ago[modules] If loading a .pcm file would cause us to run out of source locations, attem...
Richard Smith [Wed, 12 Aug 2015 22:25:24 +0000 (22:25 +0000)]
[modules] If loading a .pcm file would cause us to run out of source locations, attempt to fail more gracefully. (No test; this requires >= 4GB of preprocessed input...)

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

8 years agoRevert "Implement poisoning of only class members in dtor, as opposed to also poisoni...
Naomi Musgrave [Wed, 12 Aug 2015 22:07:24 +0000 (22:07 +0000)]
Revert "Implement poisoning of only class members in dtor, as opposed to also poisoning fields inherited from base classes."

This reverts commit 8dbbf3578a9a5d063232b59e558e5fe46e2cd42c.
Rolled back due to buildbot failures on 'ninja check-clang'.

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

8 years agoImplement poisoning of only class members in dtor, as opposed to also poisoning field...
Naomi Musgrave [Wed, 12 Aug 2015 21:37:40 +0000 (21:37 +0000)]
Implement poisoning of only class members in dtor, as opposed to also poisoning fields inherited from base classes.
Verify emitted code for derived class with virtual destructor sanitizes its members only once.
Changed emission order for dtor callback, so only the last dtor for a class emits the sanitizing callback, while ensuring that class members are poisoned before base class destructors are invoked.
Skip poisoning of members, if class has no fields.
Removed patch file containing extraneous changes.

Summary: Poisoning applied to only class members, and before dtors for base class invoked

Reviewers: eugenis, kcc

Differential Revision: http://reviews.llvm.org/D11951

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

8 years agoSwitching from an explicit loop to DeleteContainerSeconds; NFC.
Aaron Ballman [Wed, 12 Aug 2015 20:05:18 +0000 (20:05 +0000)]
Switching from an explicit loop to DeleteContainerSeconds; NFC.

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

8 years agoDocs: keep copyright years up-to-date
Hans Wennborg [Wed, 12 Aug 2015 19:45:01 +0000 (19:45 +0000)]
Docs: keep copyright years up-to-date

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

8 years agoOptions.td: Drop trailing space in -fsanitize= help text
Hans Wennborg [Wed, 12 Aug 2015 19:35:05 +0000 (19:35 +0000)]
Options.td: Drop trailing space in -fsanitize= help text

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

8 years agoDocs: update clang-cl command-line documentation
Hans Wennborg [Wed, 12 Aug 2015 19:35:01 +0000 (19:35 +0000)]
Docs: update clang-cl command-line documentation

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

8 years agoRangRangify some more for loops; NFC.
Aaron Ballman [Wed, 12 Aug 2015 19:00:39 +0000 (19:00 +0000)]
RangRangify some more for loops; NFC.

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

8 years agoDon't compare getArchName() to "tce" as a string. NFC.
Douglas Katzman [Wed, 12 Aug 2015 18:36:12 +0000 (18:36 +0000)]
Don't compare getArchName() to "tce" as a string. NFC.

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

8 years agoStop printing macro backtraces that don't help diagnostics.
Richard Trieu [Wed, 12 Aug 2015 18:24:59 +0000 (18:24 +0000)]
Stop printing macro backtraces that don't help diagnostics.

When displaying the macro backtrace, ignore some of the backtraces that do not
provide extra information to the diagnostic.  Typically, if the problem is
entirely contained within a macro argument, the macro expansion is often not
needed.  Also take into account SourceRange's attached to the diagnostic when
selecting which backtraces to ignore.  Two previous test cases have also been
updated.

Patch by Zhengkai Wu, with minor formatting fixes.

Differential Revision: http://reviews.llvm.org/D11778

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

8 years agoReleaseNotes: Small version nbr fix
Hans Wennborg [Wed, 12 Aug 2015 16:40:42 +0000 (16:40 +0000)]
ReleaseNotes: Small version nbr fix

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

8 years agoThe alias.c test now requires arm-registered-target
John Brawn [Wed, 12 Aug 2015 15:55:55 +0000 (15:55 +0000)]
The alias.c test now requires arm-registered-target

This should fix a buildbot failure

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

8 years agoAdd test for PR24379
John Brawn [Wed, 12 Aug 2015 15:15:27 +0000 (15:15 +0000)]
Add test for PR24379

The fix for this is in LLVM but it depends on how clang handles the alias
attribute, so add a test to the clang tests to make sure everything works
together as expected.

Differential Revision: http://reviews.llvm.org/D11980

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

8 years agoThe version of libxml2 required by c-index-test must be at least 2.5.3. Considering...
Aaron Ballman [Wed, 12 Aug 2015 15:01:15 +0000 (15:01 +0000)]
The version of libxml2 required by c-index-test must be at least 2.5.3. Considering that this version was released in 2003, you might think the check a bit ridiculous. Unfortunately, GnuWin32 ships with libxml2 2.4.12, which was released in 2001.

This allows us to have GnuWin32 on the PATH on Windows without causing compilation errors.

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

8 years agoRangify some for loops; NFC.
Aaron Ballman [Wed, 12 Aug 2015 13:38:59 +0000 (13:38 +0000)]
Rangify some for loops; NFC.

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

8 years ago[OPENMP] Fix for http://llvm.org/PR24430: clang hangs on invalid input with openmp...
Alexey Bataev [Wed, 12 Aug 2015 07:10:54 +0000 (07:10 +0000)]
[OPENMP] Fix for http://llvm.org/PR24430: clang hangs on invalid input with openmp directive

Add parsing of openmp directives inside structs/unions in C mode.

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

8 years agolibclang: Add period to typedef kind docblock
Saleem Abdulrasool [Wed, 12 Aug 2015 03:21:44 +0000 (03:21 +0000)]
libclang: Add period to typedef kind docblock

All of the other docblocks for the CXCursor_* cursor kind enum values
include documentation that ends with a period. Add a period to the end
of the CXCursor_TypedefDecl documentation to follow this convention.

Patch by Brian Gesiak!

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

8 years ago[modules] Fix thread safety analysis to cope with merging of FieldDecls across modules.
Richard Smith [Wed, 12 Aug 2015 02:17:52 +0000 (02:17 +0000)]
[modules] Fix thread safety analysis to cope with merging of FieldDecls across modules.

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

8 years agoDeleted old fixme ( ͡° ͜ʖ ͡°)
Piotr Padlewski [Wed, 12 Aug 2015 00:47:19 +0000 (00:47 +0000)]
Deleted old fixme ( ͡° ͜ʖ ͡°)

http://reviews.llvm.org/D11928

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

8 years agoUntabify.
Eric Christopher [Tue, 11 Aug 2015 23:17:31 +0000 (23:17 +0000)]
Untabify.

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

8 years ago[modules] When instantiating the contents of an imported CXXRecordDecl, we can
Richard Smith [Tue, 11 Aug 2015 22:00:24 +0000 (22:00 +0000)]
[modules] When instantiating the contents of an imported CXXRecordDecl, we can
emit lexical contents for a declaration for another module. Track which module
those contents came from, and ensure that we only grab the lexical contents
from a single such instantiation.

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

8 years ago[MIPS] Use arch values for lock-free atomic operations
Petar Jovanovic [Tue, 11 Aug 2015 21:27:39 +0000 (21:27 +0000)]
[MIPS] Use arch values for lock-free atomic operations

Let NaClMips32ELTargetInfo inherit arch values for maximum width lock-free
atomic operations.

Differential Revision: http://reviews.llvm.org/D11949

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

8 years ago[analyzer] Incorrect env variable replaced.
Anton Yartsev [Tue, 11 Aug 2015 21:24:19 +0000 (21:24 +0000)]
[analyzer] Incorrect env variable replaced.

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

8 years agoAdd an assert to catch lexical decl deserialization bugs.
Richard Smith [Tue, 11 Aug 2015 21:21:20 +0000 (21:21 +0000)]
Add an assert to catch lexical decl deserialization bugs.

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

8 years agoFixing a few C++0x comments to be C++11; NFC.
Aaron Ballman [Tue, 11 Aug 2015 21:17:53 +0000 (21:17 +0000)]
Fixing a few C++0x comments to be C++11; NFC.

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

8 years agoAdd missing documentation for conversionDecl; NFC.
Aaron Ballman [Tue, 11 Aug 2015 21:12:46 +0000 (21:12 +0000)]
Add missing documentation for conversionDecl; NFC.

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

8 years agoAdd a polymorphic AST matcher for testing whether a constructor or a conversion decla...
Aaron Ballman [Tue, 11 Aug 2015 21:09:52 +0000 (21:09 +0000)]
Add a polymorphic AST matcher for testing whether a constructor or a conversion declaration is marked as explicit or not.

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

8 years agoAdd an AST matcher to match member intializers of a CXXCtorInitializer.
Aaron Ballman [Tue, 11 Aug 2015 20:42:00 +0000 (20:42 +0000)]
Add an AST matcher to match member intializers of a CXXCtorInitializer.

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

8 years agoclang-format: Make SpaceBeforeParens work with overloaded operators.
Daniel Jasper [Tue, 11 Aug 2015 20:32:24 +0000 (20:32 +0000)]
clang-format: Make SpaceBeforeParens work with overloaded operators.

Patch by Jon Chesterfield, thank you!

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

8 years ago[MSVC Compatibility] Classify ext_ms_cast_fn_obj as DefaultError
David Majnemer [Tue, 11 Aug 2015 19:25:13 +0000 (19:25 +0000)]
[MSVC Compatibility] Classify ext_ms_cast_fn_obj as DefaultError

This non-conforming extension was introduced to make it possible for us
to correctly compile <atomic> in VS 2013 and 2015.  Let's limit its
impact to system headers to encourage portable code.

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

8 years agoRevert "[CUDA] Add implicit __attribute__((used)) to all __global__ functions."
Daniel Jasper [Tue, 11 Aug 2015 11:02:09 +0000 (11:02 +0000)]
Revert "[CUDA] Add implicit __attribute__((used)) to all __global__ functions."

This is breaking internal test. I'll provide a reproduction.

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

8 years agoThis patch fixes the assert in emitting captured code in the target data construct.
Michael Wong [Tue, 11 Aug 2015 04:52:01 +0000 (04:52 +0000)]
This patch fixes the assert in emitting captured code in the target data construct.
This is on behalf of Kelvin Li.
http://reviews.llvm.org/D11475

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

8 years agoPropagate SourceLocations through to get a Loc on float_cast_overflow
Filipe Cabecinhas [Tue, 11 Aug 2015 04:19:28 +0000 (04:19 +0000)]
Propagate SourceLocations through to get a Loc on float_cast_overflow

Summary:
float_cast_overflow is the only UBSan check without a source location attached.
This patch propagates SourceLocations where necessary to get them to the
EmitCheck() call.

Reviewers: rsmith, ABataev, rjmccall

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D11757

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

8 years ago[MSVC Compat] Implement __is_destructible, __is_nothrow_destructible
David Majnemer [Tue, 11 Aug 2015 03:03:28 +0000 (03:03 +0000)]
[MSVC Compat] Implement __is_destructible, __is_nothrow_destructible

Our implementations of these type trait intrinsics simply mapped them to
__has_trivial_destructor.  Instead, flesh these intrinsics out with a
full implementation which matches the standard's description.

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

8 years agoMake the analysis reporting test with x86 to fix the hexagon build.
Tyler Nowicki [Tue, 11 Aug 2015 01:54:48 +0000 (01:54 +0000)]
Make the analysis reporting test with x86 to fix the hexagon build.

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

8 years agoPrint vectorization analysis when loop hint is specified.
Tyler Nowicki [Tue, 11 Aug 2015 01:10:08 +0000 (01:10 +0000)]
Print vectorization analysis when loop hint is specified.

This patche and a related llvm patch solve the problem of having to explicitly enable analysis when specifying a loop hint pragma to get the diagnostics. Passing AlwasyPrint as the pass name (see below) causes the front-end to print the diagnostic if the user has specified '-Rpass-analysis' without an '=<target-pass>’. Users of loop hints can pass that compiler option without having to specify the pass and they will get diagnostics for only those loops with loop hints.

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