Daniel Jasper
3c2557d0dd
Correctly format dereference and address of in array parameters.
...
Before: InvalidRegions[ &R] = 0;
After: InvalidRegions[&R] = 0;
This fixes llvm.org/PR14793
llvm-svn: 171522
2013-01-04 20:46:38 +00:00
Rafael Espindola
66748e93e2
Fix typo. Thanks to dgregor for noticing it.
...
llvm-svn: 171521
2013-01-04 20:41:40 +00:00
Douglas Gregor
7426050269
realpath'ify the mapping from header includes to module imports.
...
llvm-svn: 171516
2013-01-04 19:44:26 +00:00
Ted Kremenek
3d1464caee
Update CMakeLists.txt
...
llvm-svn: 171505
2013-01-04 19:04:47 +00:00
Ted Kremenek
dae8f9f1a2
Add __has_feature support to detect if clang supports the explicit "atomic" keyword for ObjC properties.
...
Fixes <rdar://problem/12953378>.
llvm-svn: 171504
2013-01-04 19:04:44 +00:00
Ted Kremenek
9deaef7f44
NSErrorChecker: remove quoting the parameter name in the diagnostic until we actually include it's name.
...
This is a possible regression of moving to using ImplicitNullDerefEvent.
Fixing this for real (including the parameter name) requires more
plumbing in ImplicitNullDerefEvent. This is just a stop gap fix.
llvm-svn: 171502
2013-01-04 19:04:40 +00:00
Ted Kremenek
7505b5a64c
Tighten code. No functionality change.
...
llvm-svn: 171501
2013-01-04 19:04:36 +00:00
Douglas Gregor
8f1f3331dc
Add the module name to the 'incomplete umbrella header' warning.
...
llvm-svn: 171497
2013-01-04 18:58:28 +00:00
Daniel Jasper
c0880a904b
Let the formatter ignore UnwrappedLines containing errors.
...
This prevents code like:
namespace {
class Foo {
Foo(
};
} // comment
from causing segfaults (see llvm.org/PR14774).
llvm-svn: 171495
2013-01-04 18:52:56 +00:00
Filipe Cabecinhas
c18708ee6e
Add file added in r171484 to CMakelists.txt.
...
llvm-svn: 171494
2013-01-04 18:52:29 +00:00
Manman Ren
ab08a9adab
Debug Info: fix the line location for cleanup code of a block function
...
The line information was changed when emitting debug information for all the
DeclRefExprs and we should change it back to get ready for PopClenupBlocks
called from FinishFunction.
rdar://11562117
llvm-svn: 171493
2013-01-04 18:51:35 +00:00
Fariborz Jahanian
cb6c867c46
Fix up various builtin declaration of objc_msgSend families
...
to match those foung in objc.h an avoid spurious warnings.
// rdar://12489098
llvm-svn: 171492
2013-01-04 18:45:40 +00:00
Argyrios Kyrtzidis
d12c332905
[arcmt] Allow removing an -autorelease of a variable initialized in the previous statement.
...
rdar://11074996
llvm-svn: 171485
2013-01-04 18:30:11 +00:00
Argyrios Kyrtzidis
03fbe3ef81
[arcmt] Adds brackets in case statements that "contain" initialization of retaining
...
variable, thus emitting the "switch case is in protected scope" error.
rdar://12952016
llvm-svn: 171484
2013-01-04 18:30:08 +00:00
Argyrios Kyrtzidis
aa1ce901eb
Move the common source locations of CastStmt & DefaultStmt into their base class, SwitchCase.
...
llvm-svn: 171483
2013-01-04 18:30:04 +00:00
Argyrios Kyrtzidis
b7b89b5ebc
[arcmt] Don't error if an autoreleased variable is returned after the -autorelease.
...
rdar://12952025
llvm-svn: 171482
2013-01-04 18:29:59 +00:00
Douglas Gregor
2060482ece
Remove -Wmodule-build; it was a dumb idea anyway. <rdar://problem/12957525>
...
llvm-svn: 171478
2013-01-04 18:22:19 +00:00
Eric Christopher
0f75943780
Fix fieldNo usage for lambdas. No behavior change since the
...
field number was 0 anyhow.
llvm-svn: 171472
2013-01-04 17:59:07 +00:00
Rafael Espindola
d2ecc139f2
Warn on unused auto variables.
...
To do so we have to wait until we know that the type of a variable has been
deduced. Sema::FinalizeDeclaration is the first callback that is used for
decl with or without initializers.
llvm-svn: 171458
2013-01-03 04:29:20 +00:00
Rafael Espindola
60470f1194
Use early returns to reduce indentation.
...
llvm-svn: 171457
2013-01-03 04:05:19 +00:00
Argyrios Kyrtzidis
6ba7afb8e1
[arcmt] Rewrite uses of Block_copy/Block_release macros.
...
c = Block_copy(b);
Block_release(c);
---->
c = [b copy];
<removed>
rdar://9408211
llvm-svn: 171454
2013-01-03 03:17:17 +00:00
Ted Kremenek
6fcefb53e3
Make MallocChecker debug output useful.
...
llvm-svn: 171439
2013-01-03 01:30:12 +00:00
Eli Friedman
33accdf602
Don't assert/crash on reference variables in lambdas bound to a
...
static local variable from the parent scope. PR14773.
llvm-svn: 171433
2013-01-03 00:39:26 +00:00
Anna Zaks
3fdcc0bda3
[analyzer] Rename callback EndPath -> EndFunction
...
This better reflects when callback is called and what the checkers
are relying on. (Both names meant the same pre-IPA.)
llvm-svn: 171432
2013-01-03 00:25:29 +00:00
Argyrios Kyrtzidis
f86e8cced6
DiagnosticIds: Fix offset/ID calculation, no impact outside this code.
...
Patch by Will Dietz:
Minor touchup so the values of Offset/ID reflect their intention.
Previously, the sum (Offset+ID) was correct, but Offset/ID
individually were wrong.
Caught by investigating unsigned overflow reported by -fsanitize=integer.
llvm-svn: 171421
2013-01-02 22:26:07 +00:00
Anshuman Dasgupta
89730ce9ee
Correct Hexagon DataLayout string. Fixes bug 14744.
...
Patch by Krzysztof Parzyszek!
llvm-svn: 171415
2013-01-02 21:25:57 +00:00
Argyrios Kyrtzidis
c32b022ef0
Remove the anonymous namespace from lib/Sema/TreeTransform.h
...
llvm-svn: 171402
2013-01-02 19:10:22 +00:00
Manuel Klimek
b69e3c6201
Fixes multiple formatting bugs.
...
Fixes:
- incorrect handling of multiple consecutive preprocessor directives
- crash when trying to right align the escpaed newline for a line that
is longer than the column limit
- using only ColumnLimit-1 columns when layouting with escaped newlines
inside preprocessor directives
llvm-svn: 171401
2013-01-02 18:33:23 +00:00
Daniel Jasper
90e51fdbab
Don't allow line breaks after template parameters.
...
This fixes llvm.org/PR14786.
We will need to split there as a last resort, but that should be done
consistently independent of whether the type is a template type or not.
Before:
template <typename T>
aaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaa<T>
::aaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
After:
template <typename T>
aaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaa,
aaaaaaaaaaaaaaaaaaaaaaaaaa<T>::aaaaaaaaaa,
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
llvm-svn: 171400
2013-01-02 18:30:06 +00:00
Daniel Jasper
3c0431c887
Format */& as binary operator if followed by a unary operator.
...
This fixes llvm.org/PR14687.
Also fixes segfault for lines starting with * or &.
Before:
a *~b;
*a = 1; // <- this segfaulted
After:
a * ~b;
*a = 1; // no segfault :-)
llvm-svn: 171396
2013-01-02 17:21:36 +00:00
Manuel Klimek
a71e5d8115
Fixes use of unescaped newlines when formatting preprocessor directives.
...
This is the first step towards handling preprocessor directives. This
patch only fixes the most pressing issue, namely correctly escaping
newlines for tokens within a sequence of a preprocessor directive.
The next step will be to fix incorrect format decisions on #define
directives.
llvm-svn: 171393
2013-01-02 16:30:12 +00:00
Daniel Jasper
542de16e50
Correctly format pointers and references in casts.
...
This fixes llvm.org/PR14747.
Before: Type *A = (Type * ) P;
After: Type *A = (Type *) P;
llvm-svn: 171390
2013-01-02 15:46:59 +00:00
Daniel Jasper
da1c68ab71
Understand unary operators after "return" and "case".
...
This fixes llvm.org/PR14746.
Before: return - 1;
After: return -1;
llvm-svn: 171389
2013-01-02 15:26:16 +00:00
Daniel Jasper
ac5c1c286c
Prefer splitting after "template <...>" and fix indentation.
...
This addresses llvm.org/PR14699
Before:
template <typename T>
void looooooooooooooooooooooongFunction(int Param1, int Param2);
template <typename T> void looooooooooooooooooooongFunction(
int Paaaaaaaaaaaaaaaaaaaaram1, int Paaaaaaaaaaaaaaaaaaaaram2);
After:
template <typename T>
void looooooooooooooooooooooongFunction(int Param1, int Param2);
template <typename T>
void looooooooooooooooooooongFunction(int Paaaaaaaaaaaaaaaaaaaaram1,
int Paaaaaaaaaaaaaaaaaaaaram2);
llvm-svn: 171388
2013-01-02 15:08:56 +00:00
Daniel Jasper
3d0c75cc96
Prefer to break after operators over breaking after "(".
...
Before:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa && aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
After:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &&
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
llvm-svn: 171386
2013-01-02 14:40:02 +00:00
Richard Smith
89645bc888
s/CXX0X/CXX11/g, except for __GNU_EXPERIMENTAL_CXX0X__, and update a few nearby 'C++0x' comments.
...
llvm-svn: 171372
2013-01-02 12:01:23 +00:00
Chandler Carruth
ffd5551bc7
Rewrite #includes for llvm/Foo.h to llvm/IR/Foo.h as appropriate to
...
reflect the migration in r171366.
Re-sort the #include lines to reflect the new paths.
llvm-svn: 171369
2013-01-02 11:45:17 +00:00
Richard Smith
2bf7fdb723
s/CPlusPlus0x/CPlusPlus11/g
...
llvm-svn: 171367
2013-01-02 11:42:31 +00:00
Chandler Carruth
44eb4f66f4
Re-sort #include lines using the llvm/utils/sort_includes.py script.
...
Removes a duplicate #include as well as cleaning up some sort order
regressions since I last ran the script over Clang.
llvm-svn: 171364
2013-01-02 10:28:36 +00:00
Daniel Jasper
22bcf8a8eb
Understand * and & in ternary expressions.
...
Before: "int a = b ? *c : * d;"
After: "int a = b ? *c : *d;
llvm-svn: 171358
2013-01-02 08:57:10 +00:00
Daniel Jasper
d1926a3758
Don't break after pointer or reference specifier.
...
This fixes llvm.org/PR14717.
Buggy format:
TypeSpecDecl *
TypeSpecDecl::Create(ASTContext &C, DeclContext *DC, SourceLocation L,
IdentifierInfo *II, Type *T) {
Now changed to:
TypeSpecDecl *TypeSpecDecl::Create(ASTContext &C, DeclContext *DC,
SourceLocation L, IdentifierInfo *II,
Type *T) {
llvm-svn: 171357
2013-01-02 08:44:14 +00:00
Rafael Espindola
6525f96f01
Convert an if that never happens to an assert.
...
llvm-svn: 171354
2013-01-02 04:19:07 +00:00
Benjamin Kramer
7a14bc0f4c
Simplify vector splat code. No functionality change.
...
llvm-svn: 171350
2013-01-01 20:08:10 +00:00
Rafael Espindola
aadd30ec52
Silence some warnings and allow passing down some feature flags to the linker.
...
Patch by Brad Smith.
llvm-svn: 171329
2012-12-31 22:41:36 +00:00
Nico Weber
a7c7e60764
Remove some remnants of OwningExprResult / OwningStmtResult.
...
These got deleted late 2010 during the Actions/Sema unification.
No functionality change.
llvm-svn: 171269
2012-12-31 00:28:03 +00:00
Nico Weber
a48b6c2bba
Simplify. No functionality change.
...
llvm-svn: 171268
2012-12-30 23:36:56 +00:00
Rafael Espindola
ea7537f2a2
Don't warn on unused member functions that are extern because of a typedef.
...
llvm-svn: 171267
2012-12-30 21:42:26 +00:00
Dmitri Gribenko
58d64e2bb1
Formatter: parse and format inline namespaces like regular namespaces
...
This changes formatting from:
inline namespace X {
class A {
};
}
to:
inline namespace X {
class A {
};
}
llvm-svn: 171266
2012-12-30 21:27:25 +00:00
Will Dietz
3676d56b71
[ubsan] Recover by default, use -fno-sanitize-recover to disable.
...
llvm-svn: 171264
2012-12-30 20:53:28 +00:00
Rafael Espindola
a5c892058c
Use hasCLanguageLinkage when warning about non C return types.
...
llvm-svn: 171263
2012-12-30 20:40:41 +00:00