]>
granicus.if.org Git - clang/log
Jordan Rose [Fri, 12 Apr 2013 00:44:01 +0000 (00:44 +0000)]
[analyzer] Don't emit extra context arrow after returning from an inlined call.
In this code
int getZero() {
return 0;
}
void test() {
int problem = 1 / getZero(); // expected-warning {{Division by zero}}
}
we generate these arrows:
+-----------------+
| v
int problem = 1 / getZero();
^ |
+---+
where the top one represents the control flow up to the first call, and the
bottom one represents the flow to the division.* It turns out, however, that
we were generating the top arrow twice, as if attempting to "set up context"
after we had already returned from the call. This resulted in poor
highlighting in Xcode.
* Arguably the best location for the division is the '/', but that's a
different problem.
<rdar://problem/
13326040 >
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179350
91177308 -0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 12 Apr 2013 00:32:20 +0000 (00:32 +0000)]
Remove REQUIRES now that r179237 fixed the real problem.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179349
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 12 Apr 2013 00:23:25 +0000 (00:23 +0000)]
Make sure we have the include paths we need
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179347
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 12 Apr 2013 00:18:53 +0000 (00:18 +0000)]
<rdar://problem/
13615607 > Include SDK version information in the module hash.
This is a Darwin-SDK-specific hash criteria used to identify a
particular SDK without having to hash the contents of all of its
headers. If other platforms have such versioned files, we should add
those checks here.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179346
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Thu, 11 Apr 2013 23:57:29 +0000 (23:57 +0000)]
Add test case for r179343.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179344
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Thu, 11 Apr 2013 23:37:53 +0000 (23:37 +0000)]
Test case for r179339.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179340
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Thu, 11 Apr 2013 23:25:27 +0000 (23:25 +0000)]
Flail at trying to appease various linuxy buildbots.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179338
91177308 -0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Thu, 11 Apr 2013 23:02:56 +0000 (23:02 +0000)]
Struct-path aware TBAA: uniformize scalar tag and path tag.
For struct-path aware TBAA, we used to use scalar type node as the scalar tag,
which has an incompatible format with the struct path tag. We now use the same
format: base type, access type and offset.
We also uniformize the scalar type node and the struct type node: name, a list
of pairs (offset + pointer to MDNode). For scalar type, we have a single pair.
These are to make implementaiton of aliasing rules easier.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179335
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Thu, 11 Apr 2013 22:55:55 +0000 (22:55 +0000)]
Fix the driver logic for recent versions of DragonFly.
Patch by John Marino.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179334
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Thu, 11 Apr 2013 21:49:48 +0000 (21:49 +0000)]
Update test case for r179323.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179324
91177308 -0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 11 Apr 2013 19:01:17 +0000 (19:01 +0000)]
Widen the checks in the ms abi memptr test to work under NDEBUG
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179311
91177308 -0d34-0410-b5e6-
96231b3b80d8
Jyotsna Verma [Thu, 11 Apr 2013 18:56:34 +0000 (18:56 +0000)]
Exclude test30 of Sema/return.c for Hexagon since setjmp.h include file
is unavailable for Hexagon.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179310
91177308 -0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Thu, 11 Apr 2013 18:53:25 +0000 (18:53 +0000)]
Add a new -mimplicit-float option for symmetry with -mno-implicit-float.
This new option is the default, but it is useful to have a flag to override
-mno-implicit-float by putting -mimplicit-float later on the command line.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179309
91177308 -0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 11 Apr 2013 18:39:10 +0000 (18:39 +0000)]
Follow Jordan's advice and use {{^}} and {{$}} for this test
This is a better way of ensuring that we match the output of the
rewriter and not the CHECK line.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179308
91177308 -0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 11 Apr 2013 18:13:19 +0000 (18:13 +0000)]
[ms-cxxabi] Implement member pointer emission and dereferencing
Summary:
Handles all inheritance models for both data and function member
pointers.
Also implements isZeroInitializable() and refactors some of the null
member pointer code.
MSVC supports converting member pointers through virtual bases, which
clang does not (yet?) support. Implementing that extension is covered
by http://llvm.org/15713
Reviewers: rjmccall
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D613
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179305
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Thu, 11 Apr 2013 17:37:48 +0000 (17:37 +0000)]
[PCH] Change test/PCH/headersearch.cpp to use -emit-llvm-only instead of -emit-obj
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179301
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Thu, 11 Apr 2013 17:31:13 +0000 (17:31 +0000)]
[libclang] Improve a doxygen comment, as suggested by Jordan.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179300
91177308 -0d34-0410-b5e6-
96231b3b80d8
Jyotsna Verma [Thu, 11 Apr 2013 17:27:18 +0000 (17:27 +0000)]
Hexagon: Remove -g option from the assembler command line.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179299
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Thu, 11 Apr 2013 17:02:10 +0000 (17:02 +0000)]
[libclang] Have clang_getCXXAccessSpecifier() also return the access control of a C++ declaration within its parent scope.
Suggested by Stefan Seefeld.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179297
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Thu, 11 Apr 2013 14:29:13 +0000 (14:29 +0000)]
Change clang-format's affinity for breaking after return types.
Function declarations are now broken with the following preferences:
1) break amongst arguments.
2) break after return type.
3) break after (.
4) break before after nested name specifiers.
Options #2 or #3 are preferred over #1 only if a substantial number of
lines can be saved by that.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179287
91177308 -0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 11 Apr 2013 13:43:19 +0000 (13:43 +0000)]
Fix failing dependencies-and-pp.c test
The bots seem to do more line wrapping because they have longer absolute
paths.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179284
91177308 -0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 11 Apr 2013 13:34:18 +0000 (13:34 +0000)]
Use lit's internal shell runner on Windows for Clang tests
The behavior can be overridden by setting LIT_USE_INTERNAL_SHELL=0 in
the environment.
This fixes issues with /dev/null for me and brings the test suite time
down to 30s. =D
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179283
91177308 -0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 11 Apr 2013 13:24:56 +0000 (13:24 +0000)]
FileCheck-ify more grep tests with quoted double quotes
This required some tedious reordering to match clang's order.
Presumably these ObjC tests were generated based on llvm-gcc's output
ordering.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179282
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Thu, 11 Apr 2013 08:48:20 +0000 (08:48 +0000)]
Fix formatting of overloaded assignment operators.
Before: SomeType &operator=(const SomeType & S);
After: SomeType &operator=(const SomeType &S);
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179270
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ryan Govostes [Thu, 11 Apr 2013 06:04:50 +0000 (06:04 +0000)]
[analyzer] Factor common code from {SymSym,SymInt,IntSym}Expr to BinarySymExpr
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179269
91177308 -0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Thu, 11 Apr 2013 04:16:11 +0000 (04:16 +0000)]
ARCMigrate/Transforms.h: Remove \arg in comment. [-Wdocumentation]
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179261
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Thu, 11 Apr 2013 02:14:26 +0000 (02:14 +0000)]
Drop ObjCIndirectCopyRestoreExprs during template instantiation.
It's a kind of implicit conversion, which we generally drop, but
more importantly it's got very specific placement requirements.
rdar://
13617051
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179254
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Thu, 11 Apr 2013 01:20:11 +0000 (01:20 +0000)]
[libclang] Expose record layout info via new libclang functions:
clang_Type_getAlignOf
clang_Type_getSizeOf
clang_Type_getOffsetOf
clang_Cursor_isBitField
Patch by Loïc Jaquemet!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179251
91177308 -0d34-0410-b5e6-
96231b3b80d8
Jordan Rose [Thu, 11 Apr 2013 00:58:58 +0000 (00:58 +0000)]
Force a load when creating a reference to a temporary copied from a bitfield.
For this source:
const int &ref = someStruct.bitfield;
We used to generate this AST:
DeclStmt [...]
`-VarDecl [...] ref 'const int &'
`-MaterializeTemporaryExpr [...] 'const int' lvalue
`-ImplicitCastExpr [...] 'const int' lvalue <NoOp>
`-MemberExpr [...] 'int' lvalue bitfield .bitfield [...]
`-DeclRefExpr [...] 'struct X' lvalue ParmVar [...] 'someStruct' 'struct X'
Notice the lvalue inside the MaterializeTemporaryExpr, which is very
confusing (and caused an assertion to fire in the analyzer - PR15694).
We now generate this:
DeclStmt [...]
`-VarDecl [...] ref 'const int &'
`-MaterializeTemporaryExpr [...] 'const int' lvalue
`-ImplicitCastExpr [...] 'int' <LValueToRValue>
`-MemberExpr [...] 'int' lvalue bitfield .bitfield [...]
`-DeclRefExpr [...] 'struct X' lvalue ParmVar [...] 'someStruct' 'struct X'
Which makes a lot more sense. This allows us to remove code in both
CodeGen and AST that hacked around this special case.
The commit also makes Clang accept this (legal) C++11 code:
int &&ref = std::move(someStruct).bitfield
PR15694 / <rdar://problem/
13600396 >
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179250
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anton Yartsev [Thu, 11 Apr 2013 00:05:20 +0000 (00:05 +0000)]
[analyzer] Refactoring: better doxygen comment; renaming isTrackedFamily to isTrackedByCurrentChecker
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179242
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 10 Apr 2013 23:10:42 +0000 (23:10 +0000)]
comment parsing. Add couple more needed doxygen tags.
// rdar://
12379053
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179238
91177308 -0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Wed, 10 Apr 2013 23:09:00 +0000 (23:09 +0000)]
get rid of stdio.h include in testcase
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179237
91177308 -0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Wed, 10 Apr 2013 23:08:57 +0000 (23:08 +0000)]
add mips target requirement to testcase
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179236
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anna Zaks [Wed, 10 Apr 2013 22:56:33 +0000 (22:56 +0000)]
[analyzer] Address Jordan’s review of r179219
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179235
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anna Zaks [Wed, 10 Apr 2013 22:56:30 +0000 (22:56 +0000)]
[analyzer] Address Jordan’s code review of r 179221
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179234
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anton Yartsev [Wed, 10 Apr 2013 22:36:16 +0000 (22:36 +0000)]
[analyzer] +Testcase: several used-after-free args passed to a function.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179232
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anton Yartsev [Wed, 10 Apr 2013 22:21:41 +0000 (22:21 +0000)]
[analyzer] Switched to checkPreCall interface for detecting usage after free.
Now the check is also applied to arguments for Objective-C method calls and to 'this' pointer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179230
91177308 -0d34-0410-b5e6-
96231b3b80d8
Jack Carter [Wed, 10 Apr 2013 22:10:45 +0000 (22:10 +0000)]
Mips specific inline asm memory operand modifier test case
These changes are based on commit responses for r179135.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179229
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anna Zaks [Wed, 10 Apr 2013 22:06:29 +0000 (22:06 +0000)]
[analyzer] Fix a crash in SyntaxCString checker when given a custom strncat.
Fixes PR13476
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179228
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anna Zaks [Wed, 10 Apr 2013 21:42:06 +0000 (21:42 +0000)]
[analyzer] When reporting a leak in RetainCount checker due to an early exit from init, step into init.
The heuristic here (proposed by Jordan) is that, usually, if a leak is due to an early exit from init, the allocation site will be
a call to alloc. Note that in other cases init resets self to [super init], which becomes the allocation site of the object.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179221
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anna Zaks [Wed, 10 Apr 2013 21:42:02 +0000 (21:42 +0000)]
[analyzer] Cleanup leak warnings: do not print the names of variables from other functions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179219
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 10 Apr 2013 21:30:40 +0000 (21:30 +0000)]
For split dwarf we should also run the objcopy action if we're
just assembling a file and have passed the option.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179218
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Wed, 10 Apr 2013 21:30:03 +0000 (21:30 +0000)]
Remove unused arguments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179217
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Wed, 10 Apr 2013 21:26:02 +0000 (21:26 +0000)]
[driver] Add a -Ofast option, which enables -O3, -ffast-math, and
-fstrict-aliasing.
rdar://
13622687
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179216
91177308 -0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 10 Apr 2013 21:10:39 +0000 (21:10 +0000)]
FileCheck-ify some clang grep tests that use double quotes
The escaping interaction between Python and grep doesn't work on my
system. This change fixes the tests for me.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179214
91177308 -0d34-0410-b5e6-
96231b3b80d8
Dmitri Gribenko [Wed, 10 Apr 2013 18:43:09 +0000 (18:43 +0000)]
-fparse-all-comments: remove redundant check, as suggested by Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179204
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Wed, 10 Apr 2013 18:08:17 +0000 (18:08 +0000)]
[ms-inline asm] Move a few test cases from the 32-bit version to the 64-bit
version as lea is only available in 64-bit mode.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179190
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Wed, 10 Apr 2013 16:33:34 +0000 (16:33 +0000)]
[ms-inline asm] Add a few test cases that were regressed by r179115. That
commit was reverted in r179120, but I do plan on reapplying with a fix shortly.
Part of rdar://
13611297
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179182
91177308 -0d34-0410-b5e6-
96231b3b80d8
Dmitri Gribenko [Wed, 10 Apr 2013 16:31:58 +0000 (16:31 +0000)]
Add testcases for -fparse-all-comments
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179181
91177308 -0d34-0410-b5e6-
96231b3b80d8
Dmitri Gribenko [Wed, 10 Apr 2013 15:35:17 +0000 (15:35 +0000)]
Add an option to parse all comments as documentation comments
Patch by Amin Shali.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179180
91177308 -0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Wed, 10 Apr 2013 09:52:05 +0000 (09:52 +0000)]
Fixes recovering from errors when parsing braced init lists.
Before we would build huge unwrapped lines which take a long time
to optimze.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179168
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Wed, 10 Apr 2013 09:49:49 +0000 (09:49 +0000)]
Fix labels with trailing comments and cleanup.
Before:
class A {
public : // test
};
After:
class A {
public: // test
};
Also remove duplicate methods calculating properties of AnnotatedTokens
and make them members of AnnotatedTokens so that they are in a common
place.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179167
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 10 Apr 2013 06:26:26 +0000 (06:26 +0000)]
Handle "typeof" in Objective-C format string checking. This previously crashed.
Yes, this came from actual code.
Fixes <rdar://problem/
13557053 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179155
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 10 Apr 2013 06:11:48 +0000 (06:11 +0000)]
Add support for computing the exception specification for an inheriting
constructor. This isn't quite perfect (as usual, we don't handle default
arguments correctly yet, and we don't deal with copy/move constructors for
arguments correctly either, but this will be fixed when we implement core issue
1351.
This completes our support for inheriting constructors.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179154
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Wed, 10 Apr 2013 06:08:21 +0000 (06:08 +0000)]
Don't crash when mangling types defined in ObjC class extensions.
The original test case here was mangling a type name for TBAA,
but we can provoke this in C++11 easily enough.
rdar://
13434937
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179153
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 10 Apr 2013 05:48:59 +0000 (05:48 +0000)]
C++11 inheriting constructors: support for inheriting constructor templates.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179151
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 10 Apr 2013 05:18:00 +0000 (05:18 +0000)]
<rdar://problem/
13605348 > Don't consider invalid user-defined literal operators during overload resolution.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179150
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Wed, 10 Apr 2013 01:53:50 +0000 (01:53 +0000)]
[frontend] -frewrite-includes: turn implicit module imports into @imports.
rdar://
13610250
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179145
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Wed, 10 Apr 2013 01:53:46 +0000 (01:53 +0000)]
[frontend] When preprocessing, turn implicit module imports into @imports.
part of rdar://
13610250
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179144
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Wed, 10 Apr 2013 01:53:37 +0000 (01:53 +0000)]
[frontend] -frewrite-includes: if there was no inclusion, don't add lineinfo that indicates return from another file.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179143
91177308 -0d34-0410-b5e6-
96231b3b80d8
Michael Ilseman [Wed, 10 Apr 2013 01:41:19 +0000 (01:41 +0000)]
Repeat some #line directive tests for the GNU line marker directive.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179142
91177308 -0d34-0410-b5e6-
96231b3b80d8
Michael Ilseman [Wed, 10 Apr 2013 01:04:18 +0000 (01:04 +0000)]
Improve the diagnostics of the number-reading preprocessor directives.
The GNU line marker directive was sharing code with the #line directive, but some of the warnings/errors were reporting as #line directive diagnostics in both cases.
Previously:
#line 11foo1 ==> "#line directive requires a simple digit sequence"
# 11foo1 ==> "#line directive requires a simple digit sequence"
Now, we get:
#line 11foo1 ==> "#line directive requires a simple digit sequence"
# 11foo1 ==> "GNU line marker directive requires a simple digit sequence"
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179139
91177308 -0d34-0410-b5e6-
96231b3b80d8
Matt Beaumont-Gay [Wed, 10 Apr 2013 00:47:10 +0000 (00:47 +0000)]
Suppress -Wunused-variable for variables declared in headers, which may in
fact be defined and used in another TU.
Reshuffle some test cases because we suppress -Wunused-variable after we've
emitted an error.
This fixes PR15558.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179138
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Trieu [Tue, 9 Apr 2013 22:06:27 +0000 (22:06 +0000)]
Remove outdated run lines from tests.
These run lines originally tested that the fix-its were properly applied.
Originally, the fixits were attached to warnings and were applied by -fixit.
Now, the fixits are attached to notes, so nothing happens. These run lines
still manage to pass since Clang will produce an empty output which gets piped
back to Clang. Then Clang produces no error on an empty input.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179131
91177308 -0d34-0410-b5e6-
96231b3b80d8
Edwin Vane [Tue, 9 Apr 2013 20:51:47 +0000 (20:51 +0000)]
Updating cpp11-migrate transform list in ClangTools docs
Author: Philip Dunstan <phil@phildunstan.com>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179128
91177308 -0d34-0410-b5e6-
96231b3b80d8
Edwin Vane [Tue, 9 Apr 2013 20:46:36 +0000 (20:46 +0000)]
Adding new AST Matchers isVirtual and isOverride
isVirtual - matches CXXMethodDecl nodes for virtual methods
isOverride - matches CXXMethodDecl nodes for methods that override virtual methods from a base class.
Author: Philip Dunstan <phil@philipdunstan.com>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179126
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Tue, 9 Apr 2013 20:29:24 +0000 (20:29 +0000)]
[c-index-test] Enable 'display diagnostics' when using the -test-load functionality.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179123
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Tue, 9 Apr 2013 20:03:03 +0000 (20:03 +0000)]
[libclang] In cxtu::getASTUnit(), check for a null CXTranslationUnit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179121
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 9 Apr 2013 17:52:29 +0000 (17:52 +0000)]
Objective-C: This patch fixes a none-issuance of warning
when result type of protocol property and getter method
differ by fixing a more serious problem. When a forward
protocol declaration comes between its definition and
its use in class protocol list, the forward protocol
ast was being used in building the protocol list.
// rdar://
12522752
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179108
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Tue, 9 Apr 2013 17:46:55 +0000 (17:46 +0000)]
Fix comments before labels.
Before:
switch (...) {
// a
// b
// c
case first:
break;
}
After:
switch (...) {
// a
// b
// c
case first:
break;
}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179107
91177308 -0d34-0410-b5e6-
96231b3b80d8
Alexander Kornienko [Tue, 9 Apr 2013 16:15:19 +0000 (16:15 +0000)]
Again macros without trailing semicolons: don't care about declaration context.
Summary:
Some codebases use these kinds of macros in functions, e.g. Chromium's
IPC_BEGIN_MESSAGE_MAP, IPC_BEGIN_MESSAGE_HANDLER, etc.
Reviewers: djasper, klimek
Reviewed By: klimek
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D645
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179099
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Tue, 9 Apr 2013 15:23:04 +0000 (15:23 +0000)]
Improvements to clang-format integrations.
This adds an emacs editor integration (thanks to Ami Fischman). Also
pulls out the style into a variable for the vi integration and just
uses clang-formats defaults style in clang-format-diff.py.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179098
91177308 -0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 9 Apr 2013 12:51:24 +0000 (12:51 +0000)]
Mention the changes in the handling of language linkage in the release notes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179094
91177308 -0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Tue, 9 Apr 2013 12:47:38 +0000 (12:47 +0000)]
[ms-cxxabi] Add "$$C" when mangling template arg QualTypes
Credit goes to Timur Iskhodzhanov for finding the problem and solution.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179093
91177308 -0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Tue, 9 Apr 2013 12:28:19 +0000 (12:28 +0000)]
One more follow-up to r179082 - parse PIC/PIE arguments even on platfroms that force default PIC (like Darwin x86-64), otherwise specifying -fPIC will produce bogus unused argument warning
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179092
91177308 -0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Tue, 9 Apr 2013 07:27:44 +0000 (07:27 +0000)]
Follow-up for r179082: more careful handling of -f(no-)sanitize-address-zero-base-shadow on Android
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179089
91177308 -0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Tue, 9 Apr 2013 04:35:11 +0000 (04:35 +0000)]
If the user requested a zero-base-shadow sanitizer, infer -pie and -fPIC when appropriate.
Differential Revision: http://llvm-reviews.chandlerc.com/D502
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179082
91177308 -0d34-0410-b5e6-
96231b3b80d8
Jordan Rose [Tue, 9 Apr 2013 02:30:33 +0000 (02:30 +0000)]
[analyzer] Replace isIntegerType() with isIntegerOrEnumerationType().
Previously, the analyzer used isIntegerType() everywhere, which uses the C
definition of "integer". The C++ predicate with the same behavior is
isIntegerOrUnscopedEnumerationType().
However, the analyzer is /really/ using this to ask if it's some sort of
"integrally representable" type, i.e. it should include C++11 scoped
enumerations as well. hasIntegerRepresentation() sounds like the right
predicate, but that includes vectors, which the analyzer represents by its
elements.
This commit audits all uses of isIntegerType() and replaces them with the
general isIntegerOrEnumerationType(), except in some specific cases where
it makes sense to exclude scoped enumerations, or any enumerations. These
cases now use isIntegerOrUnscopedEnumerationType() and getAs<BuiltinType>()
plus BuiltinType::isInteger().
isIntegerType() is hereby banned in the analyzer - lib/StaticAnalysis and
include/clang/StaticAnalysis. :-)
Fixes real assertion failures. PR15703 / <rdar://problem/
12350701 >
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179081
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Tue, 9 Apr 2013 01:56:28 +0000 (01:56 +0000)]
When checking for illegal expressions in a default-argument
expression, look through pseudo-object expressions.
rdar://
13602832
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179080
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 9 Apr 2013 01:49:26 +0000 (01:49 +0000)]
Skip transparent contexts when looking for using directives in name lookup.
Fixes the bootstrap regression I introduced in r179067.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179079
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Tue, 9 Apr 2013 01:17:02 +0000 (01:17 +0000)]
Mark as referenced the functions from instantiated UserDefinedLiterals.
Fixes rdar://
13589856
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179078
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anna Zaks [Tue, 9 Apr 2013 00:30:28 +0000 (00:30 +0000)]
[analyzer] Keep tracking the pointer after the escape to more aggressively report mismatched deallocator
Test that the path notes do not change. I don’t think we should print a note on escape.
Also, I’ve removed a check that assumed that the family stored in the RefStete could be
AF_None and added an assert in the constructor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179075
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 8 Apr 2013 23:39:32 +0000 (23:39 +0000)]
Add test case calling a deprecated method from a subclass that reimplements that method gets a warning.
Test case from <rdar://problem/
11627873 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179070
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Mon, 8 Apr 2013 23:27:49 +0000 (23:27 +0000)]
Don't copy just to capture a strong block pointer under ARC.
It turns out that the optimizer can't eliminate this without extra
information, for which there's a separate bug.
rdar://
13588325
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179069
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 8 Apr 2013 23:24:07 +0000 (23:24 +0000)]
<rdar://problem/
13584715 > Converted constant expressions are expected to have integral values.
We were assuming that any expression used as a converted constant
expression would either not have a folded constant value or would be
an integer, which is not the case for some ill-formed constant
expressions. Because converted constant expressions are only used
where integral values are expected, we can simply treat this as an
error path. If that ever changes, we'll need to widen the interface of
Sema::CheckConvertedConstantExpression() anyway.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179068
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 8 Apr 2013 23:11:25 +0000 (23:11 +0000)]
<rdar://problem/
13540899 > Collect using directives from all of the semantic contexts not represented by scopes.
This fixes a regression I introduced in r178136, where we would not
consider the using directives from the semantic declaration contexts
that aren't represented by the lexical scopes (Scope) when performing
unqualified name lookup. This lead to horribly funny diagnostics like
"no identifier named 'foo'; did you mean 'foo'?".
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179067
91177308 -0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Mon, 8 Apr 2013 23:05:10 +0000 (23:05 +0000)]
clang/test/Index/annotate-tokens.cpp: Appease msvc-targets with -fno-delayed-template-parsing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179065
91177308 -0d34-0410-b5e6-
96231b3b80d8
Alexander Kornienko [Mon, 8 Apr 2013 22:16:06 +0000 (22:16 +0000)]
Recognize function-like macro usages without semicolon in declaration context.
Summary:
Preserve line breaks after function-like macro usages without
semicolon, e.g.:
QQQ(xxx)
class X {
};
Reviewers: djasper, klimek
Reviewed By: djasper
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D638
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179064
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Mon, 8 Apr 2013 21:55:21 +0000 (21:55 +0000)]
Fix typo in assertion.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179061
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Mon, 8 Apr 2013 21:31:01 +0000 (21:31 +0000)]
The PNaCl target no longer permits __attribute__((regparm)).
Remove the custom lowering code dealing with it, disallow it in PNaclTargetInfo
and adjust tests accordingly.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179059
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 8 Apr 2013 21:13:13 +0000 (21:13 +0000)]
<rdar://problem/
13559825 > Further reduce template instantiation depth down to 256, since we're blowing the stack for a trivial "factorial" class template.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179057
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Trieu [Mon, 8 Apr 2013 21:11:40 +0000 (21:11 +0000)]
Fix PR15634, better error message for template deduction failure.
When two template decls with the same name are used in this diagnostic,
force them to print their qualified names. This changes the bad message of:
candidate template ignored: could not match 'array' against 'array'
to the better message of:
candidate template ignored: could not match 'NS2::array' against 'NS1::array'
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179056
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 8 Apr 2013 21:02:16 +0000 (21:02 +0000)]
Update checker build to checker-273
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179055
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 8 Apr 2013 20:52:24 +0000 (20:52 +0000)]
<rdar://problem/
13540921 > Fix a crasher when an Objective-C for-in loop gets a non-variable iteration declaration.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179053
91177308 -0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Mon, 8 Apr 2013 20:52:12 +0000 (20:52 +0000)]
fix indentation
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179052
91177308 -0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 8 Apr 2013 20:36:44 +0000 (20:36 +0000)]
The recent GCOV changes expect the initial version string to be in forward order.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179050
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Mon, 8 Apr 2013 20:33:42 +0000 (20:33 +0000)]
DeLesley Hutchins [Mon, 8 Apr 2013 20:11:11 +0000 (20:11 +0000)]
Thread safety analysis: turn on checking within lock and unlock functions.
These checks are enabled with the -Wthread-safety-beta flag.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179046
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Mon, 8 Apr 2013 19:14:15 +0000 (19:14 +0000)]
fixes a typo in my last patch.
// rdar://
12379114
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179042
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Apr 2013 18:56:15 +0000 (18:56 +0000)]
In the comparison, both clang and GCC are popular and widely adopted. This is no longer a win of GCC.
This whole doc should really be looked at.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179040
91177308 -0d34-0410-b5e6-
96231b3b80d8