Anton Yartsev
3f8f2886c1
comparison of AltiVec vectors now gives bool result (fix for 7533)
...
llvm-svn: 119678
2010-11-18 03:19:30 +00:00
Ted Kremenek
5d304a34c6
CursorVisitor: switch remaining expressions over
...
to the data-recursion algorithm. CursorVisitor
now no longer subclasses StmtVisitor.
llvm-svn: 119596
2010-11-18 00:42:18 +00:00
Argyrios Kyrtzidis
ef6c8da50f
-Rename -Wargument-larger-than -> -Wlarge-by-value-copy
...
-Improve the diagnostic message
-Add some comments
Suggestions by Chris.
llvm-svn: 119594
2010-11-18 00:20:36 +00:00
Ted Kremenek
8390027a99
CursorVisitor: migrate handling of
...
'DependentScopeDeclRefExpr' and
'CXXDependentScopeMemberExpr' to the
data-recursion algorithm.
llvm-svn: 119591
2010-11-18 00:02:32 +00:00
Ted Kremenek
7df92ae92b
Make definition of CXTranslationUnitImpl private
...
to libclang.
llvm-svn: 119585
2010-11-17 23:24:11 +00:00
Argyrios Kyrtzidis
af84ec0a96
Introduce option -Wargument-larger-than[=N] which warns about function definitions if they take by-value
...
or return by-value any POD that is larger than some threshold (default is 64 bytes).
Implements rdar://8548050.
llvm-svn: 119583
2010-11-17 23:11:54 +00:00
Rafael Espindola
d47ac23154
Implement -pie.
...
llvm-svn: 119577
2010-11-17 22:26:15 +00:00
Rafael Espindola
cfaaddaee0
Don't warn about
...
clang -w -c foo.s
Helps with the gdb testsuite.
llvm-svn: 119574
2010-11-17 22:13:25 +00:00
Douglas Gregor
b4a7c0385d
Do not produce "purely informative" code completion results for
...
Objective-C message sends, which have only whitespace in their
TypedText chunk. Such results have no purpose.
llvm-svn: 119569
2010-11-17 21:36:08 +00:00
Marcin Swiderski
af56739355
In EvalArguments allow for evaluation of first argument always as a lvalue. Will be used for CXXOperatorCallExpr that represents method call.
...
llvm-svn: 119567
2010-11-17 21:27:36 +00:00
Rafael Espindola
f92614c578
Don't warn about -w not being used in a link. Necessary to get sane
...
results in the gdb testsuite.
llvm-svn: 119552
2010-11-17 20:37:10 +00:00
Fariborz Jahanian
8046af7d50
Warn if direct accessing synthesized ivar backing the property in
...
nonofragile-abi2. Fixes //rdar://8673791
llvm-svn: 119543
2010-11-17 19:41:23 +00:00
Argyrios Kyrtzidis
56e879d1da
Don't emit warn_logical_and_in_logical_or for cases like "a && b || 0".
...
llvm-svn: 119540
2010-11-17 19:18:19 +00:00
Argyrios Kyrtzidis
b94e5a33b3
Don't emit warn_logical_and_in_logical_or for macros. Fixes rdar://8678458
...
llvm-svn: 119537
2010-11-17 18:54:22 +00:00
Argyrios Kyrtzidis
14a96625b8
Don't warn for parentheses for the '&&' inside '||' for cases like:
...
assert(a || b && "bad");
since this is safe. This way we avoid a big source of such warnings which in this case are practically useless.
Note that we don't handle *all* cases where precedence wouldn't matter because of constants since
this is a bit costly to check, and IMO clarifying precedence with parentheses is good for
readability in general.
llvm-svn: 119533
2010-11-17 18:26:36 +00:00
Argyrios Kyrtzidis
f10c43c7f7
Put warn_logical_and_in_logical_or warning in new warning group "logical-op-parentheses" member of "parentheses".
...
llvm-svn: 119532
2010-11-17 18:26:33 +00:00
Dan Gohman
ff66a7c66d
Add a comment explaining why r117813 was needed.
...
llvm-svn: 119518
2010-11-17 17:23:53 +00:00
Dan Gohman
f41b525161
Drop the warning about __attribute__((may_alias)) being used
...
on a non-type declaration, as GCC permits it on variables too.
This fixes PR8635.
llvm-svn: 119517
2010-11-17 17:21:47 +00:00
Douglas Gregor
30313cbb80
When libclang is walking a member access expression, don't walk into
...
an implicit "this"; it causes clang_getCursor() to find the implicit
"this" expression (which isn't written in the source!) rather than the
actual member.
llvm-svn: 119516
2010-11-17 17:15:08 +00:00
Douglas Gregor
29ee422861
When comparing the source range of a declaration against the region of
...
interest (e.g., as used by clang_getCursor()), count the
decl-specifier-seq as part of the source range, as we do for
clang_annotateTokens(). Makes clang_getCursor() work properly for the
result types of functions, for example.
llvm-svn: 119514
2010-11-17 17:14:07 +00:00
Rafael Espindola
9b6fae5d6d
Silence warning for "clang -O2 -O0 -c foo.c -o foo.o.
...
Fixes PR8607.
llvm-svn: 119498
2010-11-17 15:16:14 +00:00
Zhongxing Xu
33d7ea9355
Add skeleton for handling various cfg dtors.
...
llvm-svn: 119491
2010-11-17 09:16:19 +00:00
Chris Lattner
11feaf5921
When forming the !srcloc mdnode for an inline asm, add the SourceLocations
...
of all the lines of the inline asm. With the refactoring and enhancement
of the backend, we can now reports errors on the correct source line when
an asm contains multiple lines of text. For something like this:
void foo() {
asm("push %rax\n"
".code32\n");
}
we used to get this: (note that the line 4 in t.c isn't helpful)
t.c:4:7: error: warning: ignoring directive for now
asm("push %rax\n"
^
<inline asm>:2:1: note: instantiated into assembly here
.code32
^
now we get:
t.c:5:8: error: warning: ignoring directive for now
".code32\n"
^
<inline asm>:2:1: note: instantiated into assembly here
.code32
^
Note that we're pointing to line 5 properly now. This implements
rdar://7839391 - inline asm errors should point to the right line in the asm
and makes the error message in PR8595 much less confusing.
llvm-svn: 119489
2010-11-17 08:25:26 +00:00
Chris Lattner
068f2ab10f
adjust for llvm mainline, yay type safety
...
llvm-svn: 119487
2010-11-17 08:13:04 +00:00
Chris Lattner
e925d61785
a metric ton of refactoring later, Sema::getLocationOfStringLiteralByte
...
no longer depends on Preprocessor, so we can move it out of Sema into
a nice new StringLiteral::getLocationOfByte method that can be used by
any AST client.
llvm-svn: 119481
2010-11-17 07:37:15 +00:00
Zhongxing Xu
35d023164c
do not do post checks. Because at this point we just enter the call.
...
llvm-svn: 119480
2010-11-17 07:31:08 +00:00
Chris Lattner
39720111e0
move getSpelling from Preprocessor to Lexer, which it is more conceptually related to.
...
llvm-svn: 119479
2010-11-17 07:26:20 +00:00
Zhongxing Xu
366340298e
Remove comments. We are already doing actual method call by inlining it.
...
llvm-svn: 119477
2010-11-17 07:21:49 +00:00
Chris Lattner
6bab435db6
propagate preprocessor out of StringLiteralParser. It is now
...
possible to create one without a preprocessor.
llvm-svn: 119476
2010-11-17 07:21:13 +00:00
Chris Lattner
2be8aa9611
push the preprocessor out of EncodeUCNEscape
...
llvm-svn: 119475
2010-11-17 07:12:42 +00:00
Chris Lattner
2a6ee91619
move AdvanceToTokenCharacter and getLocForEndOfToken from
...
Preprocessor to Lexer where they make more sense.
llvm-svn: 119474
2010-11-17 07:05:50 +00:00
Chris Lattner
b1ab2c2d3d
add a static version of PP::AdvanceToTokenCharacter.
...
llvm-svn: 119472
2010-11-17 06:55:10 +00:00
Chris Lattner
bde1b81eb8
push use of Preprocessor out farther.
...
llvm-svn: 119471
2010-11-17 06:46:14 +00:00
Chris Lattner
3a324d3232
push use of Preprocessor out of getOffsetOfStringByte
...
llvm-svn: 119470
2010-11-17 06:35:43 +00:00
Chris Lattner
30d4c928ac
add a static form of the efficient PP::getSpelling method.
...
llvm-svn: 119469
2010-11-17 06:31:48 +00:00
Chris Lattner
7a02bfdfce
refactor the interface to StringLiteralParser::getOffsetOfStringByte,
...
pushing the dependency on the preprocessor out a bit.
llvm-svn: 119468
2010-11-17 06:26:08 +00:00
Marcin Swiderski
2b2cd0e6b4
Added mapping from 'this' to it's SymbolicRegion in BasicStoreManager::getInitialStore.
...
llvm-svn: 119467
2010-11-17 06:22:54 +00:00
Chris Lattner
776a30ddfc
factor some code out to a helper function, no functionality change.
...
llvm-svn: 119464
2010-11-17 05:58:54 +00:00
Ted Kremenek
9f49b37f25
CursorVisitor: Migrate handling of
...
'SizeOfAlignOfExpr' and 'CXXSCalarValueInitExpr'
to data-recursion algorithm.
llvm-svn: 119452
2010-11-17 02:18:35 +00:00
Douglas Gregor
b1b71e50a0
For an Objective-C @synthesize statement, e.g.,
...
@synthesize foo = _foo;
keep track of the location of the ivar ("_foo"). Teach libclang to
visit the ivar as a member reference.
llvm-svn: 119447
2010-11-17 01:03:52 +00:00
Ted Kremenek
7003a50b77
CursorVisitor: migrate handling of CXXUuidofExpr to
...
data-recursion algorithm.
llvm-svn: 119444
2010-11-17 00:50:52 +00:00
Ted Kremenek
513cd579b6
CursorVisitor: migrate handling of UnaryTypeTraitExpr
...
to data-recursion algorithm.
llvm-svn: 119443
2010-11-17 00:50:50 +00:00
Ted Kremenek
8eaa165c7e
CursorVisitor: refactor visitation of
...
explicit template args within data-recursion
algorithm.
llvm-svn: 119442
2010-11-17 00:50:47 +00:00
Ted Kremenek
e48db8dfae
CursorVisitor: migrate handling of
...
AddrLabelExpr to data-recursion algorithm, and
unify that reasoning with GotoStmt.
llvm-svn: 119441
2010-11-17 00:50:45 +00:00
Ted Kremenek
c1c30cd329
CursorVisitor: migrate handling of
...
VAArgExpr to data-recursion algorithm.
llvm-svn: 119440
2010-11-17 00:50:43 +00:00
Ted Kremenek
a51cc43261
CursorVisitor: migrate handling of
...
CXXTypeidExpr to data-recursion algorithm.
llvm-svn: 119439
2010-11-17 00:50:41 +00:00
Ted Kremenek
dd0d4b4192
CursorVisitor: migrate handling of
...
TypesCompatibleExpr to data-recursion algorithm.
llvm-svn: 119438
2010-11-17 00:50:39 +00:00
Ted Kremenek
79ddc67caa
CursorVisitor: Migrate CXXUnresolvedConstructExpr over to data-recursive algorithm.
...
llvm-svn: 119437
2010-11-17 00:50:36 +00:00
Ted Kremenek
32195d9a58
Add comments.
...
llvm-svn: 119436
2010-11-17 00:50:34 +00:00
Bob Wilson
db04141f9a
Re-enable test with modifications for Neon vector changes in clang.
...
I mistakenly thought that this was checking for vector name mangling, but
it is not. Since we're no longer wrapping Neon vectors in structs, this
test can just return a vector directly. There are already other tests for
that, so just to make this interesting, change the test to return a struct
of two vectors.
llvm-svn: 119434
2010-11-17 00:44:53 +00:00