Douglas Gregor
133edddd82
Devirtualize Decl::getNextRedeclaration().
...
llvm-svn: 125740
2011-02-17 08:47:29 +00:00
Chandler Carruth
712563bba4
Implement -Wenum-compare, which warns when comparing two enums of
...
different types. We omit the warning when the enum types are anonymous.
Unlike GCC, this warning does not distinguish between C++ and C/ObjC for
controling whether it is on by default, it is always on by default.
Original patch contributed by Richard Trieu (@ Google), I fixed some
style issues, and cleaned it up for submission.
llvm-svn: 125739
2011-02-17 08:37:06 +00:00
Douglas Gregor
5ee06f02f9
Simple little optimization to Decl::getCanonicalDecl(), eliminating some heavyweight machinery and indirection that we don't need
...
llvm-svn: 125737
2011-02-17 08:14:56 +00:00
Douglas Gregor
00716e8bd3
Devirtualize Decl::getSourceRange()
...
llvm-svn: 125736
2011-02-17 08:12:32 +00:00
Douglas Gregor
7edc20ac24
Devirtualize Decl::getCanonicalDecl().
...
llvm-svn: 125735
2011-02-17 07:58:36 +00:00
Chris Lattner
c8e630e4db
Step #1/N of implementing support for __label__: split labels into
...
LabelDecl and LabelStmt. There is a 1-1 correspondence between the
two, but this simplifies a bunch of code by itself. This is because
labels are the only place where we previously had references to random
other statements, causing grief for AST serialization and other stuff.
This does cause one regression (attr(unused) doesn't silence unused
label warnings) which I'll address next.
This does fix some minor bugs:
1. "The only valid attribute " diagnostic was capitalized.
2. Various diagnostics printed as ''labelname'' instead of 'labelname'
3. This reduces duplication of label checking between functions and blocks.
Review appreciated, particularly for the cindex and template bits.
llvm-svn: 125733
2011-02-17 07:39:24 +00:00
Douglas Gregor
f7b2c93b2f
Devirtualize Decl::getBody() and Decl::hasBody().
...
llvm-svn: 125731
2011-02-17 07:13:24 +00:00
Douglas Gregor
a43942a48e
De-virtualize Decl::isOutOfLine().
...
llvm-svn: 125730
2011-02-17 07:02:32 +00:00
Douglas Gregor
b0f2ea9e9e
When printing a qualified type, look through a substituted template
...
parameter type to see what's behind it, so that we don't end up
printing silly things like "float const *" when "const float *" would
make more sense. Also, replace the pile of "isa" tests with a simple
switch enumerating all of the cases, making a few more obvious cases
use prefix qualifiers.
llvm-svn: 125729
2011-02-17 06:52:25 +00:00
Chris Lattner
5a9b1ec94c
simplify a bit.
...
llvm-svn: 125724
2011-02-17 05:38:27 +00:00
Douglas Gregor
230a7e60b1
Improve parser recovery in "for" statements, from Richard Smith!
...
llvm-svn: 125722
2011-02-17 03:38:46 +00:00
Douglas Gregor
0e5d72f164
I will not hold on to temporary StringRefs.
...
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
llvm-svn: 125718
2011-02-17 03:19:26 +00:00
Douglas Gregor
9c1f1bfedc
When Parser::ParseExpressionList isn't given a completer, fall back to
...
normal "expression" completion. Fixes the most annoying
code-completion bug I've found.
llvm-svn: 125715
2011-02-17 03:09:23 +00:00
Matt Beaumont-Gay
956fc1cb81
Fix PR9025 and add a diagnostic (and sometimes a fixit) for an overloaded
...
function name used as the base of a member expression. Early feedback from
Chandler Carruth, and code review from Nick Lewycky.
llvm-svn: 125714
2011-02-17 02:54:17 +00:00
Ted Kremenek
378313944f
Disable default synthesized properties until we can properly re-evaluate the feature.
...
llvm-svn: 125708
2011-02-17 02:17:56 +00:00
Chris Lattner
5df2a4e8df
fix clang -MM output to escape spaces in filenames. This seems to be
...
the only character that GCC escapes. PR9224.
llvm-svn: 125707
2011-02-17 02:14:49 +00:00
Ken Dyck
02ced6fd19
Convert MaxFieldAlignment to CharUnits from bits. No change in functionality
...
intended.
llvm-svn: 125704
2011-02-17 01:49:42 +00:00
Fariborz Jahanian
05d389f407
Improve diagnostics when property names an object type of
...
a forward class. // rdar://8851803
llvm-svn: 125699
2011-02-17 01:26:14 +00:00
Douglas Gregor
669a25aec3
Implement code completion results for the Objective-C Key-Value Coding
...
(KVC) and Key-Value Observing (KVO) protocols.
llvm-svn: 125696
2011-02-17 00:22:45 +00:00
Nick Lewycky
8d2226208d
Ensure that the NRVO flag has some block to insert into. Fixes PR9178!
...
llvm-svn: 125694
2011-02-16 23:59:08 +00:00
Ted Kremenek
197fcd4418
Fix assertion failure in -Warray-bounds on template parameters used as arrays.
...
llvm-svn: 125693
2011-02-16 23:39:09 +00:00
Fariborz Jahanian
9cd649d376
Block rewriting bug. Don't take address of captured
...
byref variables again when passing them to inner blocks.
// rdar://9006279
llvm-svn: 125690
2011-02-16 22:37:10 +00:00
Zhanyong Wan
85a203ebdd
Makes most methods in SVals.h conform to the naming guide. Reviewed
...
by kremenek.
llvm-svn: 125687
2011-02-16 21:13:32 +00:00
Douglas Gregor
d766be689d
Fix a thinko with llvm::Optional, which is clearly the most dangerous class template in the universe
...
llvm-svn: 125679
2011-02-16 19:09:24 +00:00
Douglas Gregor
162b712d38
Teach the CXCodeCompleteResults results structure, which stores
...
code-completion results accessed via libclang, to extend the lifetime
of the allocator used for cached global code-completion results at
least until these completion results are destroyed. Fixes
<rdar://problem/8997369>.
llvm-svn: 125678
2011-02-16 19:08:06 +00:00
Devang Patel
1728c232d5
If preprocessed token introduced empty filename then use main translation unit's filename for debug info entries.
...
llvm-svn: 125672
2011-02-16 18:40:36 +00:00
Douglas Gregor
df7a79a997
Improve the invalidation logic for the cache of global code
...
completions. We now compute a hash of the names of all top-level
declarations and macro definitions, and invalidate the cache when the
hash value changes.
llvm-svn: 125670
2011-02-16 18:16:54 +00:00
John McCall
b5011ab8f9
Remove this FIXME; clear up an unused variable; style.
...
llvm-svn: 125662
2011-02-16 08:39:19 +00:00
John McCall
1bf5846abf
Save a copy expression for non-trivial copy constructions of catch variables.
...
llvm-svn: 125661
2011-02-16 08:02:54 +00:00
Ted Kremenek
108b2d56bf
Tweak -Warray-bounds diagnostics based on feedback from Chandler.
...
llvm-svn: 125649
2011-02-16 04:01:44 +00:00
Nick Lewycky
bb1e5079b2
Revert r125642. This broke the build? It should be a no-op.
...
llvm-svn: 125645
2011-02-16 02:34:28 +00:00
Ken Dyck
1300b3b357
Convert the UnpackedAlignment field to CharUnits from bits. No change in
...
functionality intended.
llvm-svn: 125643
2011-02-16 02:11:31 +00:00
Nick Lewycky
757515588a
Don't use "../foo" to return to the current directory.
...
llvm-svn: 125642
2011-02-16 02:10:49 +00:00
Ken Dyck
4731d5b65a
Convert Alignment member to CharUnits from bits. No change in functionality
...
intended.
llvm-svn: 125641
2011-02-16 02:05:21 +00:00
Ted Kremenek
64699befcd
Add trivial buffer overflow checking in Sema.
...
llvm-svn: 125640
2011-02-16 01:57:07 +00:00
Ken Dyck
af1c83fbe7
Convert NonVirtualSize to CharUnits from bits. No change in functionality
...
intended.
llvm-svn: 125639
2011-02-16 01:52:01 +00:00
Ken Dyck
a2d3dda041
Convert NonVirtualAlignment to CharUnits. No change in functionality
...
intended.
llvm-svn: 125638
2011-02-16 01:43:15 +00:00
Argyrios Kyrtzidis
034d68e97d
[analyzer] AnalyzerFrontend is dependent on AnalyzerCheckers.
...
llvm-svn: 125637
2011-02-16 01:40:55 +00:00
Argyrios Kyrtzidis
9d4d4f9104
[analyzer] Use the new registration mechanism on the apple checkers:
...
NilArgChecker
CFNumberCreateChecker
NSAutoreleasePoolChecker
CFRetainReleaseChecker
ClassReleaseChecker
llvm-svn: 125636
2011-02-16 01:40:52 +00:00
Douglas Gregor
042465709f
When searching for visible declarations (e.g., for code completion),
...
be sure to look at all of the Objective-C class declarations within a
@class . Fixes <rdar://problem/8876207>.
llvm-svn: 125635
2011-02-16 01:39:26 +00:00
Devang Patel
25468059e5
Simplify test to check an aggregate argument that has non trivial constructor or destructor.
...
This patch rewrites r125142.
llvm-svn: 125632
2011-02-16 01:11:51 +00:00
Douglas Gregor
b5f1e46d30
When trying to provide a code completion item for a call to "super" in
...
Objective-C, also look in the categories and class extensions of our
superclasses. Fixes <rdar://problem/8853540>.
llvm-svn: 125628
2011-02-16 00:51:18 +00:00
John McCall
bf9a86b50f
Don't call objc_read_weak as part of emitting a block literal.
...
Nobody ever gave me a clear reason for why we were doing this, and
now it's apparently causing serious problems, so if *not* having this
causes problems, we get to solve them the right way this time.
llvm-svn: 125627
2011-02-16 00:49:34 +00:00
Fariborz Jahanian
6fd9435f6d
Check for deprecated implementation unconditionally.
...
Warning and its note will be ignored in default case.
llvm-svn: 125621
2011-02-16 00:30:31 +00:00
Fariborz Jahanian
0c87d36d9d
Fix typo (per Chris's comment).
...
llvm-svn: 125619
2011-02-16 00:14:11 +00:00
Argyrios Kyrtzidis
c541ade850
Warn for missing terminating " or ' instead of error for gcc compatibility. Fixed rdar://8914293.
...
llvm-svn: 125616
2011-02-15 23:45:31 +00:00
Devang Patel
49e3348e56
Only c++ class arguments with non trivial constructor or destructor needs a reference.
...
C struct arguments do not need this adjustment.
This fixes 7 failures in callfuncs.exp from gdb testsuite.
llvm-svn: 125615
2011-02-15 23:36:28 +00:00
Argyrios Kyrtzidis
a9215281de
[analyzer] Use the new registration mechanism on some of the experimental internal checkers:
...
CastToStructChecker
FixedAddressChecker
PointerArithChecker
PointerSubChecker
llvm-svn: 125612
2011-02-15 22:55:20 +00:00
Argyrios Kyrtzidis
b2400924d9
[analyzer] Use the new registration mechanism on the IdempotentOperationChecker.
...
llvm-svn: 125611
2011-02-15 22:55:14 +00:00
John McCall
9743e8d84e
Handle delayed access in local declarations. PR9229.
...
llvm-svn: 125609
2011-02-15 22:51:53 +00:00