Douglas Gregor
337caf9e3e
Implement C++ name lookup for instance variables of Objective-C classes
...
from an instance method. Previously, we were following the Objective-C
name lookup rules for ivars, which are of course completely different
from and incompatible with the Objective-C++ rules.
For the record, the Objective-C++ rules are the sane ones.
This is another part of <rdar://problem/7660386>.
llvm-svn: 96677
2010-02-19 16:08:35 +00:00
Douglas Gregor
cfd70242ca
Make Sema::ActOnClassMessage robust when name lookup for the receiver
...
name finds something other than a TypedefDecl or an
ObjCInterfaceDecl. This is a small part of <rdar://problem/7660386>.
llvm-svn: 96676
2010-02-19 15:18:45 +00:00
John McCall
b81884d347
More refactoring around constructor/destructor code generation.
...
Fix some bugs with function-try-blocks and simplify normal try-block
code generation.
This implementation excludes a deleting destructor's call to
operator delete() from the function-try-block, which I believe
is correct but which I can't find straightforward support for at
a moment's glance.
llvm-svn: 96670
2010-02-19 09:25:03 +00:00
Ted Kremenek
353394f7b1
Label examples.
...
llvm-svn: 96668
2010-02-19 08:24:37 +00:00
Ted Kremenek
d14f766789
Fix link.
...
llvm-svn: 96667
2010-02-19 08:19:14 +00:00
Ted Kremenek
33b73215c8
Simplify menu.
...
llvm-svn: 96666
2010-02-19 08:18:02 +00:00
Ted Kremenek
92b4bd9556
Tweak menu.
...
llvm-svn: 96665
2010-02-19 08:16:18 +00:00
Ted Kremenek
926520489a
Add section on using the analyzer within Xcode.
...
llvm-svn: 96664
2010-02-19 08:14:02 +00:00
Anders Carlsson
2d3d903872
Dump this-adjustments for destructors as well.
...
llvm-svn: 96660
2010-02-19 06:03:53 +00:00
Anders Carlsson
821095085b
Add another test from the ABI spec.
...
llvm-svn: 96659
2010-02-19 05:59:40 +00:00
Ted Kremenek
809c89461d
Add new intro about running scan-build.
...
llvm-svn: 96658
2010-02-19 05:36:44 +00:00
John McCall
8517abc30d
Enable -mconstructor-aliases by default on non-darwin platforms.
...
The linker bug holding this back is Darwin-specific.
llvm-svn: 96655
2010-02-19 02:45:38 +00:00
Ted Kremenek
013041eef0
Revert: "Change InitListExpr to allocate the array for holding references"
...
This was causing buildbot breakage.
This reverts commit d46e952cc8cb8d9eed8657d9a0b267910a0f745a.
llvm-svn: 96652
2010-02-19 01:50:18 +00:00
Fariborz Jahanian
40efb08d87
Remove this test for now.
...
llvm-svn: 96651
2010-02-19 01:40:48 +00:00
Douglas Gregor
01cc437159
Add a missing break. Cocoa.h can now be merged twice into the same AST context
...
llvm-svn: 96650
2010-02-19 01:36:36 +00:00
John McCall
d4324148d7
Re-introduce the ctor/dtor alias optimization, this time hidden behind a
...
command-line option which defaults off.
llvm-svn: 96649
2010-02-19 01:32:20 +00:00
Douglas Gregor
5481d329a3
AST import for CStyleCastExpr. With this, we can import Cocoa.h into an empty context
...
llvm-svn: 96648
2010-02-19 01:32:14 +00:00
Douglas Gregor
d8552cdc96
AST import for sizeof and alignof expressions
...
llvm-svn: 96647
2010-02-19 01:24:23 +00:00
Douglas Gregor
52f820ead4
AST import for DeclRefExprs
...
llvm-svn: 96646
2010-02-19 01:17:02 +00:00
Fariborz Jahanian
ad238e2bde
XFAIL until I can fugure out how test check for a pattern when
...
clang is built optimized.
llvm-svn: 96645
2010-02-19 01:11:52 +00:00
Douglas Gregor
f0bc0d22d3
XFAIL some of the c-index-test tests on Windows, where they are failing inexplicably
...
llvm-svn: 96644
2010-02-19 01:10:48 +00:00
Douglas Gregor
c74247eddd
AST import of parenthesized expressions, unary operators, binary
...
operators, and compound assignment operators.
llvm-svn: 96643
2010-02-19 01:07:06 +00:00
Ted Kremenek
445a603c78
Change InitListExpr to allocate the array for holding references
...
to initializer expressions in an array allocated using ASTContext.
This plugs a memory leak when ASTContext uses a BumpPtrAllocator to
allocate memory for AST nodes.
In my mind this isn't an ideal solution; it would be nice to have
a general "vector"-like class that allocates memory using ASTContext,
but whose guts could be separated from the methods of InitListExpr
itself. I haven't gone and taken this approach yet because it isn't
clear yet if we'll eventually want an alternate solution for recylcing
memory using by InitListExprs as we are constructing the ASTs.
llvm-svn: 96642
2010-02-19 00:42:33 +00:00
Douglas Gregor
70127c1dcf
Use a little binary header in serialized diagnostics to help the deserializer skip over noise in the stream
...
llvm-svn: 96641
2010-02-19 00:40:40 +00:00
Fariborz Jahanian
aef662206b
Patch removes IVars list from ObjCInterfaceDecl and
...
instead relies on their DeclContext for iteration, etc.
llvm-svn: 96638
2010-02-19 00:31:17 +00:00
Blaine Garst
5421a83e4a
remove unused function & enumerations
...
llvm-svn: 96635
2010-02-19 00:24:37 +00:00
Douglas Gregor
6cb5ba4c4f
Teach ASTUnit to keep track of temporary files, then delete them when
...
the ASTUnit itself is destroyed. Fixes <rdar://problem/7649385>.
llvm-svn: 96628
2010-02-18 23:35:40 +00:00
Douglas Gregor
1e21cc7d19
Re-apply my diagnostics-capture patch for CIndex, with some tweaks to
...
try to address the msvc failures.
llvm-svn: 96624
2010-02-18 23:07:20 +00:00
Ted Kremenek
66f2d6ba7b
Allow GNU attributes to appear in an Objective-C method declaration
...
before the selector name (but after the return type). Among other things,
this allows IBAction to be implemented with an attribute.
llvm-svn: 96623
2010-02-18 23:05:16 +00:00
Ted Kremenek
e21102523a
Revert "Sort visitor methods so we can easily tell what's implemented."
...
This reverts commit 4383e04c75731f8695b8355783f9966ac56b0926.
llvm-svn: 96622
2010-02-18 22:36:18 +00:00
Ted Kremenek
aaaf2bfffb
Revert "Tidy up order of switch statement. No functionality change."
...
This reverts commit 95575005fc6409df98e6e079caf324308f62171b.
llvm-svn: 96620
2010-02-18 22:32:43 +00:00
Douglas Gregor
9773e3d077
Revert my CIndex diagnostic changes (r96603, 96606, 96607), which were
...
breaking the msvc9 builder for unknown reasons.
llvm-svn: 96618
2010-02-18 22:27:07 +00:00
John McCall
334ce7c1c4
Revert the ctor/dtor alias optimization for now; the buildbots can detect
...
some failure here that I can't.
llvm-svn: 96612
2010-02-18 21:31:48 +00:00
Fariborz Jahanian
ffcfecdc1f
Fixed a crash specific to blocks in c++ uncovered by an internal
...
test suite.
llvm-svn: 96608
2010-02-18 20:31:02 +00:00
Douglas Gregor
81d53769b5
Introduce debugging/testing hook clang_enableStackTraces() into
...
CIndex, so that c-index-test to use it to call
lvm::sys::PrintStackTraceOnErrorSignal().
llvm-svn: 96607
2010-02-18 20:22:25 +00:00
Douglas Gregor
707cf72cb8
Resurrect the displayDiagnostics parameter to clang_createIndex(), and
...
display captured diagnostics when we can't return an invalid
CXTranslationUnit.
llvm-svn: 96606
2010-02-18 20:11:31 +00:00
John McCall
5c60a6f597
Make deleting and complete dtor variants defer to other dtor variants by
...
calling them as subroutines. This triggers whenever the alias optimization
doesn't, i.e. when the dtor has linkonce linkage or there are virtual bases
or it's the deleting dtor.
llvm-svn: 96605
2010-02-18 19:59:28 +00:00
Douglas Gregor
06dcf0375b
Introduce CIndex API functions for displaying a diagnostic, with some
...
knobs to control formatting. Eventually, I'd like to merge the
implementation of this code with the TextDiagnosticPrinter, so that
it's easy for CIndex clients to produce beautiful diagnostics like the
clang compiler does.
Use this new function to display diagnostics within c-index-test.
llvm-svn: 96603
2010-02-18 19:08:21 +00:00
Ted Kremenek
fcb3db7d68
Tidy up order of switch statement. No functionality change.
...
llvm-svn: 96602
2010-02-18 18:52:18 +00:00
Ted Kremenek
7dff4163aa
Sort visitor methods so we can easily tell what's implemented.
...
llvm-svn: 96600
2010-02-18 18:47:08 +00:00
Ted Kremenek
0e2930979d
Change cursor behavior for attributes to have them visited as part of recursing
...
to the children of a Decl.
llvm-svn: 96599
2010-02-18 18:47:01 +00:00
Anders Carlsson
f8b53536ed
Attempt to fix the 32-bit test failures.
...
llvm-svn: 96595
2010-02-18 18:20:49 +00:00
Daniel Dunbar
1c32596e56
tests: Tweak %clangxx definition to something which should be more portable.
...
llvm-svn: 96593
2010-02-18 18:10:26 +00:00
Douglas Gregor
33cdd81064
Rework how CIndex handles diagnostics. Rather than using a callback,
...
we attach diagnostics to translation units and code-completion
results, so they can be queried at any time.
To facilitate this, the new StoredDiagnostic class stores a diagnostic
in a serializable/deserializable form, and ASTUnit knows how to
capture diagnostics in this stored form. CIndex's CXDiagnostic is a
thin wrapper around StoredDiagnostic, providing a C interface to
stored or de-serialized diagnostics.
I've XFAIL'd one test case temporarily, because currently we end up
storing diagnostics in an ASTUnit that's never returned to the user
(because it contains errors). I'll introduce a temporary fix for this
soon; the real fix will be to allow us to return and query invalid ASTs.
llvm-svn: 96592
2010-02-18 18:08:43 +00:00
Anders Carlsson
e5faca7cda
Fix another bug and add another class.
...
llvm-svn: 96590
2010-02-18 17:32:33 +00:00
Anders Carlsson
aa7444cd7d
Add another class from cxx-vtable-ex.html
...
llvm-svn: 96588
2010-02-18 17:28:16 +00:00
Anders Carlsson
8847d9e40a
More work on vcall offsets.
...
llvm-svn: 96587
2010-02-18 17:26:40 +00:00
Anders Carlsson
664b7d026e
Add tests from the Itanium C++ ABI spec.
...
llvm-svn: 96586
2010-02-18 17:07:24 +00:00
Anders Carlsson
78277c7705
Start stubbing out vcall offset handling.
...
llvm-svn: 96585
2010-02-18 17:00:09 +00:00
Anders Carlsson
5a7654a9d8
Store the base offset of the final overrider in the OverriderInfo struct, to be used for vcall offsets.
...
llvm-svn: 96582
2010-02-18 16:29:24 +00:00
Anders Carlsson
c8316a2e08
Remove some dead code.
...
llvm-svn: 96581
2010-02-18 16:24:20 +00:00
Benjamin Kramer
26d19c59f8
Try to fix the auroraux buildbot. I suspect it has a "#define SEC" somewhere.
...
llvm-svn: 96577
2010-02-18 13:02:13 +00:00
Ted Kremenek
6ab9aa02e3
Add basic cursor traversal for attributes. We currently don't have source
...
ranges for Attr objects, so lookup by cursor location currently doesn't work.
llvm-svn: 96571
2010-02-18 05:46:33 +00:00
Charles Davis
9fcead75ee
Also don't warn about force_align_arg_pointer on function typedefs. (This will
...
break if you declare an actual function using that typedef. Come to think of it,
maybe I should make this part of the type.)
llvm-svn: 96570
2010-02-18 04:56:59 +00:00
Charles Davis
cb9572e7b3
Two fixes related to force_align_arg_pointer:
...
- Also recognize __force_align_arg_pointer__.
- Don't warn if it's used on a function pointer typedef.
llvm-svn: 96568
2010-02-18 04:39:19 +00:00
Douglas Gregor
44272ca356
Add some spacing in the code-completion results for a return statement
...
llvm-svn: 96567
2010-02-18 04:06:48 +00:00
Douglas Gregor
4db30233a8
Teach CMake to put the CIndex header into the Xcode/MSVC project
...
llvm-svn: 96566
2010-02-18 04:01:41 +00:00
John McCall
89b12b34f6
Extract out function-body code generation into its own method. No functionality
...
change.
llvm-svn: 96564
2010-02-18 03:17:58 +00:00
Ted Kremenek
bff31437ef
Start adding cursor kinds for attributes, with first exposing
...
IBActionAttr and IBOutletAttr respectively.
llvm-svn: 96563
2010-02-18 03:09:07 +00:00
Ted Kremenek
1f672829fb
Change the behavior of ibaction attributes to be attached to methods, not ivars.
...
llvm-svn: 96562
2010-02-18 03:08:58 +00:00
Douglas Gregor
623421d385
AST import for character literals
...
llvm-svn: 96557
2010-02-18 02:21:22 +00:00
Douglas Gregor
8661a72b48
AST import for forward declarations of Objective-C protocols
...
llvm-svn: 96555
2010-02-18 02:12:22 +00:00
Douglas Gregor
06537af873
Implement import of forward declarations of Objective-C classes
...
llvm-svn: 96554
2010-02-18 02:04:09 +00:00
Charles Davis
fea4845609
Allow redefinitions of extern inline functions in GNU89 mode, just as GCC
...
does. Fixes PR5253.
llvm-svn: 96553
2010-02-18 02:00:42 +00:00
Douglas Gregor
84c51c3581
AST import of Objective-C categories.
...
llvm-svn: 96551
2010-02-18 01:47:50 +00:00
Fariborz Jahanian
f50679151b
__typeof should be able to handle block pointer types when
...
rewriting. Fixes radar 7659483.
llvm-svn: 96549
2010-02-18 01:20:22 +00:00
Douglas Gregor
e5ad57a3ed
Don't diagnose overflow in case statements when the conversion is a
...
signed<->unsigned conversion with the same bit width. Fixes
<rdar://problem/7658121>.
llvm-svn: 96545
2010-02-18 00:56:01 +00:00
Ted Kremenek
1fcc56c57a
Recognize attributes ns_returns_not_retained and cf_returns_not_retained
...
in the static analyzer.
llvm-svn: 96539
2010-02-18 00:06:12 +00:00
Ted Kremenek
f2b64ba858
Add __has_feature support for attributes ns_returns_not_retained
...
and cf_returns_not_retained.
llvm-svn: 96538
2010-02-18 00:06:04 +00:00
Ted Kremenek
2b36f3f666
Sort @includes.
...
llvm-svn: 96537
2010-02-18 00:05:58 +00:00
Ted Kremenek
79478e3ef8
Sort cases.
...
llvm-svn: 96536
2010-02-18 00:05:52 +00:00
Ted Kremenek
d9c6663124
Add 'ns_returns_not_retained' and 'cf_returns_not_retained' attributes to
...
match 'ns_returns_retained' and 'cf_returns_retained' respectively. These
are not yet hooked up to the static analyzer.
llvm-svn: 96535
2010-02-18 00:05:45 +00:00
Douglas Gregor
12ea0f4ef9
For -Wswitch-enum warnings, be sure to look through typedefs of enum
...
types. Fixes <rdar://problem/7643909>.
llvm-svn: 96531
2010-02-17 23:29:11 +00:00
Douglas Gregor
81001ab490
Hook the "overflow converting case value to switch condition type"
...
warning into -Wswitch.
llvm-svn: 96529
2010-02-17 23:02:29 +00:00
Douglas Gregor
c0b8c81a07
When diagnosing enumerator values outside of the range of 'int', be
...
sure that we get the "too large" vs. "too small" part of the
diagnostic correct.
llvm-svn: 96524
2010-02-17 22:40:11 +00:00
Chris Lattner
d2408f78a5
silence warning in a cleaner way
...
llvm-svn: 96520
2010-02-17 21:42:34 +00:00
Ted Kremenek
d63f5246dc
Alphabetize #includes. No functionality change.
...
llvm-svn: 96518
2010-02-17 21:27:48 +00:00
Ted Kremenek
e4af7f452b
Change GNUInlineAttr definition to just use DEF_SIMPLE_ATTR.
...
llvm-svn: 96517
2010-02-17 21:27:41 +00:00
Douglas Gregor
8b228d7a51
Implement AST importing of ImplicitParamDecls, despite the sad fact
...
that we can't test it yet.
llvm-svn: 96516
2010-02-17 21:22:52 +00:00
Ted Kremenek
896e164351
Don't make the inclusion of crashtracer information depend on NDEBUG.
...
llvm-svn: 96515
2010-02-17 21:12:23 +00:00
Fariborz Jahanian
46dbcb2f86
Hopefully make buildbot happy.
...
llvm-svn: 96513
2010-02-17 21:01:05 +00:00
Daniel Dunbar
d2b20c1348
clang: Add support for s// edit form of QA_OVERRIDE_GCC3_OPTIONS.
...
- Used to do regex patsubst on arguments.
llvm-svn: 96512
2010-02-17 21:00:34 +00:00
Daniel Dunbar
0ac9445098
PR5803: clang++: Treat untyped 'C' inputs as C++.
...
- Patch by Andrzej K. Haczewski, with a tweak by me to emit a 'deprecated'
diagnostic when we do this. We'll see what zee users say.
llvm-svn: 96511
2010-02-17 20:32:58 +00:00
Daniel Dunbar
78c974fcba
tests: Add '%clangxx' substitution, for 'clang++'
...
llvm-svn: 96510
2010-02-17 20:31:01 +00:00
Fariborz Jahanian
999ddbcf8e
Patch to remove arbitrary imporation of 'self' into
...
a block without it being used. This causes over release
of objects in certain runtime-senitive apps.
(fixes radar 7581175).
llvm-svn: 96501
2010-02-17 19:54:08 +00:00
Daniel Dunbar
d95638df44
Fix test to not force triple, and also to not need stdint.h.
...
llvm-svn: 96499
2010-02-17 19:26:59 +00:00
Fariborz Jahanian
586ca163b4
Did not intend to check this in.
...
llvm-svn: 96486
2010-02-17 18:11:55 +00:00
Fariborz Jahanian
c0309cd3d1
Use proper lexcial context for newly added ivars.
...
llvm-svn: 96484
2010-02-17 18:10:54 +00:00
Douglas Gregor
a11c45866e
Implement AST merging for Objective-C properties.
...
llvm-svn: 96483
2010-02-17 18:02:10 +00:00
Anders Carlsson
231461f88f
Make FinalOverriders handle virtual bases correctly. Unfortunately this can't be tested just yet.
...
llvm-svn: 96481
2010-02-17 17:48:25 +00:00
Fariborz Jahanian
20912d644a
Allow for declaration and use of ivars in a stand-alone
...
implementation (toward radar 7547942).
llvm-svn: 96479
2010-02-17 17:00:07 +00:00
Douglas Gregor
98d156a87e
AST import for Objective-C protocols
...
llvm-svn: 96478
2010-02-17 16:12:00 +00:00
Zhongxing Xu
b2ef2f1427
In symbol reaper, a variable is live if its stack frame is the parent of the
...
current stack frame.
When leaving a callee, remove all bindings belonging to that callee.
llvm-svn: 96473
2010-02-17 08:50:05 +00:00
Zhongxing Xu
daf4616455
For inline-based inter-procedural analysis, we will have multiple stack space regions. Use a dense map to store them.
...
llvm-svn: 96472
2010-02-17 08:46:50 +00:00
Zhongxing Xu
86bab2cddd
Add a utility method.
...
llvm-svn: 96471
2010-02-17 08:45:06 +00:00
Ted Kremenek
672bfeffe6
Update checker build.
...
llvm-svn: 96470
2010-02-17 08:08:21 +00:00
Daniel Dunbar
4b8ef28400
Driver: Tweak freebsd::Link, by Roman Divacky.
...
llvm-svn: 96469
2010-02-17 08:07:51 +00:00
Daniel Dunbar
4053faef8e
Fix comment.
...
llvm-svn: 96468
2010-02-17 08:07:44 +00:00
Anders Carlsson
d2fd302726
Handle primary bases in AddVCallOffsets.
...
llvm-svn: 96461
2010-02-17 06:30:02 +00:00
Chandler Carruth
c20a9586c4
Silence GCC warning by marking an assert-only variable as unused.
...
llvm-svn: 96459
2010-02-17 06:24:18 +00:00