]> granicus.if.org Git - clang/log
clang
11 years ago[analyzer] Fix a crash in RetainCountChecker - we should not rely on CallEnter::getCa...
Anna Zaks [Thu, 25 Apr 2013 00:41:32 +0000 (00:41 +0000)]
[analyzer] Fix a crash in RetainCountChecker - we should not rely on CallEnter::getCallExpr to return non-NULL

We get a CallEnter with a null expression, when processing a destructor. All other users of
CallEnter::getCallExpr work fine with null as return value.

(Addresses PR15832, Thanks to Jordan for reducing the test case!)

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

11 years ago[neonemitter tests] Change triple of emitted tests to thumbv7s to match the target...
Michael Gottesman [Thu, 25 Apr 2013 00:10:14 +0000 (00:10 +0000)]
[neonemitter tests] Change triple of emitted tests to thumbv7s to match the target cpu being swift. Also specify the target-abi to apcs-gnu.

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

11 years agoObjective-C parsing [qoi]: Recover gracefully with good diagnostic
Fariborz Jahanian [Wed, 24 Apr 2013 23:23:47 +0000 (23:23 +0000)]
Objective-C parsing [qoi]: Recover gracefully with good diagnostic
when class implementation declaration adds protocol qualifier
list. // rdar://12233858

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

11 years agoObjective-C arc: Improve disgnostics when 'weak'
Fariborz Jahanian [Wed, 24 Apr 2013 19:13:05 +0000 (19:13 +0000)]
Objective-C arc: Improve disgnostics when 'weak'
property cannot be synthesized because its backing
ivar does not support weak references.
// rdar://13676793

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

11 years agoRemoving example-dynarray.cpp test since it's of no value.
Jyotsna Verma [Wed, 24 Apr 2013 18:44:44 +0000 (18:44 +0000)]
Removing example-dynarray.cpp test since it's of no value.

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

11 years ago[driver] Test that last option wins between -Ofast and -O2.
Chad Rosier [Wed, 24 Apr 2013 18:43:57 +0000 (18:43 +0000)]
[driver] Test that last option wins between -Ofast and -O2.
Part of rdar://13622687

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

11 years ago[driver] Put -fvectorize under the -Ofast umbrella flag.
Chad Rosier [Wed, 24 Apr 2013 18:29:59 +0000 (18:29 +0000)]
[driver] Put -fvectorize under the -Ofast umbrella flag.
Part of rdar://13622687

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

11 years ago[driver] Improve the implementation of the -Ofast option.
Chad Rosier [Wed, 24 Apr 2013 18:09:54 +0000 (18:09 +0000)]
[driver] Improve the implementation of the -Ofast option.

Specifically, allow the flags that fall under this umbrella (i.e., -O3,
-ffast-math, and -fstrict-aliasing) to be overridden/disabled with the
individual -O[0|1|2|s|z]/-fno- flags.

This also fixes the handling of various floating point optimization
flags that are modified by -ffast-math (and thus -Ofast as well).
Part of rdar://13622687

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

11 years ago[driver] Add a hasFlag API that accepts a positive alias.
Chad Rosier [Wed, 24 Apr 2013 18:01:26 +0000 (18:01 +0000)]
[driver] Add a hasFlag API that accepts a positive alias.
Part of rdar://13622687

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

11 years agoObjective-C: When reporting on missing property accessor implementation in
Fariborz Jahanian [Wed, 24 Apr 2013 17:06:38 +0000 (17:06 +0000)]
Objective-C: When reporting on missing property accessor implementation in
categories, do not report when they are declared in primary class,
class's protocol, or one of it super classes. This is because,
its class is going to implement them. // rdar://13713098

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

11 years agoFlip flag to merge short if-statements into one line for Google style.
Daniel Jasper [Wed, 24 Apr 2013 13:46:00 +0000 (13:46 +0000)]
Flip flag to merge short if-statements into one line for Google style.

This now allows clang-format to do:
if (a) return;

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

11 years agoclang-format support for multiple input files.
Alexander Kornienko [Wed, 24 Apr 2013 12:46:44 +0000 (12:46 +0000)]
clang-format support for multiple input files.

Summary:
Added support for multiple input files, that can be used both with and
without in-place edit (-i) option. Added checks for -offset and -length options:
don't allow them on multiple files, check that they don't fall outside input
file, made both options unsigned, so that there's no need to check for negative
values. Removed "-1 can be used for end-of-file" from -length description.

Reviewers: djasper, klimek

