Daniel Jasper
03b1bc7a2a
clang-format: Fix aligning of comments and escaped newlines in macros.
...
Before:
#define A \
int i; /*a*/ \
int jjj; /*b*/
After:
#define A \
int i; /*a*/ \
int jjj; /*b*/
llvm-svn: 205011
2014-03-28 15:06:01 +00:00
Daniel Jasper
395193c7a0
clang-format: Recognize more ObjC blocks with parameters/return type.
...
llvm-svn: 204990
2014-03-28 07:48:59 +00:00
Saleem Abdulrasool
377066a5f5
Use the new Windows environment for target detection
...
This follows the LLVM change to canonicalise the Windows target triple
spellings. Rather than treating each Windows environment as a single entity,
the environments are now modelled properly as an environment. This is a
mechanical change to convert the triple use to reflect that change.
llvm-svn: 204978
2014-03-27 22:50:18 +00:00
Manuel Klimek
1f9d80ac66
Improve handling of bool expressions in template arguments.
...
Now correctly formats:
foo<true && false>();
llvm-svn: 204950
2014-03-27 19:00:52 +00:00
Daniel Jasper
5d2587daa2
clang-format: Avoid line-breaks that increase the current column.
...
While these might make sense for some rule (e.g. break after multi-line
operand), they generally appear ugly and confusing.
Before:
fffffffffff(R\"x(
multiline raw string literal xxxxxxxxxxxxxx
)x\" + bbbbbb)
After:
fffffffffff(R\"x(
multiline raw string literal xxxxxxxxxxxxxx
)x\" +
bbbbbb)
llvm-svn: 204937
2014-03-27 16:14:13 +00:00
Manuel Klimek
f81e5c0e50
Fix bool expression special case.
...
Clang-format now correctly formats:
some_type<a * b> v;
template <bool a, bool b> typename enabled_if<a && b>::type f() {}
llvm-svn: 204913
2014-03-27 11:17:36 +00:00
Daniel Jasper
c13ee34378
clang-format: Correctly identify ObjC Block with return type.
...
llvm-svn: 204905
2014-03-27 09:43:54 +00:00
Manuel Klimek
ce68f7714a
Fixes a bug in DynTypedNode.
...
Two DynTypedNodes can be equal if they do not have the same node type,
because DynTypedNodes for the same underlying object might have been
created from different types (for example, Decl vs VarDecl).
llvm-svn: 204722
2014-03-25 14:39:26 +00:00
Daniel Jasper
a65e887587
clang-format: Fix incorrect &/* detection.
...
Before:
STATIC_ASSERT((a &b) == 0);
After:
STATIC_ASSERT((a & b) == 0);
llvm-svn: 204709
2014-03-25 10:52:45 +00:00
Daniel Jasper
a26fc5c9db
clang-format: Add flag for removing empty lines at the start of blocks.
...
This unbreaks polly-formatting-tests and we can make a decision for
LLVM style independently.
llvm-svn: 204467
2014-03-21 13:43:14 +00:00
Daniel Jasper
01b35482e5
clang-format: Don't remove empty lines at the start of namespaces.
...
llvm-svn: 204462
2014-03-21 13:03:33 +00:00
Daniel Jasper
11164bdaf5
clang-format: Remove empty lines at the beginning of blocks.
...
They very rarely aid readability.
Formatting:
void f() {
if (a) {
f();
}
}
Now leads to:
void f() {
if (a) {
f();
}
}
llvm-svn: 204460
2014-03-21 12:58:53 +00:00
Daniel Jasper
a125d53a7b
clang-format: Let a trailing comma in braced lists enforce linebreaks.
...
Before:
vector<int> x{1, 2, 3, 4, };
After:
vector<int> x{
1, 2, 3, 4,
};
This fixes llvm.org/PR18519.
llvm-svn: 204458
2014-03-21 12:38:57 +00:00
Daniel Jasper
28df0a356e
clang-format: Fix for r204456.
...
llvm-svn: 204457
2014-03-21 12:15:40 +00:00
Daniel Jasper
14e58e5290
clang-format: Preserve meaning of trailing comments on parameters.
...
Formatting:
SomeFunction(a,
b, // comment
c);
Before:
SomeFunction(a, b, // comment
c);
After:
SomeFunction(a,
b, // comment
c);
llvm-svn: 204456
2014-03-21 11:58:45 +00:00
Argyrios Kyrtzidis
a9ab4d46bb
[libclang] Introduce clang_VirtualFileOverlay_setCaseSensitivity that exposes the VFS option
...
to set the case-sensitivity for lookups.
rdar://16374696
llvm-svn: 204303
2014-03-20 04:51:48 +00:00
Alexander Kornienko
ce08126733
clang-format: Detect function-like macros only when upper case is used.
...
Reviewers: djasper
Reviewed By: djasper
CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D3110
llvm-svn: 204156
2014-03-18 14:35:20 +00:00
Manuel Klimek
819788da83
Fix crasher bug.
...
Due to not resetting the fake rparen data on the token when iterating
over annotated lines, we would pop the last element of the paren stack.
This patch fixes the underlying root cause, and makes the code more
robust against similar problems in the future:
- reset the first token when iterating on the same annotated lines due
to preprocessor branches
- never pop the last element from the paren stack, so we do not crash,
but rather incorrectly format
- add assert()s so we can figure out if our assumptions are violated
llvm-svn: 204140
2014-03-18 11:22:45 +00:00
Daniel Jasper
1fd6f1f8d6
clang-format: Indent from dict literal labels.
...
Before:
@{
NSFontAttributeNameeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee :
regularFont,
};
After:
@{
NSFontAttributeNameeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee :
regularFont,
};
llvm-svn: 204041
2014-03-17 14:32:47 +00:00
NAKAMURA Takumi
7ebbda83a2
ASTTests//EvaluateAsRValueTest.cpp: Appease *-win32 target to add -fno-delayed-template-parsing.
...
llvm-svn: 203991
2014-03-15 00:36:51 +00:00
James Dennett
622831b739
Change a raw string literal back to C++98 style to fix freeBSD9.2 builtbot
...
llvm-svn: 203961
2014-03-14 20:08:11 +00:00
James Dennett
0492ef0e0b
Fix a crash (assertion failure) in EvaluateAsRValue.
...
Summary:
Gracefully fail to evaluate a constant expression if its type is
unknown, rather than failing an assertion trying to access the type.
Reviewers: klimek
Reviewed By: klimek
CC: chandlerc, cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D3075
llvm-svn: 203950
2014-03-14 17:44:10 +00:00
Daniel Jasper
ac7e34e778
clang-format: Prevent ObjC code from confusing the braced-init detection
...
This was leading to bad formatting, e.g.:
Before:
f(^{
@autoreleasepool {
if (a) {
g();
}
}
});
After:
f(^{
@autoreleasepool {
if (a) {
g();
}
}
});
llvm-svn: 203777
2014-03-13 10:11:17 +00:00
Hans Wennborg
501eadb429
Check for LLVM_ON_WIN32 instead of _WIN32.
...
This is a follow-up to r203624 to address Anton's comment.
llvm-svn: 203668
2014-03-12 16:07:46 +00:00
Daniel Jasper
da353cd5f1
clang-format: Fix crasher.
...
Caused by unknown tokens (e.g. "\n") not properly updating the state.
Example:
const char* c = STRINGIFY(
\na : b);
llvm-svn: 203645
2014-03-12 08:24:47 +00:00
Daniel Jasper
8f59ae537c
clang-format: Avoid unnecessary break before lambda return type.
...
Before:
auto aaaaaaaa = [](int i, // break
int j)
-> int {
return fffffffffffffffffffffffffffffffffffffff(i * j);
};
After:
auto aaaaaaaa = [](int i, // break
int j) -> int {
return fffffffffffffffffffffffffffffffffffffff(i * j);
};
llvm-svn: 203562
2014-03-11 11:03:26 +00:00
Daniel Jasper
a58dd5db29
clang-format: Fix another false positive in the lambda detection.
...
Before:
int i = (*b)[a] -> f();
After:
int i = (*b)[a]->f();
llvm-svn: 203557
2014-03-11 10:03:33 +00:00
Daniel Jasper
d3c7ab975f
clang-format: Fix incorrect lambda recognition exposed by r203452.
...
Before:
int i = a[a][a] -> f();
After:
int i = a[a][a]->f();
llvm-svn: 203556
2014-03-11 09:59:36 +00:00
Daniel Jasper
c580af96fa
clang-format: Detect weird macro lambda usage.
...
Before:
void f() {
MACRO((const AA & a) { return 1; });
}
After:
void f() {
MACRO((const AA &a) { return 1; });
}
llvm-svn: 203551
2014-03-11 09:29:46 +00:00
David Blaikie
0e18ed2eba
Fix use of uninitialized variable in ExternalASTSourceTest.cpp (introduced in 203525)
...
llvm-svn: 203545
2014-03-11 06:49:26 +00:00
Richard Smith
023d2ca451
Add a unittest for the ExternalASTSource.
...
llvm-svn: 203525
2014-03-11 01:18:47 +00:00
Samuel Benzaquen
a083935d0a
Add loc() to the dynamic registry.
...
Summary:
Add loc() to the dynamic registry.
Other fixes:
- Fix the polymorphic variant value to accept an exact match, even if
there are other possible conversions.
- Fix specifiesTypeLoc() to not crash on an empty
NestedNameSpecifierLoc.
Reviewers: klimek
CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D2928
llvm-svn: 203467
2014-03-10 15:40:23 +00:00
Daniel Jasper
84a12e18d3
clang-format: Add spaces between lambdas and comments.
...
Before:
void f() {
bar([]() {}// Does not respect SpacesBeforeTrailingComments
);
}
After:
void f() {
bar([]() {} // Does not respect SpacesBeforeTrailingComments
);
}
This fixes llvm.org/PR19017.
llvm-svn: 203466
2014-03-10 15:06:25 +00:00
Alexander Kornienko
4504f93901
Preserve hanging indent when breaking line comments.
...
Summary:
If we need to break the second line here:
// something: aaaaa aaaaa aaaaaa aaaaa aaaaa
// aaaaa aaaaa aaaaaa aaaaa aaaaa aaaaa
with the patch it will be turned to
// something: aaaaa aaaaa aaaaaa aaaaa aaaaa
// aaaaa aaaaa aaaaaa aaaaa aaaaa
// aaaaa
instead of
// something: aaaaa aaaaa aaaaaa aaaaa aaaaa
// aaaaa aaaaa aaaaaa aaaaa aaaaa
// aaaaa
Reviewers: djasper, klimek
Reviewed By: klimek
CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D2988
llvm-svn: 203458
2014-03-10 13:14:56 +00:00
Daniel Jasper
81a20787db
clang-format: Add spaces around trailing/lambda return types.
...
Before:
int c = []()->int { return 2; }();
After:
int c = []() -> int { return 2; }();
llvm-svn: 203452
2014-03-10 10:02:02 +00:00
Richard Smith
664b32b814
Revert accidentally-committed file.
...
llvm-svn: 203318
2014-03-08 00:04:19 +00:00
Richard Smith
9bca298f6d
Module [extern_c] attribute: inherit to submodules, don't write 'extern "C"'
...
blocks when building in C mode, and serialize and deserialize the attribute.
llvm-svn: 203317
2014-03-08 00:03:56 +00:00
Ahmed Charles
b89843299a
Replace OwningPtr with std::unique_ptr.
...
This compiles cleanly with lldb/lld/clang-tools-extra/llvm.
llvm-svn: 203279
2014-03-07 20:03:18 +00:00
Ahmed Charles
d72a5f103d
Replace OwningPtr::isValid() with conversion to bool.
...
This is a precursor to moving to std::unique_ptr.
llvm-svn: 203277
2014-03-07 19:51:06 +00:00
Ahmed Charles
9a16beb8bc
Change OwningPtr::take() to OwningPtr::release().
...
This is a precursor to moving to std::unique_ptr.
llvm-svn: 203275
2014-03-07 19:33:25 +00:00
Alexander Kornienko
86b2dfdc3b
Fix operator<< recognition (PR19064).
...
llvm-svn: 203123
2014-03-06 15:13:08 +00:00
Ben Langmuir
9385323747
Attempt to re-enable the VFS unittests on Windows
...
Using a //net/ path to hopefully avoid problems with non-absolute paths
on Windows.
llvm-svn: 203010
2014-03-05 21:32:20 +00:00
NAKAMURA Takumi
6a927ecb7a
Disable BasicTests/VFS on win32 for now. Investigating.
...
Failing Tests (5):
Clang-Unit :: Basic/BasicTests.exe/VFSFromYAMLTest.CaseInsensitive
Clang-Unit :: Basic/BasicTests.exe/VFSFromYAMLTest.MappedFiles
Clang-Unit :: Basic/BasicTests.exe/VFSFromYAMLTest.MultiComponentPath
Clang-Unit :: Basic/BasicTests.exe/VFSFromYAMLTest.TrailingSlashes
Clang-Unit :: Basic/BasicTests.exe/VFSFromYAMLTest.UseExternalName
llvm-svn: 202952
2014-03-05 09:10:04 +00:00
David Majnemer
197e2103a2
Speculatively fix MSVC buildbots
...
llvm-svn: 202938
2014-03-05 06:32:38 +00:00
Chandler Carruth
757fcd6d1f
[cleanup] Re-sort includes with llvm/utils/sort_includes.py and fix
...
a missing include from CLog.h.
CLog.h referenced most of the core libclang types but never directly
included Index.h that provides them. Previously it got lucky and other
headers were always included first but with the sorting it ended up
first in one case and stopped compiling. Adding the Index.h include
fixes it right up.
llvm-svn: 202810
2014-03-04 10:05:20 +00:00
Dmitri Gribenko
5ea34fcc8d
Decl printing: add tests for typedefs
...
Patch by Konrad Kleine.
llvm-svn: 202709
2014-03-03 13:21:00 +00:00
Peter Collingbourne
f93725459a
MSVC 2012 doesn't support std::initializer_list at all, so don't rely on
...
that std::vector constructor.
llvm-svn: 202684
2014-03-03 08:13:06 +00:00
Peter Collingbourne
2bbb029599
MSVC cannot understand temporaries formed from initializer lists.
...
llvm-svn: 202682
2014-03-03 07:49:35 +00:00
Argyrios Kyrtzidis
d502a10c5e
[libclang] Introduce APIs that assist in constructing a simple module.map file for a user framework.
...
rdar://16092858
llvm-svn: 202681
2014-03-03 07:41:45 +00:00
Argyrios Kyrtzidis
74c96c0c75
[libclang] Change clang_VirtualFileOverlay_writeToBuffer to return a malloc'ed buffer.
...
Returning CXString is not appropriate if we want to switch to a non-string format buffer.
llvm-svn: 202675
2014-03-03 06:38:52 +00:00