David Tweed [Mon, 9 Sep 2013 09:55:07 +0000 (09:55 +0000)]
Commit 190296 missed out the tests; add them now. Note that it actually tests
"long long" which is currently technically only "reserved for future" use in OpenCL, but
since clang in OpenCL mode supports it we may as well test the modifications to
the settings made for that type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190297
91177308-0d34-0410-b5e6-
96231b3b80d8
David Tweed [Mon, 9 Sep 2013 09:17:24 +0000 (09:17 +0000)]
The OpenCL standard specifies the sizes and alignments of various types than other C-family
languages, as well as specifying errno is not set by the math functions. Make the
clang front-end set those appropriately when the OpenCL language option is set.
Patch by Erik Schnetter!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190296
91177308-0d34-0410-b5e6-
96231b3b80d8
Stepan Dyatkovskiy [Mon, 9 Sep 2013 07:46:54 +0000 (07:46 +0000)]
Additional fix for PR16752 and for commit 190044:
-- For TargetInfo::getRealTypeByWidth also added support for IEEEQuad float type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190294
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Mon, 9 Sep 2013 07:34:56 +0000 (07:34 +0000)]
C++ modules: fix a bug where loading a declaration with some name would prevent
name lookup from lazily deserializing the other declarations with the same
name, by tracking a bit to indicate whether a name in a DeclContext might have
additional external results. This also allows lazier reconciling of the lookup
table if a module import adds decls to a pre-existing DC.
However, this exposes a pre-existing bug, which causes a regression in
test/Modules/decldef.mm: if we have a reference to a declaration, and a
later-imported module adds a redeclaration, nothing causes us to load that
redeclaration when we use or emit the reference (which can manifest as a
reference to an undefined inline function, a use of an incomplete type, and so
on). decldef.mm has been extended with an additional testcase which fails with
or without this change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190293
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 9 Sep 2013 02:37:56 +0000 (02:37 +0000)]
Update to the new API interface which requires the MCRegisterInfo object. <rdar://problem/
13623355>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190291
91177308-0d34-0410-b5e6-
96231b3b80d8
Jiangning Liu [Mon, 9 Sep 2013 02:21:08 +0000 (02:21 +0000)]
Implement aarch64 neon instruction set AdvSIMD (3V Diff), covering the following 26 instructions,
SADDL, UADDL, SADDW, UADDW, SSUBL, USUBL, SSUBW, USUBW, ADDHN, RADDHN, SABAL, UABAL, SUBHN, RSUBHN, SABDL, UABDL, SMLAL, UMLAL, SMLSL, UMLSL, SQDMLAL, SQDMLSL, SMULL, UMULL, SQDMULL, PMULL
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190289
91177308-0d34-0410-b5e6-
96231b3b80d8
Renato Golin [Sun, 8 Sep 2013 20:44:39 +0000 (20:44 +0000)]
Adding cross-compilation instructions to Clang
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190281
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Sun, 8 Sep 2013 14:07:57 +0000 (14:07 +0000)]
clang-format: Keep empty lines and format 1-line nested blocks.
Let clang-format consistently keep up to one empty line (configured via
FormatStyle::MaxEmptyLinesToKeep) in nested blocks, e.g. lambdas. Also,
actually format single statements in nested blocks.
Before:
DEBUG({ int i; });
DEBUG({
int i;
// an empty line here would just be removed.
int j;
});
After:
DEBUG({ int i; });
DEBUG({
int i;
int j;
});
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190278
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Sun, 8 Sep 2013 03:45:05 +0000 (03:45 +0000)]
Debug Info: pass in DIScope instead of DIDescriptor in createFieldType.
Improve readability. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190268
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Sat, 7 Sep 2013 20:21:47 +0000 (20:21 +0000)]
Correct typo.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190257
91177308-0d34-0410-b5e6-
96231b3b80d8
Enea Zaffanella [Sat, 7 Sep 2013 11:22:02 +0000 (11:22 +0000)]
Fixed bug in call to CXXTemporaryObjectExpr ctor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190249
91177308-0d34-0410-b5e6-
96231b3b80d8
Sylvestre Ledru [Sat, 7 Sep 2013 07:59:01 +0000 (07:59 +0000)]
add OCLint to the list of projects based on clang
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190248
91177308-0d34-0410-b5e6-
96231b3b80d8
Sylvestre Ledru [Sat, 7 Sep 2013 07:56:03 +0000 (07:56 +0000)]
add he 'include what you use' project
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190247
91177308-0d34-0410-b5e6-
96231b3b80d8
Sylvestre Ledru [Sat, 7 Sep 2013 07:52:20 +0000 (07:52 +0000)]
remove the description about clang & llvm in the freebsd section (the reader probably know what are llvm and clang
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190246
91177308-0d34-0410-b5e6-
96231b3b80d8
Sylvestre Ledru [Sat, 7 Sep 2013 07:51:23 +0000 (07:51 +0000)]
about the debian effort to rebuild the archive with clang
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190245
91177308-0d34-0410-b5e6-
96231b3b80d8
Sylvestre Ledru [Sat, 7 Sep 2013 07:39:49 +0000 (07:39 +0000)]
Clang event are now part of the llvm events. Add a link to the LLVM events
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190244
91177308-0d34-0410-b5e6-
96231b3b80d8
Sylvestre Ledru [Sat, 7 Sep 2013 07:37:18 +0000 (07:37 +0000)]
Update the link to the current code coverage reports (the previous one has not been updated since february 2010) + remove the spec references, not updated since May 2010
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190243
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Sat, 7 Sep 2013 07:11:04 +0000 (07:11 +0000)]
'return' before 'else' is bad style
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190241
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Sat, 7 Sep 2013 06:59:46 +0000 (06:59 +0000)]
AST: __uuidof should leak through templated types
Summary:
__uuidof on templated types should exmaine if any of its template
parameters have a uuid declspec. If exactly one does, then take it.
Otherwise, issue an appropriate error.
Reviewers: rsmith, thakis, rnk
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1419
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190240
91177308-0d34-0410-b5e6-
96231b3b80d8
Enea Zaffanella [Sat, 7 Sep 2013 05:49:53 +0000 (05:49 +0000)]
Fix missing source location in CXXTemporaryObjectExpr nodes.
For clarity, renamed (get/set)ParenRange as (get/set)ParenOrBraceRange
in CXXConstructExpr nodes.
Added testcase.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190239
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 6 Sep 2013 23:45:20 +0000 (23:45 +0000)]
ObjectiveC migrator: When inferring a property,
preserve getter's attribute. Also, do not attach
an inferred NS_RETURNS_INNER_POINTER to the inferred
property (it is illegal).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190223
91177308-0d34-0410-b5e6-
96231b3b80d8
Hal Finkel [Fri, 6 Sep 2013 23:45:10 +0000 (23:45 +0000)]
Reorder libm LIBBUILTIN definition groups
The groups of libm LIBBUILTIN definitions are reordered to match the order of
the corresponding __builtin_* definitions (which occur earlier in the
Builtins.def file).
No functionality change intended.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190222
91177308-0d34-0410-b5e6-
96231b3b80d8
Hal Finkel [Fri, 6 Sep 2013 23:23:53 +0000 (23:23 +0000)]
Reorder libm LIBBUILTIN definitions
The libm LIBBUILTIN definitions are reordered to the canonical (and
alphabetical) double (''), float ('f'), long double ('l') ordering.
No functionality change intended.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190218
91177308-0d34-0410-b5e6-
96231b3b80d8
Hal Finkel [Fri, 6 Sep 2013 23:23:32 +0000 (23:23 +0000)]
Add the missing "n" to libm LIBBUILTIN definitions
The libm math functions should be marked with the "n" (nothrow) flag so that
the corresponding IR function declarations are tagged with the nounwind
attribute (this has been true in C mode, but not in C++ mode).
The test case has been updated to run in C++ mode in addition to in C mode.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190217
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 6 Sep 2013 22:30:28 +0000 (22:30 +0000)]
Remove error-prone 'list initialization' flag from an implicit conversion
sequence. All that matters here is whether we're doing the
std::initializer_list special case thing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190213
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Fri, 6 Sep 2013 21:46:41 +0000 (21:46 +0000)]
clang-format: Fix regression introduced by r190038.
Before:
Constructor()
:
aaaaaaaaaaaaaaaaaaaa(a),
bbbbbbbbbbbbbbbbbbbbbbbb(b) {
}
After:
Constructor()
:
aaaaaaaaaaaaaaaaaaaa(a),
bbbbbbbbbbbbbbbbbbbbbbbb(b) {
}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190209
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Fri, 6 Sep 2013 21:32:35 +0000 (21:32 +0000)]
clang-format: Format typed enums with nested names.
The explicit type specified for an enum can actually have a nested name
specifier.
This fixes llvm.org/PR17125.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190208
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Fri, 6 Sep 2013 21:25:51 +0000 (21:25 +0000)]
clang-format: Don't confuse operator[] with lambdas.
Before:
double &operator[](int i) { return 0; } int i;
After:
double &operator[](int i) { return 0; }
int i;
This fixes llvm.org/PR17134.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190207
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 6 Sep 2013 21:09:09 +0000 (21:09 +0000)]
Preserve exception specs in function decl merging.
Exception specs are not part of the canonical type, but we shouldn't
drop them just because we merged a noreturn attribute.
Fixes PR17110.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190206
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Fri, 6 Sep 2013 20:58:25 +0000 (20:58 +0000)]
Unbreak the Clang -Werror build after r190183.
Best guess at the right answer here - no guarantees of fitness for any
particular purpose.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190203
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Fri, 6 Sep 2013 20:26:25 +0000 (20:26 +0000)]
clang-cl: ignore /RTC options (PR17129)
I don't think Clang intends to implement this functionality.
ASan should be used instead. Since /RTC is often passed by default
from MSBuild, ignore the option to avoid bloating the output.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190202
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 6 Sep 2013 20:11:28 +0000 (20:11 +0000)]
Add Intrin.h to the cmake files.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190199
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Fri, 6 Sep 2013 18:46:30 +0000 (18:46 +0000)]
Debug Info: Update testing case.
DIBuilder now uses an identifier to reference DIType in containing type field of
a DICompositeType (in r190190).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190191
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Bataev [Fri, 6 Sep 2013 18:03:48 +0000 (18:03 +0000)]
OpenMP: Data-sharing attributes analysis and clause 'shared' (fixed test threadprivate_messages.cpp)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190183
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexander Kornienko [Fri, 6 Sep 2013 17:24:54 +0000 (17:24 +0000)]
Don't remove trailing escaped newline from line comments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190175
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Fri, 6 Sep 2013 16:48:57 +0000 (16:48 +0000)]
Remove unused method Job::AddCommand.
I was going to update the comment referring to PipedJob, which was removed
some time ago, but then it turned out that this method is not actually used
at all.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190171
91177308-0d34-0410-b5e6-
96231b3b80d8
Jordan Rose [Fri, 6 Sep 2013 16:12:41 +0000 (16:12 +0000)]
[analyzer] SATestBuild: strip trailing newlines from command file.
When running a make-based command, SATestBuild tries to append a -jN flag
with an appropriate N to run the build in parallel. However, it failed
to take into account that each line read includes a trailing newline
(unless it is the last line of a file without a trailing newline), which
resulted in the "-jN" appearing on a line on its own.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190164
91177308-0d34-0410-b5e6-
96231b3b80d8
Sylvestre Ledru [Fri, 6 Sep 2013 15:36:36 +0000 (15:36 +0000)]
Follow up on commit r190159. Also test the KFreeBSD i686 platform defines + minor cosmetics
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190162
91177308-0d34-0410-b5e6-
96231b3b80d8
Sylvestre Ledru [Fri, 6 Sep 2013 14:53:07 +0000 (14:53 +0000)]
Add a test for the KFreeBSD define (#define __FreeBSD_kernel__ 1). This was introduced in commit r190048
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190159
91177308-0d34-0410-b5e6-
96231b3b80d8
David Tweed [Fri, 6 Sep 2013 09:58:08 +0000 (09:58 +0000)]
OpenCL allows the (pre/post)-(increment/decrement) operator on integer vector types,
so allow that case and add appropriate tests.
Patch by Ruiling Song!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190129
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Fri, 6 Sep 2013 08:54:24 +0000 (08:54 +0000)]
clang-format: Fix regression introduced by r189353.
Before:
FirstToken->WhitespaceRange.getBegin()
.getLocWithOffset(First->LastNewlineOffset);
After:
FirstToken->WhitespaceRange.getBegin().getLocWithOffset(
First->LastNewlineOffset);
Re-add logic to prevent breaking after an empty set of parentheses.
Basically it seems that calling a function without parameters is more
like navigating along the same object than it is a separate step of a
builder-type call.
We might need to extends this in future to allow "short" parameters that
e.g. are an index accessing a specific element.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190126
91177308-0d34-0410-b5e6-
96231b3b80d8
Pavel Labath [Fri, 6 Sep 2013 08:12:48 +0000 (08:12 +0000)]
Avoid double edges when constructing CFGs
Summary:
If a noreturn destructor is executed while returning a value from a function,
the resulting CFG has had two edges to the exit block. This crashed the analyzer,
because it expects that blocks with no terminators have only one outgoing edge.
I added code to avoid creating the second edge in this case.
PS: The crashes did not manifest themselves always, as usually the
NoReturnFunctionChecker would stop program evaluation before the analyzer hit
the assertion, but in the case of lifetime extended temporaries, the checker
failed to do that (which is a separate bug in itself).
Reviewers: jordan_rose
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1513
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190125
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Fri, 6 Sep 2013 08:08:14 +0000 (08:08 +0000)]
clang-format: Fix regression introduced by r189337.
Before:
if (
aaaaaaaaaaaaaaaaaaaaaaaaaa.
aaaaaaaaaaaaaaaaaaaaaa(
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) == 5) ...
After:
if (
aaaaaaaaaaaaaaaaaaaaaaaaaa.
aaaaaaaaaaaaaaaaaaaaaa(
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
== 5) ...
Also precompute startsBinaryExpression() to improve performance.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190124
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Fri, 6 Sep 2013 07:54:20 +0000 (07:54 +0000)]
clang-format: Fix comment formatting bugs in nested blocks.
This fixes two issues:
1) The indent of a line comment was not adapted to the subsequent
statement as it would be outside of a nested block.
2) A missing DryRun flag caused actualy breaks to be inserted in
overly long comments while trying to come up with the best line
breaking decisions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190123
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Fri, 6 Sep 2013 06:45:04 +0000 (06:45 +0000)]
PR17046, PR17092: Debug Info assert-on-valid due to member loss when context creation recreates the item the context is created for
By removing the possibility of strange partial definitions with no
members that older GCC's produced for the otherwise unreferenced outer
types of referenced inner types, we can simplify debug info generation
and correct this bug. Newer (4.8.1 and ToT) GCC's don't produce this
quirky debug info, and instead produce the full definition for the outer
type (except in the case where that type is dynamic and its vtable is
not emitted in this TU).
During the creation of the context for a type, we may revisit that type
(due to the need to visit template parameters, among other things) and
used to end up visiting it first there. Then when we would reach the
original code attempting to define that type, we would lose debug info
by overwriting its members.
By avoiding the possibility of latent "defined with no members" types,
we can be sure than whenever we already have a type in a cache (either a
definition or declaration), we can just return that. In the case of a
full definition, our work is done. In the case of a partial definition,
we must already be in the process of completing it. And in the case of a
declaration, the completed/vtable/etc callbacks can handle converting it
to a definition.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190122
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 6 Sep 2013 03:13:09 +0000 (03:13 +0000)]
Add self-comparison warnings for fields.
This expands very slightly what -Wtautological-compare considers to be
tautological to include implicit accesses to C++ fields and ObjC ivars.
I don't want to turn this into a full expression-identity check, but
these additions seem pretty well-contained, and maintain the theme
of checking for "x == x".
<rdar://problem/
14431127>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190118
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Fri, 6 Sep 2013 01:28:43 +0000 (01:28 +0000)]
Consumed Analysis: The 'consumable' attribute now takes a identifier specifying the default assumed state for objects of this class
This information is used for return states and pass-by-value parameter
states.
Patch by Chris Wailes.
Review by DeLesley Hutchins and Aaron Ballman.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190116
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 6 Sep 2013 01:22:42 +0000 (01:22 +0000)]
When creating an implicit conversion sequence for a reference of type T from an
initializer list containing a single element of type T, be sure to mark the
sequence as a list conversion sequence so that it is known to be worse than an
implicit conversion sequence that initializes a std::initializer_list object.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190115
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 6 Sep 2013 01:13:30 +0000 (01:13 +0000)]
Reduce stack usage of TreeTransform.
Without this patch, TreeTransform::TransformExpr uses a ridiculous amount of
stack space (around 5000 bytes). Preventing inlining brings the stack usage
down to something sane.
On a testcase I have, on my computer, this allows changing -ftemplate-depth
from 210 to around 750 before we crash. I'm not sure I should commit the
testcase, though: I don't want to cause test failures on platforms with less
stack space available.
<rdar://problem/
14098189>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190114
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 6 Sep 2013 00:12:20 +0000 (00:12 +0000)]
C++11 attributes after 'constructor-name (' unambiguously signal that we have a
constructor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190111
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 5 Sep 2013 23:51:03 +0000 (23:51 +0000)]
Improve error for "override" + non-virtual func.
Consider something like the following:
struct X {
virtual void foo(float x);
};
struct Y : X {
void foo(double x) override;
};
The error is almost certainly that Y::foo() has the wrong signature,
rather than incorrect usage of the override keyword. This patch
adds an appropriate diagnostic for that case.
Fixes <rdar://problem/
14785106>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190109
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 5 Sep 2013 23:50:58 +0000 (23:50 +0000)]
Add a bit more info to modules fatal error.
Just a minor tweak to make it easier to track down the cause of fatal errors
with modules.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190108
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Thu, 5 Sep 2013 23:04:33 +0000 (23:04 +0000)]
ObjectiveC migrator: tighten the rules for when
inferring NS_RETURNS_RETAINED, etc., return annotations.
Do not infer if these annotations are implicit
from the naming convention. Also add inference for
NS_CONSUMES_SELF annotation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190106
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 5 Sep 2013 21:29:35 +0000 (21:29 +0000)]
manual: Fix RST reference to MS extension support
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190101
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 5 Sep 2013 20:13:32 +0000 (20:13 +0000)]
Fix regression from r190016.
I don't have a reduced testcase yet.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190094
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Thu, 5 Sep 2013 18:51:02 +0000 (18:51 +0000)]
Debug Info: Update testing case.
DIBuilder now uses an identifier to reference DIType in base type field of
ptr_to_member (in r190081).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190082
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 5 Sep 2013 18:28:53 +0000 (18:28 +0000)]
Unbreak build with libc++, whose std::list<T> requires T to be complete.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190075
91177308-0d34-0410-b5e6-
96231b3b80d8
James Dennett [Thu, 5 Sep 2013 17:46:21 +0000 (17:46 +0000)]
Mark lambda closure classes as being implicitly-generated.
Summary: Closure classes for C++ lambdas are always compiler-generated. This one-line change calls setImplicit(true) on them at creation time, such that a default RecursiveASTVisitor (or any for which shouldVisitImplicitCode returns false) will skip them.
Reviewers: rsmith, dblaikie
Reviewed By: dblaikie
CC: klimek, revane, cfe-commits, jordan_rose
Differential Revision: http://llvm-reviews.chandlerc.com/D1593
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190073
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Thu, 5 Sep 2013 17:17:32 +0000 (17:17 +0000)]
ObjectiveC modern translator: fix up generated fast enumeration
code to work for bit 32bit and 64bit APIs.
// rdar://
14913632
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190072
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 5 Sep 2013 17:05:56 +0000 (17:05 +0000)]
clang-cl: Use .obj as extension for unnamed object files (PR17095)
We already use .obj as extension when the user provides a stem file
name (via /Fo), but were failing in the most basic case when the file
name is based on the input file.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190071
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Thu, 5 Sep 2013 16:05:56 +0000 (16:05 +0000)]
Add ATTRIBUTE_UNUSED to silence unused-function warning in release
builds.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190061
91177308-0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Thu, 5 Sep 2013 15:34:55 +0000 (15:34 +0000)]
Fixes PR 17106 (explicitly typed enums are formatted differently).
Before:
enum X : int { A, B, C };
After:
enum X : int {
A,
B,
C
};
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190054
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexander Kornienko [Thu, 5 Sep 2013 14:08:34 +0000 (14:08 +0000)]
Handle zero-width and double-width characters in string literals and comments.
Summary:
Count column width instead of the number of code points. This also
includes correct handling of tabs inside string literals and comments (with an
exception of multiline string literals/comments, where tabs are present before
the first escaped newline).
Reviewers: djasper, klimek
Reviewed By: klimek
CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D1601
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190052
91177308-0d34-0410-b5e6-
96231b3b80d8
Sylvestre Ledru [Thu, 5 Sep 2013 13:58:07 +0000 (13:58 +0000)]
Fix the profile of the function (fix commit 190048)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190051
91177308-0d34-0410-b5e6-
96231b3b80d8
Sylvestre Ledru [Thu, 5 Sep 2013 13:47:07 +0000 (13:47 +0000)]
Fix bug #17104 - Target info for GNU/kFreeBSD were missing.
As a result, Clang doesn't define the pre-processor macros that are expected
on this platform.
Thanks to Robert Millan for the patch
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190048
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Thu, 5 Sep 2013 11:49:39 +0000 (11:49 +0000)]
clang-format: Quickfix for braced init lists detected as lambdas.
Before:
constexpr char hello [] { "hello" };
After:
constexpr char hello[]{ "hello" };
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190046
91177308-0d34-0410-b5e6-
96231b3b80d8
Stepan Dyatkovskiy [Thu, 5 Sep 2013 11:23:21 +0000 (11:23 +0000)]
Add new methods for TargetInfo:
getRealTypeByWidth and getIntTypeByWidth
for ASTContext names are almost same(invokes new methods from TargetInfo):
getIntTypeForBitwidth and getRealTypeForBitwidth.
As first commit for PR16752 fix: 'mode' attribute for unusual targets doesn't work properly
Description:
Troubles could be happened due to some assumptions in handleModeAttr function (see SemaDeclAttr.cpp).
For example, it assumes that 32 bit integer is 'int', while it could be 16 bit only.
Instead of asking target: 'which type do you want to use for int32_t ?' it just hardcodes general opinion. That doesn't looks pretty correct.
Please consider the next solution:
1. In Basic/TargetInfo add getIntTypeByWidth and getRealTypeByWidth virtual methods. By default current behaviour could be implemented here.
2. Fix handleModeAttr according to new methods in TargetInfo.
This approach is implemented in the patch attached to this post.
Fixes:
1st Commit (Current): Add new methods for TargetInfo:
getRealTypeByWidth and getIntTypeByWidth
for ASTContext names are almost same(invokes new methods from TargetInfo):
getIntTypeForBitwidth and getRealTypeForBitwidth
2nd Commit (Next): Fix SemaDeclAttr, handleModeAttr function.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190044
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Thu, 5 Sep 2013 10:48:50 +0000 (10:48 +0000)]
Address post-commit review comments from r190038.
Mostly additional comments :-).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190042
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Thu, 5 Sep 2013 10:09:03 +0000 (10:09 +0000)]
Support suppressing unused arguments warnings as a core option so that
it works in the CL flavor driver.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190040
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Thu, 5 Sep 2013 10:04:31 +0000 (10:04 +0000)]
clang-format: Fix parsing and indenting lambdas.
Before:
void f() {
other(x.begin(), x.end(), //
[&](int, int) { return 1; });
}
After:
void f() {
other(x.begin(), x.end(), //
[&](int, int) { return 1; });
}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190039
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Thu, 5 Sep 2013 09:29:45 +0000 (09:29 +0000)]
clang-format: Enable formatting of nested blocks.
Among other things, this enables (better) formatting lambdas and
constructs like:
MACRO({
long_statement();
long_statement_2();
},
{
long_statement();
long_statement_2();
},
{ short_statement(); }, "");
This fixes llvm.org/PR15381.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190038
91177308-0d34-0410-b5e6-
96231b3b80d8
Pavel Labath [Thu, 5 Sep 2013 09:18:36 +0000 (09:18 +0000)]
[analyzer] Restructure a test file
Summary:
I've had a test failure here while experimenting and I've found that it's
impossible to find what is wrong with the previous structure of the file. So I
have grouped the expected output with the function that produces it, to make
searching for discrepancies more obvious.
Reviewers: jordan_rose
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1595
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190037
91177308-0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Thu, 5 Sep 2013 08:31:48 +0000 (08:31 +0000)]
Make error text if clang-format is not on the system PATH more helpful,
as this is going to be a common mistake (installing LLVM defaults to not putting
the tools onto the PATH).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190036
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Trieu [Thu, 5 Sep 2013 02:31:33 +0000 (02:31 +0000)]
For "expected unqualified-id" errors after a double colon, and the double colon
is at the end of the line, point to the location after the double colon instead
of at the next token. There is more context to be given this way. In addition,
the next token can be several lines later.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190029
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 5 Sep 2013 00:02:30 +0000 (00:02 +0000)]
Add specific warning flags for GNU ext in lexer.
This patch adds the following flags covering existing warnings:
-Wgnu-zero-variadic-macro-arguments
-Wgnu-imaginary-constant
-Wgnu-binary-literal
-Wgnu-zero-line-directive
Patch by Peter Lewis.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190017
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 5 Sep 2013 00:02:25 +0000 (00:02 +0000)]
Note when a decl is used in AST files.
When an AST file is built based on another AST file, it can use a decl from
the fist file, and therefore mark the "isUsed" bit. We need to note this in
the AST file so that the bit is set correctly when the second AST file is
loaded.
This patch introduces the distinction between setIsUsed() and markUsed() so
that we don't call into the ASTMutationListener callback when it wouldn't
be appropriate.
Fixes PR16635.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190016
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 4 Sep 2013 23:34:21 +0000 (23:34 +0000)]
PR17103: Scoped enumerations with signed integer types have signed integer
representation. Don't emit comparisons on them as 'icmp ult'!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190010
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 4 Sep 2013 22:50:31 +0000 (22:50 +0000)]
Tweak implementation of -Wwrite-strings to better match the behavior of current GCCs:
* In C, as before, if the "warning flag" is enabled, warnings are produced by
forcing string literals to have const-qualified types (the produced warnings
are *not* -Wwrite-strings warnings). However, more recent GCCs (at least 4.4
onwards) now take -w into account here, so we now do the same.
* In C++, this flag is entirely sane: it behaves just like any other warning
flag. Stop triggering -fconst-strings here. This is a bit cleaner, but there's
no real functionality change except in the case where -Xclang -fno-const-strings
is also specified.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190006
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 4 Sep 2013 22:49:19 +0000 (22:49 +0000)]
ObjectiveC migrator: start introducing NS_XXX annotations
to Method/functions returning ObjC objects. wip.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190005
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Wed, 4 Sep 2013 22:03:57 +0000 (22:03 +0000)]
Reapply r189013 (reverted in r189906) now that the underlying issue is fixed and tested (in r189996)
Debug info emission was tripping over an IRGen bug (fixed in r189996)
that was resulting in duplicate emission of static data members of class
templates in namespaces.
We could add more test coverage to debug info for this issue
specifically, but I think the underlying IRGen test is more targeted and
sufficient for the issue.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190001
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Wed, 4 Sep 2013 21:07:37 +0000 (21:07 +0000)]
Do not emit duplicate global initializers for template static data members inside namespaces
A quirk of AST representation leads to class template static data member
definitions being visited twice during Clang IRGen resulting in
duplicate (benign) initializers.
Discovered while investigating a possibly-related debug info bug tickled
by the duplicate emission of these members & their associated debug
info.
With thanks to Richard Smith for help investigating, understanding, and
helping with the fix.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189996
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 4 Sep 2013 19:37:35 +0000 (19:37 +0000)]
Remove the -fuse-gold-plugin driver option.
* It was redundant with -flto.
* It was confusing since -uAnythingElse is a different option.
* GCC uses -fuse-linker-plugin, so it was not even a compatibility option.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189976
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 4 Sep 2013 16:43:57 +0000 (16:43 +0000)]
ObjectiveC migrator. Refactor last patch on
annotations. (was r189892).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189956
91177308-0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Wed, 4 Sep 2013 16:11:46 +0000 (16:11 +0000)]
Adds a VSPackage project that builds a VS extension to run clang-format over a selection / the line at the cursor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189955
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 4 Sep 2013 15:58:55 +0000 (15:58 +0000)]
More unused warning silencing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189951
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexander Kornienko [Wed, 4 Sep 2013 15:14:18 +0000 (15:14 +0000)]
A minor fix in the documentation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189947
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexander Kornienko [Wed, 4 Sep 2013 15:09:13 +0000 (15:09 +0000)]
Added documentation for clang-format style options.
Summary:
The main contents is in the ClangFormatStyleOptions.rst, which can be
updated from the Format.h by the dump_format_style.py script.
Reviewers: djasper, klimek
Reviewed By: klimek
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1597
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189946
91177308-0d34-0410-b5e6-
96231b3b80d8
Pavel Labath [Wed, 4 Sep 2013 14:35:00 +0000 (14:35 +0000)]
ASTDumper: fix dump of CXXCatchStmt
Summary: I added the display of the VarDecl contained in the statement.
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1596
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189941
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexander Kornienko [Wed, 4 Sep 2013 14:09:59 +0000 (14:09 +0000)]
Cleaned doxygen comments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189937
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexander Kornienko [Wed, 4 Sep 2013 14:09:13 +0000 (14:09 +0000)]
Handle 'Cpp03' and 'Cpp11' strings in LanguageStandard serialization for
consistency of serialized form with the actual enum member names without
a prefix.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189936
91177308-0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Wed, 4 Sep 2013 13:34:14 +0000 (13:34 +0000)]
Remove code duplication in unwrapped line parser.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189933
91177308-0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Wed, 4 Sep 2013 13:25:30 +0000 (13:25 +0000)]
Implement parsing of blocks (^{ ... }) in the unwrapped line parser.
This patch makes sure we produce the right number of unwrapped lines,
a follow-up patch will make the whitespace formatting consistent.
Before:
void f() {
int i = {[operation setCompletionBlock : ^{ [self onOperationDone];
}]
}
;
}
After:
void f() {
int i = {[operation setCompletionBlock : ^{
[self onOperationDone];
}] };
}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189932
91177308-0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Wed, 4 Sep 2013 10:06:46 +0000 (10:06 +0000)]
More lambda formatting tests; update test comments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189928
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 4 Sep 2013 09:37:12 +0000 (09:37 +0000)]
clang/test/Driver/working-directory.c: Exclude msys bash rather than tweaking expressions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189927
91177308-0d34-0410-b5e6-
96231b3b80d8
Hao Liu [Wed, 4 Sep 2013 09:29:13 +0000 (09:29 +0000)]
Inplement aarch64 neon instructions in AdvSIMD(shift). About 24 shift instructions:
sshr,ushr,ssra,usra,srshr,urshr,srsra,ursra,sri,shl,sli,sqshlu,sqshl,uqshl,shrn,sqrshr$
and 4 convert instructions:
scvtf,ucvtf,fcvtzs,fcvtzu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189926
91177308-0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Wed, 4 Sep 2013 08:20:47 +0000 (08:20 +0000)]
Fix layout of lambda captures.
Before:
int c = [ &, &a, a]{
[ =, c, &d]{
return b++;
}();
}();
After:
int c = [&, &a, a] {
[=, c, &d] {
return b++;
}();
}();
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189924
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 4 Sep 2013 06:06:06 +0000 (06:06 +0000)]
Attempt to silence some defined but not used warnings.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189922
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 4 Sep 2013 04:59:11 +0000 (04:59 +0000)]
Disable llvm optimizations, but keep -O1 to test available_externally.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189919
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 4 Sep 2013 04:55:03 +0000 (04:55 +0000)]
Disable llvm optimizations, but keep -O1 to test available_externally.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189918
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 4 Sep 2013 04:51:39 +0000 (04:51 +0000)]
Use %clang_cc1.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189917
91177308-0d34-0410-b5e6-
96231b3b80d8