Reviewed By: djasper

CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D719

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

11 years ago[analyzer] Refactoring + explanatory comment.
Anton Yartsev [Wed, 24 Apr 2013 10:24:38 +0000 (10:24 +0000)]
[analyzer] Refactoring + explanatory comment.

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

11 years agoRelease note the change to clang_CXCursorSet_contains().
Ted Kremenek [Wed, 24 Apr 2013 07:33:52 +0000 (07:33 +0000)]
Release note the change to clang_CXCursorSet_contains().

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

11 years agoFix typo in comparison in clang_CXCursorSet_contains().
Ted Kremenek [Wed, 24 Apr 2013 07:25:40 +0000 (07:25 +0000)]
Fix typo in comparison in clang_CXCursorSet_contains().

Fixes PR 10124.

Patch by Jens Kilian.

Thanks to Nikola Smiljanic for following up.

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

11 years agoRevert "Remove CXCursorSet and related APIs. There are no known clients."
Ted Kremenek [Wed, 24 Apr 2013 07:17:12 +0000 (07:17 +0000)]
Revert "Remove CXCursorSet and related APIs.  There are no known clients."

Apparently there are...

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

11 years agoAdd test case for -Wdeprecated-objc-pointer-introspection, and
Ted Kremenek [Wed, 24 Apr 2013 06:52:20 +0000 (06:52 +0000)]
Add test case for -Wdeprecated-objc-pointer-introspection, and
tweak warning to suggest that it is just a bad thing to do.

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

11 years agoRemove CXCursorSet and related APIs. There are no known clients.
Ted Kremenek [Wed, 24 Apr 2013 06:52:14 +0000 (06:52 +0000)]
Remove CXCursorSet and related APIs.  There are no known clients.

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

11 years agoFix comment alignment behavior.
Daniel Jasper [Wed, 24 Apr 2013 06:33:59 +0000 (06:33 +0000)]
Fix comment alignment behavior.

In the following snippet, clang-format incorrectly aligned the
trailing comment, when only the last line was formatted:

  int aaaaaa; // comment
  int b;
  int c; // Formatting only this line moved this comment.

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

11 years agoAdd some more required SPARC v9 predefined macros.
Jakob Stoklund Olesen [Wed, 24 Apr 2013 04:36:38 +0000 (04:36 +0000)]
Add some more required SPARC v9 predefined macros.

Solaris/AuroraUX only need __arch64__, the BSDs need the other variants.

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

11 years ago[analyzer] IvarInvalidation: correctly handle cases where only partial invalidators...
Anna Zaks [Wed, 24 Apr 2013 02:49:16 +0000 (02:49 +0000)]
[analyzer] IvarInvalidation: correctly handle cases where only partial invalidators exist

 - If only partial invalidators exist and there are no full invalidators in @implementation, report every ivar that has
not been invalidated. (Previously, we reported the first Ivar in the list, which could actually have been invalidated
by a partial invalidator. The code assumed you cannot have only partial invalidators.)

- Do not report missing invalidation method declaration if a partial invalidation method declaration exists.

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

11 years ago[analyzer] Set the allocation site to be the uniqueing location for retain count...
Anna Zaks [Tue, 23 Apr 2013 23:57:50 +0000 (23:57 +0000)]
[analyzer] Set the allocation site to be the uniqueing location for retain count checker leaks.

The uniqueing location is the location which is part of the hash used to determine if two reports are
the same. This is used by the CmpRuns.py script to compare two analyzer runs and determine which
warnings are new.

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

11 years ago[analyzer] Refactor BugReport::getLocation and PathDiagnosticLocation::createEndOfPat...
Anna Zaks [Tue, 23 Apr 2013 23:57:43 +0000 (23:57 +0000)]
[analyzer] Refactor BugReport::getLocation and PathDiagnosticLocation::createEndOfPath for greater code reuse

The 2 functions were computing the same location using different logic (each one had edge case bugs that the other
one did not). Refactor them to rely on the same logic.

The location of the warning reported in text/command line output format will now match that of the plist file.

There is one change in the plist output as well. When reporting an error on a BinaryOperator, we use the location of the
operator instead of the beginning of the BinaryOperator expression. This matches our output on command line and
looks better in most cases.

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

11 years agoUpdate checker build.
Ted Kremenek [Tue, 23 Apr 2013 23:55:03 +0000 (23:55 +0000)]
Update checker build.

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

11 years ago[libclang] Introduce a CXCursor_ObjCSelfExpr cursor, which is the equivalent of CXCur...
Argyrios Kyrtzidis [Tue, 23 Apr 2013 17:57:17 +0000 (17:57 +0000)]
[libclang] Introduce a CXCursor_ObjCSelfExpr cursor, which is the equivalent of CXCursor_CXXThisExpr for C++ code.

rdar://13717006

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

11 years agoMake compares unsigned. The expression can't become negative anyways.
Benjamin Kramer [Tue, 23 Apr 2013 14:42:47 +0000 (14:42 +0000)]
Make compares unsigned. The expression can't become negative anyways.

Silences a sign compare warning on 32 bit archs.

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

11 years agoFix formatting of complex #if expressions.
Daniel Jasper [Tue, 23 Apr 2013 13:54:04 +0000 (13:54 +0000)]
Fix formatting of complex #if expressions.

Before:
  #if !defined(AAAAAAAAAAAAAAAA) && (defined CCCCCCCC ||                         \
                                     defined DDDDDDDD) && defined(BBBBBBBB)

After:
  #if !defined(AAAAAAAAAAAAAAAA) && (defined CCCCCCCC || defined DDDDDDDD) &&    \
      defined(BBBBBBBB)

This fixes llvm.org/PR15828.

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

11 years agoWarn that scoped enumerations are a C++11 extenstion when compiling in
Richard Trieu [Tue, 23 Apr 2013 02:47:36 +0000 (02:47 +0000)]
Warn that scoped enumerations are a C++11 extenstion when compiling in
C++98 mode.  This improves on the previous diagnostic message of:

error: expected identifier or '{'

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

11 years ago[analyzer] RetainCountChecker: Clean up path notes for autorelease.
Jordan Rose [Tue, 23 Apr 2013 01:42:25 +0000 (01:42 +0000)]
[analyzer] RetainCountChecker: Clean up path notes for autorelease.

No functionality change.

<rdar://problem/13710586>

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

11 years ago[scan-build] Whitelist all -mXXXX options.
Ted Kremenek [Tue, 23 Apr 2013 00:10:55 +0000 (00:10 +0000)]
[scan-build] Whitelist all -mXXXX options.

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

11 years agoWhen modifying an implicit instantiation with information from an explicit one, make...
Argyrios Kyrtzidis [Mon, 22 Apr 2013 23:23:42 +0000 (23:23 +0000)]
When modifying an implicit instantiation with information from an explicit one, make sure to reset the "right brace" location.

Otherwise the source range of the explicit instantiation may become invalid (begin location will be after the end location).

rdar://13706991

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

11 years ago[analyzer] Model strsep(), particularly that it returns its input.
Jordan Rose [Mon, 22 Apr 2013 23:18:42 +0000 (23:18 +0000)]
[analyzer] Model strsep(), particularly that it returns its input.

This handles the false positive leak warning in PR15374, and also serves
as a basic model for the strsep() function.

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

11 years agoAdd triple to tbaa-struct.cpp to appease bots
Manman Ren [Mon, 22 Apr 2013 22:50:27 +0000 (22:50 +0000)]
Add triple to tbaa-struct.cpp to appease bots

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

11 years agoAdd a warning for Objective-C pointer introspection, which is solely the job of the...
Ted Kremenek [Mon, 22 Apr 2013 22:46:52 +0000 (22:46 +0000)]
Add a warning for Objective-C pointer introspection, which is solely the job of the Objective-C runtime.

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

11 years agoRename this test to make it more general for including more tests.
Ted Kremenek [Mon, 22 Apr 2013 22:09:21 +0000 (22:09 +0000)]
Rename this test to make it more general for including more tests.

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

11 years ago[ms-inline asm] Set the OpDecl to the InlineAsmIdentifierInfo struct.
Chad Rosier [Mon, 22 Apr 2013 22:05:00 +0000 (22:05 +0000)]
[ms-inline asm] Set the OpDecl to the InlineAsmIdentifierInfo struct.
Part of rdar://13663589

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

11 years ago[analyzer] Treat reinterpret_cast like a base cast in certain cases.
Jordan Rose [Mon, 22 Apr 2013 21:36:49 +0000 (21:36 +0000)]
[analyzer] Treat reinterpret_cast like a base cast in certain cases.

The analyzer represents all pointer-to-pointer bitcasts the same way, but
this can be problematic if an implicit base cast gets layered on top of a
manual base cast (performed with reinterpret_cast instead of static_cast).
Fix this (and avoid a valid assertion) by looking through cast regions.

Using reinterpret_cast this way is only valid if the base class is at the
same offset as the derived class; this is checked by -Wreinterpret-base-class.
In the interest of performance, the analyzer doesn't repeat this check
anywhere; it will just silently do the wrong thing (use the wrong offsets
for fields of the base class) if the user code is wrong.

PR15394

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

11 years ago[analyzer] Type information from C++ new expressions is perfect.
Jordan Rose [Mon, 22 Apr 2013 21:36:44 +0000 (21:36 +0000)]
[analyzer] Type information from C++ new expressions is perfect.

This improves our handling of dynamic_cast and devirtualization for
objects allocated by 'new'.

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

11 years ago[Mips] Remove "REQUIRES: mips-registered-target" from some MIPS-related
Simon Atanasyan [Mon, 22 Apr 2013 20:26:27 +0000 (20:26 +0000)]
[Mips] Remove "REQUIRES: mips-registered-target" from some MIPS-related
driver tests. These tests check the driver only and do not require mips
target.

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

11 years agoTBAA: make sure zero-length bitfield works for tbaa.struct and path-aware tbaa
Manman Ren [Mon, 22 Apr 2013 19:50:07 +0000 (19:50 +0000)]
TBAA: make sure zero-length bitfield works for tbaa.struct and path-aware tbaa

For ms structs, zero-length bitfields following non-bitfield members are
completely ignored, we should not increase the field index.
Before the fix, we will have an assertion failure.

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

11 years ago[ms-inline asm] Refactor/clean up the SemaLookup interface. No functional
Chad Rosier [Mon, 22 Apr 2013 17:01:37 +0000 (17:01 +0000)]
[ms-inline asm] Refactor/clean up the SemaLookup interface.  No functional
change indended.
Part of rdar://13663589

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

11 years agoMove debug info tests for scoped enums into a separate file.
Adrian Prantl [Mon, 22 Apr 2013 16:47:50 +0000 (16:47 +0000)]
Move debug info tests for scoped enums into a separate file.

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

11 years agoUse the ugly PRIx64 macro to make format string portable.
Benjamin Kramer [Mon, 22 Apr 2013 16:10:38 +0000 (16:10 +0000)]
Use the ugly PRIx64 macro to make format string portable.

This is debugging code so functionality isn't a concern, but mingw32 warns
because it doesn't understand the %llx format specifier.

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

11 years agoC++1y constexpr extensions, round 1: Allow most forms of declaration and
Richard Smith [Mon, 22 Apr 2013 15:31:51 +0000 (15:31 +0000)]
C++1y constexpr extensions, round 1: Allow most forms of declaration and
statement in constexpr functions. Everything which doesn't require variable
mutation is also allowed as an extension in C++11. 'void' becomes a literal
type to support constexpr functions which return 'void'.

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

11 years agocmake: Only add -pedantic if LLVM didn't add it. Don't unconditionally add
Richard Smith [Mon, 22 Apr 2013 14:51:21 +0000 (14:51 +0000)]
cmake: Only add -pedantic if LLVM didn't add it. Don't unconditionally add
-Wall -W, since it's already provided by LLVM's cmake config, and that
overrides fixes (such as -Wno-uninitialized) which LLVM's cmake setup may have
provided.

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

11 years agoFix array constant expression evaluation bug: we can have different values for
Richard Smith [Mon, 22 Apr 2013 14:44:29 +0000 (14:44 +0000)]
Fix array constant expression evaluation bug: we can have different values for
different array elements, even if they're all constructed using the same
default constructor.

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

11 years agoDon't emit _ZTW wrappers for TLS variables which don't use the C++ thread_local keyword.
Richard Smith [Mon, 22 Apr 2013 08:06:17 +0000 (08:06 +0000)]
Don't emit _ZTW wrappers for TLS variables which don't use the C++ thread_local keyword.

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

11 years agoCleanup: test source file does not need to be executable
Arnaud A. de Grandmaison [Mon, 22 Apr 2013 08:00:37 +0000 (08:00 +0000)]
Cleanup: test source file does not need to be executable

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

11 years agoFix bin-packing behavior of constructor initialziers.
Daniel Jasper [Mon, 22 Apr 2013 07:59:53 +0000 (07:59 +0000)]
Fix bin-packing behavior of constructor initialziers.

In Google style, constructor initializers need to be all on one line or
one initializer per line if that does not fit. Without this patch, this
non-bin-packing-behavior incorrectly extends to the parameters of the
initializers.

Before:
Constructor()
    : aaaaa(aaaaaaaaaaaaaaaaaaaaaa,
            aaaaaaaaaaaaaaaaaaaaaa,
            aaaaaaaaaaaaaaaaaaaaaa) {}

After:
Constructor()
    : aaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
            aaaaaaaaaaaaaaaaaaaaaa) {}

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

11 years agoRevert "Revert "PR14606: Debug info for using directives/DW_TAG_imported_module""
David Blaikie [Mon, 22 Apr 2013 06:13:21 +0000 (06:13 +0000)]
Revert "Revert "PR14606: Debug info for using directives/DW_TAG_imported_module""

This reverts commit 179839 now that the corresponding LLVM patch has been fixed.

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

11 years agoAdd a triple to make a test resilient to non-TLS hosts (eg: darwin10)
David Blaikie [Mon, 22 Apr 2013 04:18:25 +0000 (04:18 +0000)]
Add a triple to make a test resilient to non-TLS hosts (eg: darwin10)

Making the test introduced in r179962 resilient to being run on darwin10 hosts.

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

11 years agoFix return type of isBitfield in the binding definition
Dmitri Gribenko [Sun, 21 Apr 2013 18:35:51 +0000 (18:35 +0000)]
Fix return type of isBitfield in the binding definition

Patch by Loïc Jaquemet.

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

11 years ago[Mips] Convert a GNU style Mips ABI name to the name accepted by LLVM
Simon Atanasyan [Sun, 21 Apr 2013 13:30:10 +0000 (13:30 +0000)]
[Mips] Convert a GNU style Mips ABI name to the name accepted by LLVM
Mips backend.

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

11 years ago[Mips] Do not add unnecessary Mips toolchain path to the list
Simon Atanasyan [Sun, 21 Apr 2013 12:55:59 +0000 (12:55 +0000)]
[Mips] Do not add unnecessary Mips toolchain path to the list
of system include directories with extern "C" semantics.

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

11 years agoThe 'constexpr implies const' rule for non-static member functions is gone in
Richard Smith [Sun, 21 Apr 2013 01:08:50 +0000 (01:08 +0000)]
The 'constexpr implies const' rule for non-static member functions is gone in
C++1y, so stop adding the 'const' there. Provide a compatibility warning for
code relying on this in C++11, with a fix-it hint. Update our lazily-written
tests to add the const, except for those ones which were testing our
implementation of this rule.

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

11 years agoDisable VLA diagnostic in C++1y mode, and add some tests.
Richard Smith [Sat, 20 Apr 2013 23:28:26 +0000 (23:28 +0000)]
Disable VLA diagnostic in C++1y mode, and add some tests.

Still to do here:
  - we have a collection of syntactic accepts-invalids to diagnose
  - support non-PODs in VLAs, including dynamic initialization /
    destruction
  - runtime checks (and throw std::bad_array_length) for bad bound
  - support VLA capture by reference in lambdas
  - properly support VLAs in range-based for (don't recompute bound)

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

11 years agoAdd another test I forgot to svn add.
Richard Smith [Sat, 20 Apr 2013 22:23:29 +0000 (22:23 +0000)]
Add another test I forgot to svn add.

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

11 years agoC++1y: Allow aggregates to have default initializers.
Richard Smith [Sat, 20 Apr 2013 22:23:05 +0000 (22:23 +0000)]
C++1y: Allow aggregates to have default initializers.

Add a CXXDefaultInitExpr, analogous to CXXDefaultArgExpr, and use it both in
CXXCtorInitializers and in InitListExprs to represent a default initializer.

There's an additional complication here: because the default initializer can
refer to the initialized object via its 'this' pointer, we need to make sure
that 'this' points to the right thing within the evaluation.

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

11 years agoUpdate some stuff on the open projects page to reflect things we've already done.
Richard Smith [Sat, 20 Apr 2013 16:20:44 +0000 (16:20 +0000)]
Update some stuff on the open projects page to reflect things we've already done.

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

11 years agoSwitch C++11 open project to C++1y :)
Richard Smith [Sat, 20 Apr 2013 15:57:27 +0000 (15:57 +0000)]
Switch C++11 open project to C++1y :)

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

11 years agoAdd note that some of these links are dead for now.
Richard Smith [Sat, 20 Apr 2013 13:22:50 +0000 (13:22 +0000)]
Add note that some of these links are dead for now.

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

11 years agoVLAs in C++14!
Richard Smith [Sat, 20 Apr 2013 13:20:33 +0000 (13:20 +0000)]
VLAs in C++14!

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

11 years agoVariable templates and generic lambdas are approved for C++14.
Richard Smith [Sat, 20 Apr 2013 12:58:57 +0000 (12:58 +0000)]
Variable templates and generic lambdas are approved for C++14.

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

11 years agoClarifying memory allocation: approved for C++14. Move from N/A to no, since we curre...
Richard Smith [Sat, 20 Apr 2013 12:57:49 +0000 (12:57 +0000)]
Clarifying memory allocation: approved for C++14. Move from N/A to no, since we currently relax 'operator new' calls which didn't come from new-expressions.

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

11 years agoNo digit separators for C++14.
Richard Smith [Sat, 20 Apr 2013 12:56:37 +0000 (12:56 +0000)]
No digit separators for C++14.

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

11 years agoGeneralized constexpr is approved for C++14.
Richard Smith [Sat, 20 Apr 2013 12:49:36 +0000 (12:49 +0000)]
Generalized constexpr is approved for C++14.

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

11 years agoMore approved C++14 features.
Richard Smith [Sat, 20 Apr 2013 12:47:36 +0000 (12:47 +0000)]
More approved C++14 features.

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

11 years agoBinary literals are approved for C++14.
Richard Smith [Sat, 20 Apr 2013 12:44:32 +0000 (12:44 +0000)]
Binary literals are approved for C++14.

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

11 years agoImplement core issue 1608: class members can be found via operator lookup in a traili...
Richard Smith [Sat, 20 Apr 2013 12:41:22 +0000 (12:41 +0000)]
Implement core issue 1608: class members can be found via operator lookup in a trailing return type in that class's body.

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

11 years agoSupports Sourcery CodeBench Mips toolchain directories tree.
Simon Atanasyan [Sat, 20 Apr 2013 08:15:03 +0000 (08:15 +0000)]
Supports Sourcery CodeBench Mips toolchain directories tree.

Sourcery CodeBench and modern FSF Mips toolchains require a bit more
complicated algorithm to calculate headers, libraries and sysroot paths
than implemented by Clang driver now. The main problem is that all these
paths depend on a set of command line arguments additionally to a target
triple value. For example, let $TC is a toolchain installation directory.
If we compile big-endian 32-bit mips code, crtbegin.o is in the
$TC/lib/gcc/mips-linux-gnu/4.7.2 folder and the toolchain's linker requires
--sysroot=$TC/mips-linux-gnu/libc argument. If we compile little-endian
32-bit soft-float mips code, crtbegin.o is in the
$TC/lib/gcc/mips-linux-gnu/4.7.2/soft-float/el folder and the toolchain's
linker requires --sysroot=$TC/mips-linux-gnu/libc/soft-float/el argument.

1. Calculate MultiarchSuffix using all necessary command line options and
   use this MultiarchSuffix to detect crtbegin.o location in the
   GCCInstallationDetector::ScanLibDirForGCCTriple() routine.
2. If a user does not provide --sysroot argument to the driver explicitly,
   calculate new sysroot value based on command line options. Then use this
   calculated sysroot path:
   a. To populate a file search paths list in the Linux::Linux() constructor.
   b. To find Mips toolchain specific include headers directories
      in the Linux::AddClangSystemIncludeArgs() routine.
   c. To provide -–sysroot argument for a linker.

Note:
- The FSF's tree slightly differs (folder names) and is not supported
  yet.
- New addExternCSystemIncludeIfExits() routine is a temporary solution.
  I plan to move path existence check to the addExternCSystemInclude()
  routine by a separate commit.

The patch reviewed by Rafael Espindola.
http://llvm-reviews.chandlerc.com/D644

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

11 years ago[analyzer] Ensure BugReporterTracking works on regions with pointer arithmetic
Anna Zaks [Sat, 20 Apr 2013 01:15:42 +0000 (01:15 +0000)]
[analyzer] Ensure BugReporterTracking works on regions with pointer arithmetic

Introduce a new helper function, which computes the first symbolic region in
the base region chain. The corresponding symbol has been used for assuming that
a pointer is null. Now, it will also be used for checking if it is null.

This ensures that we are tracking a null pointer correctly in the BugReporter.

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

11 years ago[analyzer] Flip printPretty and printPrettyAsExpr as per suggestion from Jordan ...
Anna Zaks [Sat, 20 Apr 2013 01:15:36 +0000 (01:15 +0000)]
[analyzer] Flip printPretty and printPrettyAsExpr as per suggestion from Jordan (r179572)

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

11 years ago[analyzer] Correct the comment
Anna Zaks [Sat, 20 Apr 2013 01:15:32 +0000 (01:15 +0000)]
[analyzer] Correct the comment

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

11 years ago[libclang] Make sure the preable does not truncate comments.
Argyrios Kyrtzidis [Fri, 19 Apr 2013 23:24:25 +0000 (23:24 +0000)]
[libclang] Make sure the preable does not truncate comments.

rdar://13647445

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

11 years ago[analyzer] Website: update lists of potential and actual checkers.
Jordan Rose [Fri, 19 Apr 2013 22:19:14 +0000 (22:19 +0000)]
[analyzer] Website: update lists of potential and actual checkers.

- memory.MismatchedDelete, memory.MultipleDelete, and memory.DeallocateNonPtr
  are complete (unix.MismatchedDeallocator and cplusplus.NewDelete)
- Per discussion on the mailing list, different.UnaryPlusWithUnsigned has
  dubious value; remove it.
- Add potential checker ctordtor.PlacementSelfCopy per an internal bug report.
- core.AttributeNonNull is now core.NonNullParamChecker, though no one should
  be depending on this name anyway.

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

11 years agoRemove an empty line so the line numbers match up again after the recent documentatio...
Adrian Prantl [Fri, 19 Apr 2013 21:59:40 +0000 (21:59 +0000)]
Remove an empty line so the line numbers match up again after the recent documentation change.

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

11 years agostill not relaxed enough.
Adrian Prantl [Fri, 19 Apr 2013 21:52:06 +0000 (21:52 +0000)]
still not relaxed enough.

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

11 years agocleanup and relax test cases
Adrian Prantl [Fri, 19 Apr 2013 21:48:07 +0000 (21:48 +0000)]
cleanup and relax test cases

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

11 years agoNote that we support (and in fact have supported since the dawn of time itself)
Richard Smith [Fri, 19 Apr 2013 20:47:20 +0000 (20:47 +0000)]
Note that we support (and in fact have supported since the dawn of time itself)
C++1y binary literals.

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

11 years ago[ms-inline asm] The parsing of C++ identifiers is a task of the front-end parser,
Chad Rosier [Fri, 19 Apr 2013 20:37:49 +0000 (20:37 +0000)]
[ms-inline asm] The parsing of C++ identifiers is a task of the front-end parser,
not the asm parser.  As such, begin moving the parsing logic in that direction.
This patch is just a temporary hack until the real frontend parser can be hooked
up.  Part of rdar://13663589

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

11 years agoEmit the underlying type in the debug info for all kinds of fixed enums
Adrian Prantl [Fri, 19 Apr 2013 19:56:39 +0000 (19:56 +0000)]
Emit the underlying type in the debug info for all kinds of fixed enums
instead of only C++11-scoped-with-class-tag enums.

rdar://problem/13463793

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

11 years agos/C++0x/C++11/
Adrian Prantl [Fri, 19 Apr 2013 19:56:35 +0000 (19:56 +0000)]
s/C++0x/C++11/

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

11 years agoInitial work on status page for C++14.
Richard Smith [Fri, 19 Apr 2013 17:27:48 +0000 (17:27 +0000)]
Initial work on status page for C++14.

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

11 years agoKeep the parentheses in #pragma message (partial revert of r179771).
Andy Gibbs [Fri, 19 Apr 2013 17:13:17 +0000 (17:13 +0000)]
Keep the parentheses in #pragma message (partial revert of r179771).

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

11 years agoC++11 support is now feature-complete.
Richard Smith [Fri, 19 Apr 2013 17:00:31 +0000 (17:00 +0000)]
C++11 support is now feature-complete.

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

11 years agoAvoid names like __in that conflict with SAL in builtin headers
Reid Kleckner [Fri, 19 Apr 2013 17:00:14 +0000 (17:00 +0000)]
Avoid names like __in that conflict with SAL in builtin headers

Microsoft's Source Annotation Language (SAL) defines a bunch of keywords
for annotating the inputs and outputs of functions.  Empty definitions
for the keywords are provided by <stdlib.h> -> <crtdefs.h> -> <sal.h>.
This makes it basically impossible to include MSVC's stdlib.h and
Clang's *mmintrin.h headers at the same time if they have variables
named __in.  As a workaround, I've renamed those variables.

This fixes the Modules/compiler_builtins.m test which was XFAILed,
presumably due to this conflict.

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

11 years agoImplement CodeGen for C++11 thread_local, following the Itanium ABI specification...
Richard Smith [Fri, 19 Apr 2013 16:42:07 +0000 (16:42 +0000)]
Implement CodeGen for C++11 thread_local, following the Itanium ABI specification as discussed on cxx-abi-dev.

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

11 years ago[analyzer] Call proper callback for const regions escaped other then on call.
Anton Yartsev [Fri, 19 Apr 2013 09:39:51 +0000 (09:39 +0000)]
[analyzer] Call proper callback for const regions escaped other then on call.

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

11 years agoRevert "PR14606: Debug info for using directives/DW_TAG_imported_module"
Eric Christopher [Fri, 19 Apr 2013 07:46:36 +0000 (07:46 +0000)]
Revert "PR14606: Debug info for using directives/DW_TAG_imported_module"

This reverts commit r179837 as it seems to be causing test failures.

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

11 years agoPR14606: Debug info for using directives/DW_TAG_imported_module
David Blaikie [Fri, 19 Apr 2013 07:04:02 +0000 (07:04 +0000)]
PR14606: Debug info for using directives/DW_TAG_imported_module

More changes later for using declarations/DW_TAG_imported_declaration.

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

11 years agoGive CGDebugInfo::getContextDescriptor a more specific return type
David Blaikie [Fri, 19 Apr 2013 06:56:38 +0000 (06:56 +0000)]
Give CGDebugInfo::getContextDescriptor a more specific return type

Not that the DI* hierarchy is terribly type safe, but this makes the contract a
little clearer I think.

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

11 years ago[libclang] Fix copy-paste error in comment.
Argyrios Kyrtzidis [Fri, 19 Apr 2013 00:51:52 +0000 (00:51 +0000)]
[libclang] Fix copy-paste error in comment.

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

11 years ago[libclang] Introduce clang_Cursor_isVariadic, which returns non-zero if the given...
Argyrios Kyrtzidis [Thu, 18 Apr 2013 23:53:05 +0000 (23:53 +0000)]
[libclang] Introduce clang_Cursor_isVariadic, which returns non-zero if the given cursor is a variadic function or method.

rdar://13667150

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

11 years agoObjective-C++: Enable passing of modern C++11 style
Fariborz Jahanian [Thu, 18 Apr 2013 23:43:21 +0000 (23:43 +0000)]
Objective-C++: Enable passing of modern C++11 style
initialized temporaries to objc++ methods.
// rdar://12788429

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

11 years ago[libclang] Introduce clang_Cursor_getObjCDeclQualifiers, to query for 'ObjC Qualifier...
Argyrios Kyrtzidis [Thu, 18 Apr 2013 23:29:12 +0000 (23:29 +0000)]
[libclang] Introduce clang_Cursor_getObjCDeclQualifiers, to query for 'ObjC Qualifiers' written next to the return and
parameter types in an ObjC method declarations.

rdar://13676977

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

11 years agoFix typo.
Chad Rosier [Thu, 18 Apr 2013 23:12:05 +0000 (23:12 +0000)]
Fix typo.

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

11 years agoAdd comment to describe cleverness.
Benjamin Kramer [Thu, 18 Apr 2013 22:49:48 +0000 (22:49 +0000)]
Add comment to describe cleverness.

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

11 years ago[libclang] Introduce clang_Cursor_getObjCPropertyAttributes to query the written...
Argyrios Kyrtzidis [Thu, 18 Apr 2013 22:15:49 +0000 (22:15 +0000)]
[libclang] Introduce clang_Cursor_getObjCPropertyAttributes to query the written attributes in a property declaration.

rdar://13684512

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

11 years agoComment parsing: simplify code. As a side effect, this also silences GCC's
Dmitri Gribenko [Thu, 18 Apr 2013 20:50:35 +0000 (20:50 +0000)]
Comment parsing: simplify code.  As a side effect, this also silences GCC's
-Wunitnitialized warning.

Patch by Rui Ueyama.

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

11 years agoObjective-C parsing [qoi]: Provide good recovery when
Fariborz Jahanian [Thu, 18 Apr 2013 19:37:43 +0000 (19:37 +0000)]
Objective-C parsing [qoi]: Provide good recovery when
Objective-C dictionary literals has bad syntax for the
separator. // rdar://10679157

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