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
Anders Carlsson
b0a588f038
First cut at emitting vcall offsets.
...
llvm-svn: 96455
2010-02-17 06:07:19 +00:00
Tanya Lattner
339c89bce2
Do not add functions marked with the unused attribute to the list of unused functions to warn about. Update test case.
...
llvm-svn: 96452
2010-02-17 04:48:01 +00:00
John McCall
67cea74745
Emit complete constructors and destructors as aliases to base constructors
...
and destructors when the two entities are semantically identical, i.e. when
the class has no virtual base classes. We only do this for linkage types
for which aliases are supported, i.e. internal and external, i.e. not linkonce.
llvm-svn: 96451
2010-02-17 03:52:49 +00:00
Anders Carlsson
db042200c0
Pass through whether a base is virtual or not.
...
llvm-svn: 96449
2010-02-17 03:11:55 +00:00
Ted Kremenek
06be968942
Add IBAction attribute to keep the IBOutlet attribute company.
...
llvm-svn: 96447
2010-02-17 02:37:45 +00:00
Sanjiv Gupta
ba1e267a4c
implement EmitVAArg. pretty much the same way other targets do.
...
llvm-svn: 96446
2010-02-17 02:25:52 +00:00
Tanya Lattner
8aefcbed49
Fix unused function warning to handle used attributes and redeclarations. Update test case.
...
llvm-svn: 96444
2010-02-17 02:17:21 +00:00
Douglas Gregor
43f54796ab
Implement AST importing and checking for Objective-C method declarations.
...
llvm-svn: 96442
2010-02-17 02:12:47 +00:00
Anders Carlsson
03db9e9cd3
Correctly calculate base offsets for 'this' pointer adjustments involving virtual bases. This can't be tested yet due to lack of vcall offsets :)
...
llvm-svn: 96441
2010-02-17 02:05:23 +00:00
Ted Kremenek
f602f96e60
Convert clang_getCompletionChunkText() to return a CXString.
...
llvm-svn: 96439
2010-02-17 01:42:24 +00:00
Charles Davis
61170a19e3
Revert r95939, as suggested by Alexandre Julliard from the Wine project (and
...
our own Chris Lattner).
llvm-svn: 96431
2010-02-17 00:44:47 +00:00
Ted Kremenek
f441baf6dd
Remove trailing spaces.
...
llvm-svn: 96427
2010-02-17 00:41:40 +00:00
Ted Kremenek
29004673f7
Change clang_getCursorKindSpelling() to return a CXString
...
instead of a 'const char *'.
llvm-svn: 96425
2010-02-17 00:41:32 +00:00
Ted Kremenek
c560b6835e
Change clang_getFileName() to return a 'CXString' instead of 'const char *'.
...
llvm-svn: 96424
2010-02-17 00:41:20 +00:00
Ted Kremenek
5cca6ebae9
Move createCXString() functions out of CIndexer and into the clang::cxstring namespace.
...
We can much more succinctly refer to these functions this way.
Also change the default behavior of createCXString(StringRef&) to duplicate the
string. This is almost always what we want. The other case is where we pass
a constant c-string, which uses the other version of createCXString().
llvm-svn: 96423
2010-02-17 00:41:08 +00:00
Douglas Gregor
7244b0bb86
Implement AST importing of Objective-C instance variables.
...
Check superclasses when merging two Objective-C @interfaces.
llvm-svn: 96420
2010-02-17 00:34:30 +00:00
Fariborz Jahanian
cf01cbef16
More rewriter test converted to compile with clang.
...
llvm-svn: 96406
2010-02-16 22:27:50 +00:00
Fariborz Jahanian
be1896e944
With addition of -Wno-address-of-temporary (thank you Doug) we can now
...
have rewriter test cases which pass the .cpp file through clang
and also test c++ aspect of clang.
llvm-svn: 96405
2010-02-16 22:13:48 +00:00
John McCall
347132b32f
IRgen optimization: cache the value of 'this' and 'vtt' instead of
...
repeatedly reloading from an alloca. We still need to create the alloca
for debug info purposes (although we currently create it in all cases
because of some abstraction boundaries that're hard to break down).
llvm-svn: 96403
2010-02-16 22:04:33 +00:00
Devang Patel
7585580ccc
Distinguish two lexical blocks at the same level.
...
llvm-svn: 96397
2010-02-16 21:41:20 +00:00
Douglas Gregor
b154fdc974
Introduce a new kind of failed result for isLvalue/isModifiableLvalue
...
which describes temporary objects of class type in C++. Use this to
provide a more-specific, remappable diagnostic when takin the address
of such a temporary.
llvm-svn: 96396
2010-02-16 21:39:57 +00:00
Daniel Dunbar
fd09df7839
IRgen: Switch 'retval' to use CreateIRTemp.
...
llvm-svn: 96376
2010-02-16 19:45:20 +00:00
Daniel Dunbar
29a32dab4a
Disable warn_unused_function for now, its breaking various project builds due to
...
false positives.
llvm-svn: 96375
2010-02-16 19:44:56 +00:00
Daniel Dunbar
d004918ccb
IRgen: Add CreateIRTemp, which creates a temporary alloca but with type converted "not-for-memory". Dunno a better name.
...
llvm-svn: 96374
2010-02-16 19:44:13 +00:00
Daniel Dunbar
27bacafb71
IRgen: Switch EmitCompoundLiteralLValue to use CreateMemTemp.
...
llvm-svn: 96373
2010-02-16 19:43:39 +00:00
Douglas Gregor
71ad477ab3
Do not try to instantiate invalid declarations. It's a recipe for
...
disaster. Fixes PR6161.
llvm-svn: 96371
2010-02-16 19:28:15 +00:00
Douglas Gregor
fe17d2550b
Improve parsing and instantiation of destructor names, so that we can
...
now cope with the destruction of types named as dependent templates,
e.g.,
y->template Y<T>::~Y()
Nominally, we implement C++0x [basic.lookup.qual]p6. However, we don't
follow the letter of the standard here because that would fail to
parse
template<typename T, typename U>
X0<T, U>::~X0() { }
properly. The problem is captured in core issue 339, which gives some
(but not enough!) guidance. I expect to revisit this code when the
resolution of 339 is clear, and/or we start capturing better source
information for DeclarationNames.
Fixes PR6152.
llvm-svn: 96367
2010-02-16 19:09:40 +00:00
Chris Lattner
fff5ed4b55
when a diagnostic is an extension and has no other -W flag,
...
indicate that it was enabled with -pedantic so people know
why they're getting them:
$ printf "int x;" | clang -xc - -pedantic
<stdin>:1:7: warning: no newline at end of file [-pedantic]
int x;
^
llvm-svn: 96365
2010-02-16 18:29:31 +00:00
Charles Davis
163855f46d
dllimport and dllexport are declspec attributes, too. They're also
...
Win32-specific.
Also, fix a test to use FileCheck instead of grepping LLVM IR.
llvm-svn: 96364
2010-02-16 18:27:26 +00:00
Chris Lattner
e983eae273
add two aliases for SSE functions we already have, fixing PR6316.
...
llvm-svn: 96363
2010-02-16 18:21:25 +00:00
Chris Lattner
db5c16bc9c
add freebsd/ppc[64] support, patch by Nathan Whitehorn, PR6318
...
llvm-svn: 96362
2010-02-16 18:14:57 +00:00
Fariborz Jahanian
b6a68c0465
Minor rewriter cleanup and a test for a block rewriting bug.
...
llvm-svn: 96361
2010-02-16 17:26:03 +00:00
Ted Kremenek
3eac2454dc
Add test case showing that a recursive block that captures a block pointer that
...
isn't marked '__block' is bad.
llvm-svn: 96357
2010-02-16 16:55:10 +00:00
Anders Carlsson
bc91b44a23
Add an extreme vbase offsets test. I'm kinda amazed that this works myself ;)
...
llvm-svn: 96356
2010-02-16 16:50:08 +00:00
Anders Carlsson
13f0f66223
Handle layout of vtables for virtual bases.
...
llvm-svn: 96355
2010-02-16 16:49:35 +00:00
Anders Carlsson
b716a543c9
Move some code around in preparation for virtual base vtables.
...
llvm-svn: 96354
2010-02-16 16:26:28 +00:00
Fariborz Jahanian
e1ff123214
Fix rewriter bug when function call inside block with block parameter
...
causes C++ compile error (radar 7651312).
llvm-svn: 96352
2010-02-16 16:21:26 +00:00
Anders Carlsson
14157939ab
Fix a bug where we would not emit secondary vtables for bases of a primary base.
...
llvm-svn: 96351
2010-02-16 16:02:57 +00:00
Benjamin Kramer
64aae50539
Rename argument so the name reflects what it's doing.
...
llvm-svn: 96342
2010-02-16 10:07:31 +00:00
Ted Kremenek
228639746a
Add simpler checker to check if variables captured by a block are uninitialized.
...
llvm-svn: 96341
2010-02-16 08:33:59 +00:00
John McCall
d8d0d43fa3
Support local namespace aliases and permit them to be instantiated.
...
llvm-svn: 96335
2010-02-16 06:53:13 +00:00
Anders Carlsson
77904f1d5b
Emit vbase offsets.
...
llvm-svn: 96329
2010-02-16 04:59:55 +00:00
Anders Carlsson
dc2dba306c
More work on the new layout code.
...
llvm-svn: 96328
2010-02-16 04:49:44 +00:00
John McCall
6ce747220a
When emitting complete destructors for classes with virtual bases, compute
...
the offset to the virtual bases statically inside of relying on the virtual
base offsets in the object's vtable(s). This is both more efficient and
sound against the destructor's manipulation of the vtables.
Also extract a few helper routines.
Oh and we seem to pass all tests with an optimized clang now.
llvm-svn: 96327
2010-02-16 04:15:37 +00:00
John McCall
1e3715acc3
White-list comma expressions with the literal 0 as their RHS against
...
unused-value warnings. This is a common macro idiom.
llvm-svn: 96326
2010-02-16 04:10:53 +00:00
John McCall
81e38507bd
Make the various type-decl Types (and their associated ASTContext routines)
...
accept const decls.
llvm-svn: 96325
2010-02-16 03:57:14 +00:00
Sanjiv Gupta
ecd2600c52
Re-applying 96173. Looks like finally I got the test case right.
...
llvm-svn: 96321
2010-02-16 03:37:11 +00:00
Ted Kremenek
588fc83c74
Add test case to show that Clang now checks the format string
...
arguments of asprintf (<rdar://problem/6657191>).
llvm-svn: 96319
2010-02-16 02:14:24 +00:00
Daniel Dunbar
ce79bc9c7a
c-index-test: Pass appropriate client data.
...
llvm-svn: 96317
2010-02-16 01:55:10 +00:00
Daniel Dunbar
1951192213
ASTUnit: Constant fold UseBumpAllocator to true, we don't care to support this as an argument.
...
llvm-svn: 96316
2010-02-16 01:55:04 +00:00
Daniel Dunbar
7f21a7f7ce
ASTUnit::LoadFromCompilerInvocation - Take ownership of the provided invocation.
...
llvm-svn: 96315
2010-02-16 01:54:54 +00:00
Daniel Dunbar
e922d9bdf0
CompilerInstance: Move LLVMContext member out of constructor.
...
llvm-svn: 96314
2010-02-16 01:54:47 +00:00
Daniel Dunbar
aced322c3c
Switch clang to use its own LLVMContext (not the global one).
...
llvm-svn: 96313
2010-02-16 01:54:33 +00:00
Ted Kremenek
ccf701d375
Fix test case.
...
llvm-svn: 96311
2010-02-16 01:47:05 +00:00
Ted Kremenek
c8b188d541
Refactor the logic for printf argument type-checking into analyze_printf::ArgTypeResult.
...
Implement printf argument type checking for '%s'.
Fixes <rdar://problem/3065808>.
llvm-svn: 96310
2010-02-16 01:46:59 +00:00
Ted Kremenek
1ee27e6d9a
Added 'AsWideChar' flag to LengthModifier.
...
llvm-svn: 96309
2010-02-16 01:46:47 +00:00
Douglas Gregor
4563532043
Skeleton for importing Objective-C classes
...
llvm-svn: 96306
2010-02-16 01:20:57 +00:00
Chris Lattner
1b78ea446f
mark __builtin_longjmp noreturn, PR6312
...
llvm-svn: 96302
2010-02-16 00:23:21 +00:00
Douglas Gregor
9503c46a2e
Don't import __va_list_tag or __builtin_va_list when merging
...
llvm-svn: 96299
2010-02-16 00:04:46 +00:00
Douglas Gregor
b4964f7705
Cope with anonymous tags defined within declarators by structurally
...
comparing their types under the assumption that they are equivalent,
rather than importing the types and then checking for compatibility. A
few minor tweaks here:
- Teach structural matching to handle compatibility between
function types with prototypes and those without prototypes.
- Teach structural matching that an incomplete record decl is the
same as any other record decl with the same name.
- Keep track of pairs of declarations that we have already checked
(but failed to find as structurally matching), so we don't emit
diagnostics repeatedly.
- When importing a typedef of an anonymous tag, be sure to link the
imported tag type to its typedef.
With these changes, we survive a repeated import of <stdlib.h> and
<stdio.h>. Alas, the ASTNodeImporter is getting a little grotty.
llvm-svn: 96298
2010-02-15 23:54:17 +00:00
Ted Kremenek
d51217e968
Convert GRExprEngine's handling of ObjCMessageExprs to use a worklist
...
to evaluate arguments.
llvm-svn: 96293
2010-02-15 23:02:46 +00:00
Benjamin Kramer
634fc10fe1
Add Sema support for __builtin_fpclassify by extending the existing check for __builtin_isinf and friends. Part of PR6083.
...
llvm-svn: 96291
2010-02-15 22:42:31 +00:00
Fariborz Jahanian
8efe0ec899
Issue a bettter diagnostics for incorrect property setter name.
...
(radar 7647953).
llvm-svn: 96284
2010-02-15 22:20:11 +00:00
Chandler Carruth
3e0c140c50
Fix instantiation of template functions with local classes that contain virtual
...
methods.
llvm-svn: 96283
2010-02-15 22:12:26 +00:00
Douglas Gregor
522e22d352
Tell ASTMerge to merge every declaration it sees, rather than cherry-picking those declarations that we know will work.
...
llvm-svn: 96280
2010-02-15 22:05:17 +00:00
Douglas Gregor
3996e249ed
Reimplement the structural-equality checks used to determine whether
...
two types in different AST contexts are equivalent. Rather than
transforming the type from one context into the other context, we
perform a deep structural comparison of the types. This change
addresses a serious problem with recursive data types like
struct ListNode {
int value;
struct ListNode *Next;
} xList;
llvm-svn: 96278
2010-02-15 22:01:00 +00:00
Fariborz Jahanian
30a42923d3
Class continuation now has its own property ast for
...
those declared in it. This is to allow duplicate
property diagnostics for properties declared in class extensions
multiple times (radar 7629420) and for future use.
llvm-svn: 96276
2010-02-15 21:55:26 +00:00
Fariborz Jahanian
06708cee8d
Test to compile the rewritten file for my last patch.
...
(radar 7649577 related).
llvm-svn: 96274
2010-02-15 21:37:11 +00:00
Fariborz Jahanian
02d964babe
Fix a broken rewritin of @implementation keyword.
...
(fixes radar 7649577).
llvm-svn: 96270
2010-02-15 21:11:41 +00:00
John McCall
5f5cbf5d1d
Optimize the implementation of IdDeclInfo pooling in the IdentifierResolver.
...
llvm-svn: 96253
2010-02-15 19:38:00 +00:00
Devang Patel
e8814ce0a6
Use getLocStart(), instead of getLocEnd(), to record starting location of objc method. :)
...
llvm-svn: 96245
2010-02-15 18:08:38 +00:00
Sanjiv Gupta
9d23f93d52
reverting back 96242 as it still causes a test failure.
...
llvm-svn: 96244
2010-02-15 18:02:12 +00:00
Sanjiv Gupta
af56d377f1
Re-applying 96173 with corresponding changes in test.
...
llvm-svn: 96242
2010-02-15 17:19:13 +00:00
Duncan Sands
998f9d975b
Uniformize the names of type predicates: rather than having isFloatTy and
...
isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris!
llvm-svn: 96224
2010-02-15 16:14:01 +00:00
Chandler Carruth
284bb2ec72
Defer covariance checks for dependent types. Add test cases that also ensure
...
they are re-checked on instantiation.
llvm-svn: 96217
2010-02-15 11:53:20 +00:00
Zhongxing Xu
ec345b7ecb
Simplify code. If we can reach here, the base must be virtual.
...
llvm-svn: 96211
2010-02-15 04:28:35 +00:00
John McCall
7538eec67b
When emitting an aggregate into a temporary, make sure we set the alignment
...
on the alloca.
The fact that codegen makes this class of bug so wonderfully easy to make is
embarrassing.
llvm-svn: 96204
2010-02-15 01:23:36 +00:00
Ted Kremenek
4ba99bee2a
clang::Attr objects should be treated as AST nodes as well by
...
the LLVMConventionsChecker.
llvm-svn: 96202
2010-02-14 22:58:16 +00:00
Ted Kremenek
4853131459
Add LLVM conventions check that scans for AST elements (types, stmts, decls)
...
that allocate heap memory.
llvm-svn: 96184
2010-02-14 19:09:13 +00:00
Ted Kremenek
988805c81e
Change LLVMConventionsChecker to accept an entire translation unit instead
...
of operating on each code decl. This exposes two flaws in AnalysisConsumer
that should eventually be fixed:
(1) It is not possible to associate multiple "actions" with a single
command line argument. This will require the notion of an
"analysis" group, and possibly tablegen support. (although eventually
we want to support dynamically loading analyses as well)
(2) AnalysisConsumer may not actually be scanning the declarations in namespaces.
We'll experiment first in LLVMConventionsChecker before changing the
behavior in AnalysisConsumer.
llvm-svn: 96183
2010-02-14 19:09:05 +00:00
Ted Kremenek
39df94b00d
Rework translation unit actions to actually take an entire translation unit
...
as imput.
llvm-svn: 96182
2010-02-14 19:08:51 +00:00
Ted Kremenek
c968e5e9b9
For the StringRef check, also visit the children of DeclStmts.
...
llvm-svn: 96181
2010-02-14 19:08:43 +00:00
Ted Kremenek
4806a833a7
Place type-checking static methods at type of file (where they will congregate).
...
No functionality change.
llvm-svn: 96180
2010-02-14 19:08:36 +00:00
Chris Lattner
d0413848cc
temporarily revert 96173, it is causing test failures.
...
llvm-svn: 96176
2010-02-14 18:38:38 +00:00
Sanjiv Gupta
1ef8cdd29b
renamed pic16 specifiic macros.
...
llvm-svn: 96173
2010-02-14 18:20:18 +00:00
Anders Carlsson
033d48697f
Don't compute final overriders or build vtables for bases that don't need a vtable.
...
llvm-svn: 96171
2010-02-14 17:05:59 +00:00
Benjamin Kramer
88ab94e7a3
Pass StringRefs to InsertText/ReplaceText in RewriteObjC and remove a ton of unnecessary length arguments.
...
llvm-svn: 96164
2010-02-14 14:14:16 +00:00
Daniel Dunbar
02968e53cf
CIndex: Switch CXSourceRange to proper half-open intervals.
...
- Doug, please review.
llvm-svn: 96162
2010-02-14 10:02:57 +00:00
Daniel Dunbar
edeb9b87e6
CIndex: Avoid an unnecessary getLocForEndOfToken call, the region of interest
...
doesn't need to be a full token.
- Doug, please review.
llvm-svn: 96161
2010-02-14 10:02:42 +00:00
Daniel Dunbar
6092d507f0
c-index-test: Unify and always print half-open extents.
...
llvm-svn: 96160
2010-02-14 08:32:51 +00:00
Daniel Dunbar
eb27e7d999
c-index-test: Simplify file scanning code.
...
llvm-svn: 96159
2010-02-14 08:32:32 +00:00
Daniel Dunbar
98c07e0e23
c-index-test: Unify syntax for printing extents. Yes, there were 4.
...
llvm-svn: 96158
2010-02-14 08:32:24 +00:00
Daniel Dunbar
2049933196
CIndex: Simplify (remove provably dead code).
...
llvm-svn: 96157
2010-02-14 08:32:11 +00:00
Daniel Dunbar
2f4ba179f5
CIndex: Inline CompareRegionOfInterest(CXSourceRange) into sole caller.
...
llvm-svn: 96156
2010-02-14 08:32:05 +00:00
Daniel Dunbar
80daf53600
Rename translateSourceRange(CXSourceRange) translateCXSourceRange, instead of
...
having overloaded functions with inverse semantics.
llvm-svn: 96155
2010-02-14 08:31:57 +00:00
Zhongxing Xu
be36ecbb60
Fix pr6293. If ptr is NULL, no operation is preformed.
...
llvm-svn: 96154
2010-02-14 06:49:48 +00:00
Ted Kremenek
184b3383bf
Add new static analyzer for checking LLVM coding conventions: -analyzer-check-llvm-conventions
...
Currently these checks are intended to be largely syntactical, but may get more
sophisticated over time.
As an initial foray into this brave new world, emit a static analyzer warning
when binding a temporary 'std::string' to an 'llvm::StringRef' where the
lifetime of the 'std::string' does not outlive the 'llvm::StringRef'.
llvm-svn: 96147
2010-02-14 02:45:18 +00:00
Ted Kremenek
eff72bb134
Two changes to AnalysisConsumer::HandleTopLevelSingleDecl():
...
(1) Since CXXMethodDecl subclasses FunctionDecl (and CXXDestructorDecl
and CXXConversion subclass CXXMethodDecl), refactor switch statement
to handle them all in one spot.
(2) Use 'DeclarationName::getAsString()' to handle all functions that
don't have simple identifiers (fixing a null dereference when scanning
for specific functions).
llvm-svn: 96146
2010-02-14 02:44:52 +00:00
Daniel Dunbar
c4b4d3953c
CIndex: Kill off CXSourceLocationPtr, and AtEnd arguments.
...
llvm-svn: 96145
2010-02-14 01:47:36 +00:00
Daniel Dunbar
474b207716
CIndex: Stop hiding magic end bit in CXSourceRange locations where clients can't
...
see it. Instead, translate the locations up-front when we create a
CXSourceRange.
- This is part of a move to make CXSourceRange a pure half-open range, which is
a more natural API for clients to deal with. More cleanups to follow.
llvm-svn: 96144
2010-02-14 01:47:29 +00:00
John McCall
38200b081a
Improve the diagnostic given when referring to a tag type without a tag (in C)
...
or that's been hidden by a non-type (in C++).
The ideal C++ diagnostic here would note the hiding declaration, but this
is a good start.
llvm-svn: 96141
2010-02-14 01:03:10 +00:00
Anders Carlsson
073a0c88cc
Build fix.
...
llvm-svn: 96140
2010-02-14 00:44:19 +00:00
Anders Carlsson
6a7e6a4c3c
Baby steps towards teaching FinalOverriders about virtual bases.
...
llvm-svn: 96139
2010-02-14 00:37:35 +00:00
Anders Carlsson
1888b44988
Don't try to layout construction vtables for now.
...
llvm-svn: 96138
2010-02-14 00:22:59 +00:00
Anders Carlsson
258a1e35e8
Improve support for non-virtual 'this' pointer adjustments. With this, it should be possible to use the new vtable layout code for all class hierarchies that do not involve virtual bases.
...
llvm-svn: 96137
2010-02-14 00:16:19 +00:00
Anders Carlsson
d3adb0ced9
Add basic support for simple non-virtual 'this' pointer adjustments.
...
llvm-svn: 96136
2010-02-13 23:40:17 +00:00
Anders Carlsson
cce9ee8970
Add support for very simple non-virtual this adjustments in the FinalOverriders class.
...
llvm-svn: 96133
2010-02-13 23:17:31 +00:00
Anders Carlsson
c809cbdc3f
Cleanup; remove some duplicated code.
...
llvm-svn: 96131
2010-02-13 22:39:18 +00:00
Anders Carlsson
a678aa1e51
Assert if we encounter this adjustments.
...
llvm-svn: 96125
2010-02-13 22:23:31 +00:00
Anders Carlsson
e75aaa97b3
Start laying out secondary vtables.
...
llvm-svn: 96123
2010-02-13 22:05:23 +00:00
Anders Carlsson
3f9917de6e
Merge base offsets and dump them.
...
llvm-svn: 96121
2010-02-13 21:33:22 +00:00
Anders Carlsson
c1290adab7
Don't make return adjustments for pure virtual member functions.
...
llvm-svn: 96120
2010-02-13 21:16:54 +00:00
Anders Carlsson
cf5a882da1
Handle virtual bases in return adjustment types.
...
llvm-svn: 96119
2010-02-13 21:07:32 +00:00
Anders Carlsson
f3f67846c8
Handle virtual bases in ComputeBaseOffset.
...
llvm-svn: 96117
2010-02-13 20:41:15 +00:00
Daniel Dunbar
9ced542c8a
Add newline.
...
llvm-svn: 96116
2010-02-13 20:24:39 +00:00
Anders Carlsson
6a6cbfc55f
More work on covariant return types. We now handle non-virtual adjustments fine.
...
llvm-svn: 96114
2010-02-13 20:11:51 +00:00
Chris Lattner
ef538b52a3
add support for t Fedora 12 (February 2010), patch by
...
Dyachenko Dmitry. Our system is "not so elegant" here.
llvm-svn: 96111
2010-02-13 19:18:26 +00:00
Daniel Dunbar
ae4b77d99d
cindex/Python: Fix cindex-{dump,includes} examples to just pass all args
...
directly to Index, instead of requiring the input file to be first. This makes
the examples behave more like 'clang'.
For example,
ddunbar@giles:tmp$ echo '#include <string>' | python ~/llvm/tools/clang/bindings/python/examples/cindex/cindex-includes.py -- -x c++ - | wc -l
114
ddunbar@giles:tmp$ echo '#include <stdio.h>' | python ~/llvm/tools/clang/bindings/python/examples/cindex/cindex-includes.py -- -x c - | wc -l
10
llvm-svn: 96107
2010-02-13 18:33:28 +00:00
Daniel Dunbar
43813bf023
cindex/Python: Add TranslationUnit.get_includes, patch by Andrew Sutton!
...
llvm-svn: 96106
2010-02-13 18:33:18 +00:00
Daniel Dunbar
2037d4e4ea
cindex/Python: Update for clang_getDiagnosticRange... API changes.
...
llvm-svn: 96105
2010-02-13 18:33:03 +00:00
Charles Davis
4ea31ab369
Emit the 'alignstack' LLVM function attribute when we encounter a function
...
marked 'force_align_arg_pointer'. Almost there; now all I need to do is finish
up the backend.
llvm-svn: 96100
2010-02-13 15:54:06 +00:00
Chandler Carruth
a932bbca75
Fix think-o, attributes can't come *within* the type of the variable.
...
llvm-svn: 96099
2010-02-13 10:42:55 +00:00
Chandler Carruth
94eab4ad04
Silence unused variable warning in a build without assertions.
...
llvm-svn: 96098
2010-02-13 10:38:52 +00:00
Chandler Carruth
6b4756a224
Skip implicit instantiation of templated variables where a more recent
...
redeclaration provides an explicit instantiation or is invalid.
llvm-svn: 96097
2010-02-13 10:17:50 +00:00
Benjamin Kramer
e047e11189
Remove dead {include, semicolon, variable}.
...
llvm-svn: 96087
2010-02-13 09:15:07 +00:00
Benjamin Kramer
02c673781d
Use a different name for this iterator. MSVC and clang++ didn't like "I" in the same scope twice.
...
llvm-svn: 96086
2010-02-13 09:11:28 +00:00
Chandler Carruth
dfe198b588
Silence a GCC warning about a possibly uninitialized variable. It's data flow
...
only flows so far it seems.
llvm-svn: 96085
2010-02-13 07:23:01 +00:00
Douglas Gregor
04922cbb46
Fix a fiendinshly fun little type-canonicalization bug, where we were
...
rebuilding a typename type terminating in a template-id (with
dependent template name, naturally) as a TypenameType when, because
its context could be fully resolved, we should have been building it
as a QualifiedNameType. Fixes PR6268.
llvm-svn: 96084
2010-02-13 06:05:33 +00:00
Douglas Gregor
af050cb73a
Permit the use of typedefs of class template specializations in
...
qualified declarator-ids. This patch is actually due to Cornelius;
fixes PR6179.
llvm-svn: 96082
2010-02-13 05:23:25 +00:00
John McCall
bb79b5f6f3
Raise the responsibility for passing -disable-llvm-verifier in NDEBUG builds
...
to the driver, and support it in CodeGenOptsToArgs(). Note that this changes
the default behavior of clang -cc1 to always run the verifier.
llvm-svn: 96077
2010-02-13 03:50:24 +00:00
Anders Carlsson
eee53d9c06
More work on return type adjustments in the new vtable builder.
...
llvm-svn: 96070
2010-02-13 02:02:03 +00:00
Ted Kremenek
1a6672a3d4
Enhance RegionStore::InvalidateRegions() to correctly invalidate bindings
...
by scanning through the values of LazyCompoundVals.
llvm-svn: 96067
2010-02-13 01:52:33 +00:00
John McCall
ef3057c419
Switch the standard DeclarationName comparator to be a tri-valued comparator.
...
Use that while fixing a nasty misuse of qsort in vtable codegen which, somehow,
has not actually caused a crash.
llvm-svn: 96062
2010-02-13 01:04:05 +00:00
Ted Kremenek
7950b78430
Pull logic for visiting value bindings in InvalidateRegionsWorker into a separate method.
...
No functionality change.
llvm-svn: 96060
2010-02-13 00:54:03 +00:00
Eli Friedman
d5c9399696
Fix for PR6274: teach constant folding to evaluate __builtin_expect.
...
llvm-svn: 96054
2010-02-13 00:10:10 +00:00
Eli Friedman
18c28f6cdc
if-0 out printf.
...
llvm-svn: 96052
2010-02-13 00:03:21 +00:00
John McCall
cfcb775b56
Add an option to disable the LLVM verifier pass (which is still always
...
disabled in NDEBUG builds). The option applies only to -cc1 invocations and is:
-disable_llvm_verifier
llvm-svn: 96046
2010-02-12 23:47:27 +00:00
Douglas Gregor
8cdbe64de4
Funnel changes to the ImportedDecls list in the ASTImporter through a
...
single Imported function, in preparation for fixing a serious design
flaw.
llvm-svn: 96044
2010-02-12 23:44:20 +00:00
Ted Kremenek
8bd0929d41
Fix bug I introduced with assinging a temporary to a StringRef.
...
llvm-svn: 96041
2010-02-12 23:31:14 +00:00
Ted Kremenek
a3e657064b
Make the following functions thread-safe but having them return an std::string that is reconstructed
...
every time they are called:
getClangRevision()
getClangFullRepositoryVersion()
getClangFullVersion()
llvm-svn: 96033
2010-02-12 22:54:40 +00:00
Douglas Gregor
98c1018337
Implement AST importing and merging for enumeration types and
...
enumerators, along with ImplicitCastExprs to make it work.
llvm-svn: 96024
2010-02-12 22:17:39 +00:00
Fariborz Jahanian
5ec502e35b
Complain if block-literal expression's parameter name is
...
missing (in c/objc mode). Fixes radar 7528255.
llvm-svn: 96017
2010-02-12 21:53:14 +00:00
Ted Kremenek
8f8dcbaadd
(1) Correctly format external Javascript link.
...
(2) Reformat "annotations" topics list to use a collapsable tree.
llvm-svn: 96013
2010-02-12 21:05:44 +00:00
Fariborz Jahanian
e5c118f60d
Don't error when setting a sub-structure variable via objc properties
...
in objective-c++ mode (do it for objective-c only).
llvm-svn: 96012
2010-02-12 21:02:28 +00:00
Chris Lattner
5647d3192c
fix a bug in SourceManager::getInstantiationLocSlowCase, where
...
we'd add an offset from the spelling location space to the
instantiation location, which doesn't make sense and would
lead up to the text diagnostics crashing when presented with
non-sensical locations.
This fixes rdar://7597492, a crash on 255.vortex.
llvm-svn: 96004
2010-02-12 19:31:35 +00:00
Fariborz Jahanian
dc68f9539c
Patch to fix a warning which exposed a bug in building
...
a qualified objective-c pointer type. Fixes radar 7638810.
(Also removes a FIXME).
llvm-svn: 96003
2010-02-12 19:27:33 +00:00
Chris Lattner
fc38aa7091
restructure code a bit: there are two potential issues
...
worth asserting about in this code: 1) if the source range
is bogus (begin loc after end loc), and 2) if the client
is trying to highlight a range that is purely whitespace.
It is possible to just silently ignore #2 , but it seems like
it is always a bug, so lets keep asserting on this condition,
but with a better assert message.
llvm-svn: 95998
2010-02-12 18:52:52 +00:00
Anders Carlsson
0760481f26
Fix a refacto that broke the clang-on-clang build.
...
llvm-svn: 95994
2010-02-12 18:14:46 +00:00
Fariborz Jahanian
a459c4453d
Fixes a rewriter bug rewriting function decl.
...
with block-pointer-type as one or more of its
arguments. Fixes radar 7638400.
llvm-svn: 95992
2010-02-12 17:52:31 +00:00
Douglas Gregor
5089c769bb
Improve representation of tag declarations first declared or defined
...
within the declarator of another declaration, from Enea Zaffanella!
llvm-svn: 95991
2010-02-12 17:40:34 +00:00
Anders Carlsson
5272c2574a
Start stubbing out more of the covariant thunk support.
...
llvm-svn: 95990
2010-02-12 17:37:14 +00:00
Douglas Gregor
925df1b529
Improve documentation for DependentTypeOfExprType, DependentDecltypeType. No functionality change.
...
llvm-svn: 95989
2010-02-12 17:28:41 +00:00
Douglas Gregor
56521c5e8c
Simplify incomplete-array merging code in the AST importer, thanks to
...
Daniel's suggestion.
llvm-svn: 95987
2010-02-12 17:23:39 +00:00
Douglas Gregor
8870a49310
Fix a latent bug found by Ahmed Charles, where we were calling
...
ASTContext::getFunctionType with the wrong set of arguments.
llvm-svn: 95986
2010-02-12 17:17:28 +00:00
Anders Carlsson
8e661e15f2
Keep track of whether a final overrider needs a return type adjustment.
...
llvm-svn: 95985
2010-02-12 17:13:23 +00:00
Anders Carlsson
136bd19224
Move overrider out into a separate struct.
...
llvm-svn: 95984
2010-02-12 16:55:34 +00:00
Chris Lattner
aa1cccbbef
Fix PR6282: the include guard optimization cannot happen if the
...
guard macro is already defined for the first occurrence of the
header. If it is, the body will be skipped and not be properly
analyzed for the include guard optimization.
llvm-svn: 95972
2010-02-12 08:03:27 +00:00
Anders Carlsson
e8a9756e63
Keep track of the address points for all primary bases, and add the ability to dump multiple address points for a single offset.
...
llvm-svn: 95970
2010-02-12 07:43:48 +00:00
Douglas Gregor
f40863caff
Work around an annoying, non-standard optimization in the glibc
...
headers, where malloc (and many other libc functions) are declared
with empty throw specifications, e.g.,
extern void *malloc (__SIZE_TYPE__ __size) throw () __attribute__
((__malloc__)) ;
The C++ standard doesn't seem to allow this, and redeclaring malloc as
the standard permits (as follows) resulted in Clang (rightfully!)
complaining about mis-matched exception specifications.
void *malloc(size_t size);
We work around this by silently propagating an empty throw
specification "throw()" from a function with C linkage declared in a
system header to a redeclaration that has no throw specifier.
Ick.
llvm-svn: 95969
2010-02-12 07:32:17 +00:00
John McCall
84c416b9f6
Fix a bug causing an assertion when a covariant return type differed from
...
an overriden type only by reduced qualification.
llvm-svn: 95968
2010-02-12 06:15:07 +00:00
Douglas Gregor
87b4b4184c
Improve a test slightly
...
llvm-svn: 95967
2010-02-12 06:08:51 +00:00
Douglas Gregor
d3a5918742
In C++, allow builtins to be referred to via qualified name lookup, e.g.,
...
::__builtin_va_copy
Fixes one of the Firefox issues in PR5511.
llvm-svn: 95966
2010-02-12 05:48:04 +00:00
Anders Carlsson
65b4978f7f
More work on vtable layout. We can now layout vtables with primary bases.
...
llvm-svn: 95965
2010-02-12 05:25:12 +00:00
John McCall
62d5d64ce9
Waste two bits in every clang::Type so that the type class can be read
...
in a single byte-load rather than some crazy bitmunging operation.
llvm-svn: 95964
2010-02-12 03:41:30 +00:00
Anders Carlsson
09da3372b6
When dumping vtables, dump whether a virtual member function is pure or not.
...
llvm-svn: 95963
2010-02-12 02:38:13 +00:00
Anders Carlsson
9fbf6d95f6
More work on the final overriders.
...
llvm-svn: 95954
2010-02-12 01:40:03 +00:00
Devang Patel
f4df65cf60
Do not ignore anonymous records.
...
llvm-svn: 95953
2010-02-12 01:31:06 +00:00
Devang Patel
e003dd1721
Cache new compile unit.
...
llvm-svn: 95952
2010-02-12 01:30:31 +00:00
Ted Kremenek
e9711db487
Two changes to scan-build:
...
(1) When no 'clang' is found with 'scan-build', remember the one from
the path as scan-build sees it, not the build system. This prevents
us from finding different clangs during the build.
(2) Don't set LDPLUSPLUS when running xcodebuild; instead rely on the
clang driver to do the right thing.
llvm-svn: 95943
2010-02-12 00:12:25 +00:00
Ted Kremenek
14015de619
Add comments.
...
llvm-svn: 95942
2010-02-12 00:10:34 +00:00
Douglas Gregor
2579105c4e
Handle AST merges of incomplete class types.
...
llvm-svn: 95941
2010-02-12 00:09:27 +00:00
Tanya Lattner
90073804fb
Implementing unused function warning.
...
llvm-svn: 95940
2010-02-12 00:07:30 +00:00
Charles Davis
a90f7ca591
Warn about using the new force_align_arg_pointer attribute on a function
...
pointer. If you don't like the new warning, you can turn it off with
-Wno-force-align-arg-pointer.
llvm-svn: 95939
2010-02-11 23:57:08 +00:00
Fariborz Jahanian
4c4ca5a9d3
Fixes a rewriting bug where order of constructor expression arguments did not match
...
order of constructor arguments (all block API specific). This was exposed only in
a large block literal expression in a large file where PtrSet container size
execceded its limit and required reallocation. Fixes radar 7638294
llvm-svn: 95936
2010-02-11 23:35:57 +00:00
Douglas Gregor
50dc219e8b
When we have a dependent direct initializer but not a dependent
...
variable type, we can (and should) still check for completeness of the
variable's type. Do so, to work around an assertion that shows up in
Boost's shared_ptr.
llvm-svn: 95934
2010-02-11 22:55:30 +00:00
Ted Kremenek
9d6eb40ce7
Fix leak in CXXNewExpr where the SubExprs array would get allocated directly using 'new[]' instead of the allocator associated with ASTContext.
...
llvm-svn: 95933
2010-02-11 22:51:03 +00:00
John McCall
81472e34b2
Make this test not rely on the system <limits.h>. Hopefully fixes the
...
MSVC build.
llvm-svn: 95932
2010-02-11 22:45:16 +00:00
Ted Kremenek
9c8a6f5a8e
Fix re-allocation in AttrWithString::ReplaceString() to use the allocator assosciated with ASTContext.
...
llvm-svn: 95931
2010-02-11 22:44:22 +00:00
Ted Kremenek
2c809308ca
Allocate the SubExprs array in ObjCMessageExpr using the allocator associated with ASTContext. This fixes yet another leak (<rdar://problem/7639260>).
...
llvm-svn: 95930
2010-02-11 22:41:21 +00:00
Anders Carlsson
e8ac42ad5c
Stub out the final overriders class.
...
llvm-svn: 95922
2010-02-11 21:24:32 +00:00
Anders Carlsson
dd27b5d7bb
Use getAs instead of cast/dyn_cast on types. (I'm sure Doug will appreciate this).
...
llvm-svn: 95911
2010-02-11 19:45:15 +00:00
Anders Carlsson
727ffb14a1
Move two functions to the top. No functionality change.
...
llvm-svn: 95908
2010-02-11 19:39:49 +00:00
Ted Kremenek
23a26d244d
Uncomment lines I never meant to have left commented in a commit.
...
llvm-svn: 95906
2010-02-11 19:37:25 +00:00
Douglas Gregor
7eeb59752a
When AST merging for record declarations fails, warn about the
...
incompatibility and show where the structural differences are. For
example:
struct1.c:36:8: warning: type 'struct S7' has incompatible definitions
in different translation units
struct S7 { int i : 8; unsigned j : 8; } x7;
^
struct1.c:36:33: note: bit-field 'j' with type 'unsigned int' and length 8 here
struct S7 { int i : 8; unsigned j : 8; } x7;
^
struct2.c:33:33: note: bit-field 'j' with type 'unsigned int' and length 16 here
struct S7 { int i : 8; unsigned j : 16; } x7;
^
There are a few changes to make this work:
- ASTImporter now has only a single Diagnostic object, not multiple
diagnostic objects. Otherwise, having a warning/error printed via
one Diagnostic and its note printed on the other Diagnostic could
cause the note to be suppressed.
- Implemented import functionality for IntegerLiteral (along with
general support for statements and expressions)
llvm-svn: 95900
2010-02-11 19:21:55 +00:00
Eli Friedman
f5d476efb2
Add builtins from PR5255. Implementations coming soon.
...
llvm-svn: 95894
2010-02-11 19:02:42 +00:00
John McCall
739908faf6
Test case for warnings with carets inside macro instantiations.
...
llvm-svn: 95893
2010-02-11 18:52:49 +00:00
Anders Carlsson
48ea217fbf
Add virtual operator= example.
...
llvm-svn: 95888
2010-02-11 18:21:49 +00:00
Anders Carlsson
5bd8d19291
More vtable layout dumper improvements. Handle destructors, dump the complete function type of the member functions (using PredefinedExpr::ComputeName.
...
llvm-svn: 95887
2010-02-11 18:20:28 +00:00
Douglas Gregor
69837bed2f
Add missing test cases for AST merging of structures.
...
llvm-svn: 95886
2010-02-11 18:18:11 +00:00
Daniel Dunbar
bcd554f908
Driver: Fix clang -ccc-no-clang -x c++-header foo.h on Darwin.
...
llvm-svn: 95876
2010-02-11 17:33:45 +00:00
Anders Carlsson
932c2f2a9a
Keep track of, and dump, vtable address points.
...
llvm-svn: 95874
2010-02-11 17:18:51 +00:00
Benjamin Kramer
15d8225b59
Remove noisy semicolon.
...
llvm-svn: 95872
2010-02-11 11:33:47 +00:00
John McCall
be089fa86b
Suppress warnings if their instantiation location is in a system header, not
...
their spelling location. This prevents warnings from being swallowed just
because the caret is on the first parenthesis in, say, NULL.
This is an experiment; the risk is that there might be a substantial number
of system headers which #define symbols to expressions which inherently cause
warnings. My theory is that that's rare enough that it can be worked
around case-by-case, and that producing useful warnings around NULL is worth
it. But I'm willing to accept that I might be empirically wrong.
llvm-svn: 95870
2010-02-11 10:04:29 +00:00
Ted Kremenek
d31b2637ab
Patch by Cristian Draghici:
...
Enhance the printf format string checking when using the format
specifier flags ' ', '0', '+' with the 'p' or 's' conversions (since
they are nonsensical and undefined). This is similar to GCC's
checking.
Also warning when a precision is used with the 'p' conversin
specifier, since it has no meaning.
llvm-svn: 95869
2010-02-11 09:27:41 +00:00
Anders Carlsson
5d40c6f658
Check in the beginnings of my new vtable layout builder idea.
...
Right now, it's off by default but can be tested by passing -fdump-vtable-layouts to clang -cc1. This option will cause all vtables that will normally be emitted as part of codegen to also be dumped using the new layout code.
I've also added a very simple new vtable layout test case.
llvm-svn: 95865
2010-02-11 08:02:13 +00:00
Ted Kremenek
50228be0f3
Attempt to always dispose of the CXIndex object in c-index-test.
...
llvm-svn: 95864
2010-02-11 07:41:25 +00:00
Ted Kremenek
510ee2594e
Use the allocator associated with ASTContext to allocate the args
...
array associated with NonNullAttr. This fixes yet another leak when
ASTContext uses a BumpPtrAllocator.
Fixes: <rdar://problem/7637150>
llvm-svn: 95863
2010-02-11 07:31:47 +00:00
Ted Kremenek
da4e0d350c
Have ~ASTContext() delete StoredDeclsMap (internal to DeclContext) by
...
storing the set of StoredDeclsMaps in an internal vector of void*.
This isn't an ideal solution, but for the time being this fixes a
major memory leak with these DenseMaps not being freed.
Fixes: <rdar://problem/7634755>
llvm-svn: 95861
2010-02-11 07:12:28 +00:00
Ted Kremenek
7f4945aa9c
Remove use of 'std::string' from Attr objects, using instead a byte
...
array allocated using the allocator in ASTContext. This addresses
these strings getting leaked when using a BumpPtrAllocator (in
ASTContext).
Fixes: <rdar://problem/7636765>
llvm-svn: 95853
2010-02-11 05:28:37 +00:00
Daniel Dunbar
aeea8ac3d8
Driver: Add -rewrite-objc, which is an interface to clang -cc1 -rewrite-objc.
...
llvm-svn: 95849
2010-02-11 03:16:21 +00:00
Daniel Dunbar
84f22f9da1
Driver: Fix infinite loop and wrong message on invalid -ccc-clang-arch argument.
...
llvm-svn: 95848
2010-02-11 03:16:07 +00:00
Ted Kremenek
c162e8e193
Clean up ownership of 'AttributeList' objects in Parser. Apparently
...
we would just leak them all over the place, with no clear ownership of
these objects at all. AttributeList objects would get leaked on both
error and non-error paths.
Note: I introduced the usage of llvm::OwningPtr<AttributeList> to
manage these objects, which is particularly useful for methods with
multiple return sites. In at least one method I used them even when
they weren't strictly necessary because it clarified the ownership
semantics and made the code easier to read. Should the excessive
'take()' and 'reset()' calls become a performance issue we can always
re-evaluate.
Note+1: I believe I have not introduced any double-frees, but it would
be nice for someone to review this.
This fixes <rdar://problem/7635046>.
llvm-svn: 95847
2010-02-11 02:19:13 +00:00
John McCall
4f7ced69ff
Strip attributes and 'inline' off the "previous declaration" of a
...
template explicit specialization. Complete an apparently stalled refactor
towards using CheckSpecializationInstantiationRedecl().
llvm-svn: 95845
2010-02-11 01:33:53 +00:00
Douglas Gregor
4a62bdfb2a
Remove another redundant ASTContext parameter
...
llvm-svn: 95843
2010-02-11 01:30:34 +00:00
Douglas Gregor
d505812422
Eliminate a bunch of unnecessary ASTContexts from members functions of
...
Decl subclasses. No functionality change.
llvm-svn: 95841
2010-02-11 01:19:42 +00:00
Fariborz Jahanian
13b9782cc0
Diagnose when user provided getter is being used as lvalue
...
using property dot-syntax. Fixes radar 7628953.
llvm-svn: 95838
2010-02-11 01:11:34 +00:00
Douglas Gregor
0a5a2216e2
Eliminate the ASTContext parameter from RecordDecl::getDefinition()
...
and CXXRecordDecl::getDefinition(); it's totally unnecessary. No
functionality change.
llvm-svn: 95836
2010-02-11 01:04:33 +00:00
Ted Kremenek
da4abf11bf
Allocate 'ObjCMethodList' objects (owned by Sema) using Sema's BumpPtrAllocator. Previously they were not getting freed. Fixes <rdar://problem/7635663>.
...
llvm-svn: 95834
2010-02-11 00:53:01 +00:00
Douglas Gregor
5c73e918c5
Implement basic AST merging for classes, structs, and unions in C.
...
llvm-svn: 95833
2010-02-11 00:48:18 +00:00
Fariborz Jahanian
989908fbac
Generate the objc_read_weak API when calling
...
a __weak block. Fixes radar 7628591.
llvm-svn: 95822
2010-02-10 23:34:57 +00:00
Charles Davis
42b3842429
Fix a potential null-pointer use, and fix the style of my new function.
...
Thanks, Anton!
llvm-svn: 95821
2010-02-10 23:26:12 +00:00
Charles Davis
bbc0aa5166
Add support for the force_align_arg_pointer attribute. This is an x86-specific
...
attribute, so it uses Anton's new target-specific attribute support. It's
supposed to ensure that the stack is 16-byte aligned, but since necessary
support is lacking from LLVM, this is a no-op for now.
llvm-svn: 95820
2010-02-10 23:06:52 +00:00
Chris Lattner
c55042c20f
hopefully silence a warning on the clang-i386-darwin9 tester.
...
llvm-svn: 95812
2010-02-10 21:41:43 +00:00
Douglas Gregor
5fa74c3b1d
Move TypedefDecl importer to match the ordering in DeclNodes. No functionality change.
...
llvm-svn: 95805
2010-02-10 21:10:29 +00:00
Daniel Dunbar
d64ce7b611
c-index-test: Add "none" filter, useful for performance testing.
...
llvm-svn: 95800
2010-02-10 20:42:40 +00:00
Fariborz Jahanian
c3bdefa08d
Patch to rewrite blocks into unique api names.
...
Fixes radar 7630551
llvm-svn: 95796
2010-02-10 20:18:25 +00:00
Douglas Gregor
bb7930c17e
Implement basic support for merging function declarations across
...
translation units.
llvm-svn: 95794
2010-02-10 19:54:31 +00:00
Fariborz Jahanian
bbf4320390
Provide rewriting suppport for use of __typeof__
...
in a declaration statement. Fixes radar 7628153.
llvm-svn: 95788
2010-02-10 18:54:22 +00:00
Daniel Dunbar
3241d400c8
Switch to using -fsjlj-exceptions instead of hard-coding it. Notably, this fixes
...
calls to the UnwindResumeOrRethrow function for C++/Obj-C exception handling,
for Darwin ARM.
llvm-svn: 95787
2010-02-10 18:49:11 +00:00
Devang Patel
535fdaf020
Refactor code that generates debug info for variables that has BlocksAttr.
...
llvm-svn: 95786
2010-02-10 18:49:08 +00:00
Daniel Dunbar
925152c2d0
clang -cc1: Add -fsjlj-exceptions, which requires far too much button pushing.
...
llvm-svn: 95785
2010-02-10 18:48:44 +00:00
Douglas Gregor
fa7a0e5198
Implement AST importing and merging for typedefs. As part of this, provide a lame implementation for importing TypeSourceInfos.
...
llvm-svn: 95783
2010-02-10 17:47:19 +00:00
Douglas Gregor
2fbe558cfe
Teach AST merging that variables with incomplete array types can be
...
merged with variables of constant array types. Also, make sure that we
call DiagnosticClient's BeginSourceFile/EndSourceFile, so that it has
a LangOptions to work with.
llvm-svn: 95782
2010-02-10 17:16:49 +00:00
John McCall
5b0829a321
Improve access control diagnostics. Perform access control on member-pointer
...
conversions. Fix an access-control bug where privileges were not considered
at intermediate points along the inheritance path. Prepare for friends.
llvm-svn: 95775
2010-02-10 09:31:12 +00:00
Ted Kremenek
00d1c5996b
Don't display border around images (in Firefox).
...
llvm-svn: 95772
2010-02-10 06:43:43 +00:00
Ted Kremenek
fb45d35108
Convert tabs to spaces.
...
llvm-svn: 95756
2010-02-10 02:16:30 +00:00
Zhongxing Xu
bc1d4ae206
Add comment.
...
llvm-svn: 95755
2010-02-10 02:02:10 +00:00
Douglas Gregor
0f058c83a7
Add missing header file
...
llvm-svn: 95751
2010-02-10 01:35:04 +00:00
Fariborz Jahanian
68ebe63865
Comment out category's property decls. in rewrite.
...
Fixes radar 7630636.
llvm-svn: 95744
2010-02-10 01:15:09 +00:00
Devang Patel
1b5330afe9
Use current location as the location of compiler generated arguments, e.g. self, _cmd etc.
...
llvm-svn: 95743
2010-02-10 01:09:50 +00:00
Fariborz Jahanian
113b8ad7cf
Reverse a partial fix patch for radar 7214820. It broke some code and
...
I don't have time to refix it for now.
llvm-svn: 95733
2010-02-10 00:32:12 +00:00
Douglas Gregor
811663eb11
Implement basic support for importing source locations from one AST
...
into another AST, including their include history. Here's an example
error that involves a conflict merging a variable with different types
in two translation units (diagnosed in the third AST context into
which everything is merged).
/Volumes/Data/dgregor/Projects/llvm/tools/clang/test/ASTMerge/Inputs/var2.c:3:5:
error: external variable 'x2' declared with incompatible types in
different translation units ('int' vs. 'double')
int x2;
^
In file included from
/Volumes/Data/dgregor/Projects/llvm/tools/clang/test/ASTMerge/Inputs/var1.c:3:
/Volumes/Data/dgregor/Projects/llvm/tools/clang/test/ASTMerge/Inputs/var1.h:1:8:
note: declared here with type 'double'
double x2;
^
Although we maintain include history, we do not maintain macro
instantiation history across a merge. Instead, we map down to the
spelling location (for now!).
llvm-svn: 95732
2010-02-10 00:15:17 +00:00
Ted Kremenek
096807e77e
Pull header into side column.
...
llvm-svn: 95726
2010-02-09 23:42:00 +00:00
Ted Kremenek
118667c4b9
Increase page width for more modern displays.
...
llvm-svn: 95725
2010-02-09 23:40:10 +00:00
Ted Kremenek
f33109b452
Tweak CSS for options table.
...
llvm-svn: 95724
2010-02-09 23:32:46 +00:00
Ted Kremenek
d4d6abe512
Even more menu tweaking...
...
llvm-svn: 95722
2010-02-09 23:21:49 +00:00
Ted Kremenek
758f6acc95
More menu tweaking.
...
llvm-svn: 95721
2010-02-09 23:21:00 +00:00
Ted Kremenek
a362afe55f
Adjust height of main content.
...
llvm-svn: 95720
2010-02-09 23:18:43 +00:00
Ted Kremenek
1b24918fb2
Fix grammar.
...
llvm-svn: 95719
2010-02-09 23:18:00 +00:00
Ted Kremenek
7b461607f5
Change text alignment in menus.
...
llvm-svn: 95718
2010-02-09 23:16:24 +00:00
Ted Kremenek
390dd25d0f
Move file-specific styling to after the menu.
...
llvm-svn: 95717
2010-02-09 23:10:47 +00:00
Ted Kremenek
5c98bf55ac
Invert css inclusion order.
...
llvm-svn: 95716
2010-02-09 23:09:48 +00:00
Ted Kremenek
c6ee376692
More analyzer website tweaking in preparation for additional content.
...
llvm-svn: 95714
2010-02-09 23:05:59 +00:00
Douglas Gregor
e4c83e4e2e
Complain about types and declarations that we don't know how to import.
...
llvm-svn: 95706
2010-02-09 22:48:33 +00:00
Douglas Gregor
44e16a3f4c
Add in the LIT magic to avoid running AST merge test inputs as
...
separate tests. Thanks, Daniel!
llvm-svn: 95705
2010-02-09 22:40:03 +00:00
Douglas Gregor
6b2a474531
Hook up the diagnostics-argument printer when merging AST files, so
...
that we get readable diagnostics such as:
error: external variable 'x1' declared with incompatible types in
different translation units ('double *' vs. 'float **')
However, there is no translation of source locations, yet.
llvm-svn: 95704
2010-02-09 22:37:58 +00:00
Douglas Gregor
639cccc4c0
Move the diagnostic argument formatting function out of Sema and make
...
it available within the AST library, of which Sema is one client. No
functionality change.
llvm-svn: 95701
2010-02-09 22:26:47 +00:00
Ted Kremenek
1b018ab712
Fix javascript link.
...
llvm-svn: 95696
2010-02-09 21:49:53 +00:00
Fariborz Jahanian
5db5281db8
Finish implementing property synthesis by default.
...
(radar 7381956).
llvm-svn: 95695
2010-02-09 21:49:50 +00:00
Ted Kremenek
c319f5c044
Fix javascript file link.
...
llvm-svn: 95694
2010-02-09 21:48:04 +00:00
Ted Kremenek
02f2a0c279
Update checker build.
...
llvm-svn: 95692
2010-02-09 21:42:12 +00:00
Fariborz Jahanian
4587803919
Implement synthesizing properties by default.
...
This is a non-fragile-abi feature only. Since it
breaks existing code, it is currently placed under
-fobjc-nonfragile-abi2 option for test purposes only
until further notice. WIP.
llvm-svn: 95685
2010-02-09 19:31:38 +00:00
Benjamin Kramer
f3a499ad88
StringRefize two random methods, remove a dead variable and a weird constructor call.
...
This maybe fixes some of the errors GCC 4.5 gives on this code.
llvm-svn: 95684
2010-02-09 19:31:24 +00:00
Douglas Gregor
62d311fdf4
Introduce a testbed for merging multiple ASTs into a single AST
...
context with the AST importer. WIP, still useless but at least it has
a test.
llvm-svn: 95683
2010-02-09 19:21:46 +00:00
Ted Kremenek
499b4e3387
Fix lookup of fields from lazy bindings to check if the region is
...
NULL, not the store, to determine if a lookup succeeded. The store
can be null if it contained no bindings. This fixes a false positive
reported to me by a user of the analyzer.
llvm-svn: 95679
2010-02-09 19:11:53 +00:00
Devang Patel
0ae70d16b8
Fix virtual bases' debug info.
...
llvm-svn: 95678
2010-02-09 19:09:28 +00:00
Ted Kremenek
74cc62e161
Tweak output.
...
llvm-svn: 95676
2010-02-09 18:51:44 +00:00
Ted Kremenek
8de7a0efd1
Add a check for a running Xcode before modifying its configuration files.
...
llvm-svn: 95675
2010-02-09 18:46:58 +00:00
Devang Patel
cce7e85165
Mark implicit "this" argument as an artificial argument.
...
llvm-svn: 95673
2010-02-09 17:57:50 +00:00
Anton Korobeynikov
c5c905e772
Fix typo
...
llvm-svn: 95664
2010-02-09 16:50:54 +00:00
Anton Korobeynikov
55496d736b
Clearify Qt status a bit
...
llvm-svn: 95663
2010-02-09 16:46:25 +00:00
Douglas Gregor
fa186e9e19
Add Qt, CMake projects to the list of C++ projects we're working on compiling
...
llvm-svn: 95662
2010-02-09 16:36:17 +00:00
Daniel Dunbar
5140d1b75e
Update tests in -Asserts mode. These tests really need to be rewritten...
...
llvm-svn: 95658
2010-02-09 08:22:03 +00:00
Douglas Gregor
e6565625f4
Migrate the mish-mash of declaration checks in
...
Sema::ActOnUninitializedDecl over to InitializationSequence (with
default initialization), eliminating redundancy. More importantly, we
now check that a const definition in C++ has an initilizer, which was
an #if 0'd code for many, many months. A few other tweaks were needed
to get everything working again:
- Fix all of the places in the testsuite where we defined const
objects without initializers (now that we diagnose this issue)
- Teach instantiation of static data members to find the previous
declaration, so that we build proper redeclaration
chains. Previously, we had the redeclaration chain but built it
too late to be useful, because...
- Teach instantiation of static data member definitions not to try
to check an initializer if a previous declaration already had an
initializer. This makes sure that we don't complain about static
const data members with in-class initializers and out-of-line
definitions.
- Move all of the incomplete-type checking logic out of
Sema::FinalizeDeclaratorGroup; it makes more sense in
ActOnUnitializedDecl.
There may still be a few places where we can improve these
diagnostics. I'll address that as a separate commit.
llvm-svn: 95657
2010-02-09 07:26:29 +00:00
Daniel Dunbar
a7566f163a
IRgen: Add CreateMemTemp, for creating an temporary memory object for a particular type, and flood fill. - CreateMemTemp sets the alignment on the alloca correctly, which fixes a great many places in IRgen where we were doing the wrong thing.
...
- This fixes many many more places than the test case, but my feeling is we need to audit alignment systematically so I'm not inclined to try hard to test the individual fixes in this patch. If this bothers you, patches welcome!
PR6240.
llvm-svn: 95648
2010-02-09 02:48:28 +00:00
Douglas Gregor
1f53e803cd
Fix PR number in test case
...
llvm-svn: 95640
2010-02-09 01:02:53 +00:00
John McCall
6f891400c2
Reset the found-virtual-base state unless the *current* base produces a path,
...
not *any* base up to now has produced a path. Fixes PR 6254.
I'll do the access-control part of this patch RSN.
llvm-svn: 95638
2010-02-09 00:57:12 +00:00
Douglas Gregor
34c0a90265
Be more careful when checking initializer lists that involve reference
...
types; we don't want to give an expression reference type. Fixes PR6177.
llvm-svn: 95635
2010-02-09 00:50:06 +00:00
Douglas Gregor
92354b6b55
Implement a specific diagnostic when a class template partial
...
specialization does not use any of its template parameters, then
recover far more gracefully. Fixes PR6181.
llvm-svn: 95629
2010-02-09 00:37:32 +00:00
Jakob Stoklund Olesen
819e54b65c
Pass inline keyword to optimizer as the new InlineHint function attribute.
...
At the moment the inlinehint attribute is ignored by the Inliner unless you
pass a -respect-inlinehint option. This will soon be the default.
The inlinehint attribute is set if the inline keyword is explicitly specified
on any declaration.
llvm-svn: 95623
2010-02-09 00:10:00 +00:00
Ted Kremenek
2a0cd59f8e
Convert tabs to spaces.
...
llvm-svn: 95621
2010-02-09 00:04:09 +00:00
Ted Kremenek
3f91c4b289
Fix grammar.
...
llvm-svn: 95618
2010-02-08 23:57:20 +00:00
Ted Kremenek
53c60c9a0a
Tweak menu.
...
llvm-svn: 95617
2010-02-08 23:56:51 +00:00
Ted Kremenek
156a8f92e6
Really increase menu width...
...
llvm-svn: 95615
2010-02-08 23:55:36 +00:00
Ted Kremenek
fcf4904144
Increase width of nav bar.
...
llvm-svn: 95612
2010-02-08 23:54:46 +00:00
Ted Kremenek
2960ec1c95
Add inclusion links for external JavaScript file.
...
llvm-svn: 95611
2010-02-08 23:52:41 +00:00
Ted Kremenek
d578ca93d6
Switch to drop-down menu style.
...
llvm-svn: 95610
2010-02-08 23:50:54 +00:00
Douglas Gregor
6c379e2aa6
When substituting a declaration non-type template argument for a
...
non-type template parameter that has reference type, augment the
qualifiers of the non-type template argument with those of the
referenced type. Fixes PR6250.
llvm-svn: 95607
2010-02-08 23:41:45 +00:00
Douglas Gregor
4b8fd6d3d3
Clean up the CIndex interface to diagnostic ranges. Thanks, Daniel!
...
llvm-svn: 95602
2010-02-08 23:11:56 +00:00
John McCall
bc077cf589
Thread a source location into the template-argument deduction routines. There
...
may be some other places that could take advantage of this new information,
but I haven't really looked yet.
llvm-svn: 95600
2010-02-08 23:07:23 +00:00
Douglas Gregor
408bb74ae6
Note that a CXIndex cannot be destroyed until after all of its translation units have been destroyed
...
llvm-svn: 95598
2010-02-08 23:03:06 +00:00
Douglas Gregor
f85bee621b
Eliminate a pointer of storage in each ObjCInterfaceType and
...
ObjCObjectPointerType AST node by allocating the list of protocols
after the type node itself. No functionality change.
llvm-svn: 95597
2010-02-08 22:59:26 +00:00
Daniel Dunbar
3d33fab7fc
Reapply r95393, without the change to CGExpr. I was wrong in assuming that the
...
element type always matched the converted LLVM type for ExprType.
llvm-svn: 95596
2010-02-08 22:53:07 +00:00
Douglas Gregor
bd683973c1
Warn when cases are missing from a switch on a value of enumeration
...
type (-Wswitch), from Michal!
llvm-svn: 95592
2010-02-08 22:24:16 +00:00
Ted Kremenek
73fd7e3bee
Remove table (for now). Doesn't look so hot.
...
llvm-svn: 95590
2010-02-08 22:16:08 +00:00
Ted Kremenek
9f25dd587c
Add images showing the results in a web browser and Xcode respectively.
...
llvm-svn: 95589
2010-02-08 22:12:48 +00:00
Douglas Gregor
586d0f926c
Keep track of whether a tag was defined in a declarator vs. being
...
defined by itself, from Enea Zaffanella!
llvm-svn: 95586
2010-02-08 22:07:33 +00:00
John McCall
340aafaac6
Emit global references with constant initializers as constants. Fixes PR5585.
...
The standard actually says that such references should have internal linkage,
but gcc doesn't do that, so we probably can't get away with it.
llvm-svn: 95577
2010-02-08 21:46:50 +00:00
Ted Kremenek
d0450d90b3
Remove link to Developer Meeting and tighten menu.
...
llvm-svn: 95576
2010-02-08 21:39:53 +00:00
Ted Kremenek
8eacbe5559
Add link to the current status of analysis support for C++.
...
llvm-svn: 95573
2010-02-08 21:36:47 +00:00
Ted Kremenek
e52f932f5f
Add some diagnostics for when we cannot update the original spec file.
...
llvm-svn: 95572
2010-02-08 21:19:27 +00:00
Fariborz Jahanian
04477f3de9
Merge block/function pointer types with objc's __weak
...
attribute properly and avoid bogus warning. This is
an objective-c fix only. objective-c++ follows different code
pass and requires separate fix (which will come at a later time).
Fixes radar 7214820.
llvm-svn: 95571
2010-02-08 21:09:39 +00:00
Douglas Gregor
3aed6cdd5e
Implement basic importing and merging of variable declarations within
...
the AST importer. This doesn't actually do anything (yet), because we
don't have driver logic for merging ASTs.
llvm-svn: 95570
2010-02-08 21:09:39 +00:00
Ted Kremenek
94c5349ef2
Add a Python script to change what version of Clang is used by Xcode for static analysis (and ONLY static analysis).
...
llvm-svn: 95569
2010-02-08 20:54:01 +00:00
Daniel Dunbar
ddf1445134
Fix -Asserts warning.
...
llvm-svn: 95563
2010-02-08 20:24:21 +00:00
Sebastian Redl
c1b139dba0
Add a test case for r95555.
...
llvm-svn: 95562
2010-02-08 19:58:40 +00:00
Benjamin Kramer
16fe0bcb26
Simplify another switch/strcmp construct. No functionality/performance change.
...
llvm-svn: 95561
2010-02-08 19:51:59 +00:00
Sebastian Redl
b0e3e1bf67
When placing an annotation token over an existing annotation token, make sure that the new token's range extends to the end of the old token. Assert that in AnnotateCachedTokens. Fixes PR6248.
...
llvm-svn: 95555
2010-02-08 19:35:18 +00:00
John McCall
69f9dbc3e4
Fix the crash-on-invalid from PR6259.
...
llvm-svn: 95554
2010-02-08 19:26:07 +00:00
Chandler Carruth
75cc359fdc
Ensure that a operator delete overload is rocognized regardless of cv-quals.
...
llvm-svn: 95553
2010-02-08 18:54:05 +00:00
Benjamin Kramer
eaabbd8b46
Reapply r95546, no intended change in performance or functionality.
...
llvm-svn: 95552
2010-02-08 18:38:55 +00:00
Ted Kremenek
ac5ab79555
Revert 95546 since it changed the algorithmic characteristics of the convention lookup.
...
llvm-svn: 95547
2010-02-08 16:45:01 +00:00
Benjamin Kramer
30949dd9f9
Simplify code with StringRef.
...
3 files changed, 76 insertions(+), 153 deletions(-)
llvm-svn: 95546
2010-02-08 16:39:00 +00:00
Ted Kremenek
57f0989c16
Revert 95541.
...
llvm-svn: 95545
2010-02-08 16:18:51 +00:00
Douglas Gregor
f65bbb31e8
Cache imported types
...
llvm-svn: 95543
2010-02-08 15:18:58 +00:00
Zhongxing Xu
500f49fe25
Rename: GRState::getSVal(Stmt*) => getExprVal(),
...
GRState::getSVal(MemRegion*) => Load().
llvm-svn: 95541
2010-02-08 09:30:02 +00:00
Zhongxing Xu
c5f825eacd
BindInternal is redundant. Remove it.
...
llvm-svn: 95540
2010-02-08 08:48:05 +00:00
Zhongxing Xu
8ca2dc05a3
Like for symbolic region, automatically create a element zero region for
...
alloca region.
llvm-svn: 95539
2010-02-08 08:43:02 +00:00
Zhongxing Xu
b02d4a0d11
Unify the implementation of getLValueElement of store managers.
...
It's more sophisticated than the original one of BasicStore. But it does
matter.
llvm-svn: 95536
2010-02-08 08:17:02 +00:00
Zhongxing Xu
f7f0cdc517
Unify the implementation of getLValueIvar and getLValueField of store managers.
...
llvm-svn: 95535
2010-02-08 07:58:06 +00:00
Zhongxing Xu
08515a5242
Move common methods to the base StoreManager class.
...
llvm-svn: 95534
2010-02-08 07:10:35 +00:00
Chandler Carruth
794da4c236
This doesn't seem to be used code as it didn't break any tests, but fix the
...
glaring logic bug anyways. =D
llvm-svn: 95533
2010-02-08 06:42:49 +00:00
Zhongxing Xu
8ffee4d5f8
ASTContext is now a reference member of StoreManager.
...
llvm-svn: 95531
2010-02-08 06:00:22 +00:00
Zhongxing Xu
000a859f05
Add support for binding and retrieving VarRegions in flat store.
...
llvm-svn: 95529
2010-02-08 05:40:07 +00:00
Chandler Carruth
c126311d3e
Require a complete type before examining base classes during template argument
...
deduction. This requires refactoring the deduction to have access to the Sema
object instead of merely the ASTContext. Still leaves something to be desired
due to poor source location.
Fixes PR6257 and half of PR6259.
llvm-svn: 95528
2010-02-07 21:33:28 +00:00
Anders Carlsson
ff8cce4395
Make sure to set vtable pointers in the destructors as well.
...
llvm-svn: 95525
2010-02-07 19:45:40 +00:00
Anders Carlsson
6d0e5bd8f3
Use the right type when taking the address of a non-virtual member function pointer. Fixes PR6258.
...
llvm-svn: 95524
2010-02-07 17:37:13 +00:00
Douglas Gregor
0e027fb32b
Workaround for friend template instantiation crash in PR5848, from Keir Mierle!
...
llvm-svn: 95517
2010-02-07 10:31:35 +00:00
Douglas Gregor
b65a913c35
Fix assertion failure when parsing linkage specifications (PR5921),
...
from Keir Mierle!
llvm-svn: 95516
2010-02-07 08:38:28 +00:00
Sam Weinig
e83b3aca0b
Roll r95513 back in.
...
llvm-svn: 95515
2010-02-07 06:32:43 +00:00
Sam Weinig
e911058bb5
Roll out r95513, it seems to have broken self hosting.
...
llvm-svn: 95514
2010-02-07 05:26:25 +00:00
Sam Weinig
db3758c40d
Add PCH support for CXXBoolLiteralExpr and CXXNullPtrLiteralExpr.
...
llvm-svn: 95513
2010-02-07 04:44:10 +00:00
Anders Carlsson
cee2d2f016
Use the right linkage for static variables inside C++ inline functions.
...
llvm-svn: 95512
2010-02-07 02:03:08 +00:00
Anders Carlsson
10d369d1a2
Improved handling of the visibility attribute. Declarations now inherit their parent's visibility.
...
(This is kind of a risky change, but I did a self-host build and everything appears to work fine!)
llvm-svn: 95511
2010-02-07 01:44:36 +00:00
Anders Carlsson
a7bcade229
Add attributes to namespace decls.
...
llvm-svn: 95510
2010-02-07 01:09:23 +00:00
Anders Carlsson
9878f9f73b
Make EmitStartEHSpec and EmitEndEHSpec return early when exceptions are disabled.
...
llvm-svn: 95509
2010-02-06 23:59:05 +00:00
Anders Carlsson
fcd764a168
Add support for threadsafe statics, and make them the default (matching gcc).
...
Daniel, I'd appreciate a review of the driver/cc1 parts.
llvm-svn: 95508
2010-02-06 23:23:06 +00:00
Anders Carlsson
5ade5d39b4
Call destructors for constructed bases as well.
...
llvm-svn: 95502
2010-02-06 20:00:21 +00:00
Anders Carlsson
ba63167b64
If a constructor throws an exception we need to execute the destructors for all fully constructed members. Fixes ctor_dtor_count.cpp in the test suite.
...
llvm-svn: 95501
2010-02-06 19:50:17 +00:00
John McCall
15dda3701a
Use a substituted type when determining how to substitute in non-type template
...
params. Don't insert addrof operations when matching against a pointer;
array/function conversions should take care of this for us, assuming the
argument type-checked in the first place. Add a fixme where we seem to be
using a less-restrictive reference type than we should.
Fixes PR 6249.
llvm-svn: 95495
2010-02-06 10:23:53 +00:00
Benjamin Kramer
4692faa7a4
Silence GCC warning and stay in 80 cols.
...
llvm-svn: 95494
2010-02-06 09:59:24 +00:00
John McCall
13481c56c3
Extract a function to instantiate references to value template parameters.
...
llvm-svn: 95491
2010-02-06 08:42:39 +00:00
Ted Kremenek
83fdeb5855
Update checker build.
...
llvm-svn: 95490
2010-02-06 06:08:09 +00:00
Anders Carlsson
96c15b1816
Don't diagnose missing noreturns for uninstantiated templates. Fixes PR6247.
...
llvm-svn: 95487
2010-02-06 05:31:15 +00:00
Douglas Gregor
61f6db54e1
Switch CodeGen's "is this variable declaration a definition?" logic
...
over to VarDecl::isThisDeclarationADefinition(), which handles
variables declared with linkage specifications better (among other
things). CMake 2.9 (from CVS) now builds with clang++ and is somewhat
functional.
llvm-svn: 95486
2010-02-06 05:15:45 +00:00
Anders Carlsson
2c4de4c31e
Only append 'L' for internal variable declarations, not all declarations. (Found by the mangle checker, yay)
...
llvm-svn: 95485
2010-02-06 04:52:27 +00:00
Ted Kremenek
bdfcacbe8f
Also teach RegionStore::RetrieveVar() to handle 'static' pointers that are implicitly initialized to NULL.
...
llvm-svn: 95479
2010-02-06 04:04:46 +00:00
Ted Kremenek
30fe9ecac2
Fix regression in RegionStore (from BasicStore) where static variables were not treated as being implicitly initialized to 0 (and instead were getting symbolicated).
...
llvm-svn: 95478
2010-02-06 03:57:59 +00:00
Ted Kremenek
9c193965ba
Remove unused variable.
...
llvm-svn: 95476
2010-02-06 03:29:18 +00:00
Anders Carlsson
6710c5351e
Use the correct function info for constructors when applying function attributes. Fixes PR6245.
...
llvm-svn: 95474
2010-02-06 02:44:09 +00:00
Anders Carlsson
0da714a3e2
Implement a warning diagnostic for weak vtables. Fixes PR6116.
...
llvm-svn: 95472
2010-02-06 02:27:10 +00:00
John McCall
ce410662ce
Teach Sema how to instantiate a local function declaration properly. Fixes
...
PR 5517.
llvm-svn: 95470
2010-02-06 01:50:47 +00:00
Douglas Gregor
cae03b1e6d
Assert when we try to mangle a dependent template name, rather than
...
crashing unceremoniously.
llvm-svn: 95464
2010-02-06 01:09:36 +00:00
John McCall
52cc0897f3
Per discussion, remove the explicit restriction on static const data members with
...
out-of-line initializers as integer constant expressions. Fixes PR6206.
llvm-svn: 95463
2010-02-06 01:07:37 +00:00
Ted Kremenek
5abd69d946
Teach RegionStore::InvalidateRegions() to also invalidate static variables referenced by blocks.
...
llvm-svn: 95459
2010-02-06 00:30:00 +00:00
John McCall
ca972cd1f1
Rearrange some checks to avoid call to isCopyConstructor() and clarify path
...
taken for non-trivial constructors.
llvm-svn: 95457
2010-02-06 00:25:16 +00:00
Douglas Gregor
bb26a92239
Update Clang C++ status, with a more project-centric focus.
...
llvm-svn: 95455
2010-02-05 23:51:14 +00:00
Douglas Gregor
d320e03eed
Fix a bogus assertion after adjusting the type of a substituted
...
non-type template argument for a non-type template parameter of
pointer type. Fixes PR6244.
llvm-svn: 95447
2010-02-05 22:49:09 +00:00
Douglas Gregor
d225fa05bd
Cope with finding the "instantiated" declaration when we are
...
type-checking within a template definition. In this case, the
"instantiated" declaration is just the declaration itself, found
within the current instantiation. Fixes PR6239.
llvm-svn: 95442
2010-02-05 22:40:03 +00:00
John McCall
ab26cfa58d
Standardize the parsing of function type attributes in a way that
...
follows (as conservatively as possible) gcc's current behavior: attributes
written on return types that don't apply there are applied to the function
instead, etc. Only parse CC attributes as type attributes, not as decl attributes;
don't accepet noreturn as a decl attribute on ValueDecls, either (it still
needs to apply to other decls, like blocks). Consistently consume CC/noreturn
information throughout codegen; enforce this by removing their default values
in CodeGenTypes::getFunctionInfo().
llvm-svn: 95436
2010-02-05 21:31:56 +00:00
Ted Kremenek
31e7f0f293
Add guard in RewriteObjC::HandleTopLevelSingleDecl() to not do
...
anything when Sema has issued an error. This matches the behavior in
RewriteObjC::HandleTranslationUnit().
llvm-svn: 95434
2010-02-05 21:28:51 +00:00
Douglas Gregor
a643780483
Revert r95393, which broke Clang's self-host.
...
llvm-svn: 95430
2010-02-05 21:10:36 +00:00
Douglas Gregor
c90dedbda0
Oops, thanks Clang
...
llvm-svn: 95429
2010-02-05 21:07:53 +00:00
Charles Davis
2b2864c436
Convert this test to FileCheck instead of grepping LLVM IR.
...
llvm-svn: 95428
2010-02-05 20:45:48 +00:00
Douglas Gregor
a16b0cae9a
Implement name mangling for template template parameters
...
llvm-svn: 95427
2010-02-05 20:45:00 +00:00
Ted Kremenek
6a93195783
Fix how scan-build finds c++-analyzer to work with checker builds.
...
llvm-svn: 95425
2010-02-05 20:34:14 +00:00
Daniel Dunbar
9c4e4651d5
IRgen: A few more ConvertType cleanups.
...
llvm-svn: 95423
2010-02-05 20:02:42 +00:00
Douglas Gregor
b9397108c5
Fix two issues with the substitution of template template parameters
...
when instantiating the declaration of a member template:
- Only check if the have a template template argument at a specific position
when we already know that we have template arguments at that level;
otherwise, we're substituting for a level-reduced template template
parameter.
- When trying to find an instantiated declaration for a template
template parameter, look into the instantiated scope. This was a
typo, where we had two checks for TemplateTypeParmDecl, one of
which should have been a TemplateTemplateParmDecl.
With these changes, tramp3d-v4 passes -fsyntax-only.
llvm-svn: 95421
2010-02-05 19:54:12 +00:00
Daniel Dunbar
d0bc7b9d13
IRgen: Factor out EmitAggExprToLValue.
...
llvm-svn: 95416
2010-02-05 19:38:31 +00:00
Fariborz Jahanian
df506b934e
Fix a code gen bug accessing 'isa' field via a message call
...
(Fixes radar 7609722).
llvm-svn: 95406
2010-02-05 19:18:30 +00:00
Douglas Gregor
7df89f5d18
When we're parsing an expression that may have looked like a
...
declaration, we can end up with template-id annotation tokens for
types that have not been converted into type annotation tokens. When
this is the case, translate the template-id into a type and parse as
an expression.
llvm-svn: 95404
2010-02-05 19:11:37 +00:00
Daniel Dunbar
8848175547
IRgen: Fix some CreateTempAlloca calls to use ConvertTypeForMem when that is
...
conceptually correct. Review appreciated (Chris, Eli, Anders).
llvm-svn: 95401
2010-02-05 18:56:49 +00:00
Anders Carlsson
cb86e1088a
Fix the bug that was breaking self-host, and re-land the static ctor fixes.
...
llvm-svn: 95400
2010-02-05 18:38:45 +00:00
Charles Davis
5a5473f0f8
Now that we store calling conventions in the types, use them instead of
...
getting the calling convention from the target function, which may or may not
exist. Fixes PR5280.
llvm-svn: 95399
2010-02-05 18:13:10 +00:00
Fariborz Jahanian
73587761e2
Removed non-essential header file from test.
...
llvm-svn: 95396
2010-02-05 18:04:36 +00:00
Douglas Gregor
96e578d29d
Initial skeleton of an AST "importer", which will take AST elements from
...
one context and import them into another context, merging them
according to language-specific rules. This is a skeleton. It doesn't
work, it isn't testable, but I want it in version control.
llvm-svn: 95395
2010-02-05 17:54:41 +00:00
Charles Davis
e4e604b5d6
Testing, 1, 2, 3...
...
Also make the comments I added in r95291 consistent.
llvm-svn: 95394
2010-02-05 17:53:51 +00:00
Daniel Dunbar
363589bded
IRgen: Use hasAggregateLLVMType instead of isSingleValueType() for cases that
...
need to deal with aggregates specially; this is consistent with the rest of IRgen.
Also, simplify EmitParmDecl and don't worry about using Decl::getNameAsString.
llvm-svn: 95393
2010-02-05 17:51:33 +00:00
Fariborz Jahanian
314333847e
Fixes a minor rewriter bug messaging inside a function call.
...
Fixes radar 7617047.
llvm-svn: 95392
2010-02-05 17:48:10 +00:00
Fariborz Jahanian
a7e1dcdc0e
Some clean up of replacement text API no longer needed by
...
my recent changes.
llvm-svn: 95391
2010-02-05 16:43:40 +00:00
Douglas Gregor
af77cd220a
Revert r95363 and r95375, which broke self-host.
...
llvm-svn: 95389
2010-02-05 16:18:08 +00:00
Douglas Gregor
0ab7af6c28
A dependent initializer with zero arguments should return a NULL
...
initializer (for no initialization) rather than a ParenListExpr with
zero arguments in it.
llvm-svn: 95382
2010-02-05 07:56:11 +00:00
Chandler Carruth
bc50da6360
Revert the unused TST_pixel entry from r95335 as it is not listed in the Sema
...
switch, triggering warnings.
llvm-svn: 95381
2010-02-05 07:38:55 +00:00
Douglas Gregor
8c702534cb
Default function arguments for function template specializations
...
always come from the primary template, so gather the instantiation
template arguments from the primary template.
llvm-svn: 95380
2010-02-05 07:33:43 +00:00
Daniel Dunbar
4e9083260b
Tweak inliner thresholds to match llvm-gcc, see r95321.
...
llvm-svn: 95379
2010-02-05 07:32:37 +00:00
Anders Carlsson
c6eec40189
Check in a mangle checker that's turned off by default.
...
llvm-svn: 95377
2010-02-05 07:31:37 +00:00
Douglas Gregor
3ce7493c35
Teach C++ name lookup that it's okay to look in a scope without a
...
context. This happens fairly rarely (which is why we got away with
this bug). Fixes PR6184, where we skipped over the template parameter
scope while tentatively parsing.
llvm-svn: 95376
2010-02-05 07:07:10 +00:00
Anders Carlsson
893555ce66
Fix array initialization test.
...
llvm-svn: 95375
2010-02-05 07:00:11 +00:00
Anders Carlsson
ff338dbf9c
Fix a test case.
...
llvm-svn: 95374
2010-02-05 06:58:06 +00:00
Douglas Gregor
1aa3edbb99
A function declarator with a non-identifier name in an anonymous class
...
is a constructor for that class, right? Fixes PR6238.
llvm-svn: 95367
2010-02-05 06:12:42 +00:00
Ted Kremenek
94e6d98cae
Add test case showing the analyzer invalidates '__block' variables when the block is passed as an argument to an ObjC method.
...
llvm-svn: 95366
2010-02-05 06:10:46 +00:00
Zhongxing Xu
ad0ef84040
More GRState* -> Store changes.
...
llvm-svn: 95365
2010-02-05 05:34:29 +00:00
Zhongxing Xu
0d081f373a
Remove unused parameter.
...
llvm-svn: 95364
2010-02-05 05:24:20 +00:00
Anders Carlsson
ecac409cb0
If a global initializer has a non-trivial destructor it can't be emitted as a constant (even if it has a trivial constructor).
...
llvm-svn: 95363
2010-02-05 05:19:42 +00:00
Zhongxing Xu
f668204a6a
More GRState* -> Store changes.
...
llvm-svn: 95362
2010-02-05 05:18:47 +00:00
Douglas Gregor
6ec89d4953
When adding ADL candidates for overloaded
...
post-increment/post-decrement operators, be sure to consider both
arguments. Fixes PR6237.
llvm-svn: 95361
2010-02-05 05:15:43 +00:00
Zhongxing Xu
7fcd8acbf8
More GRState* -> Store changes.
...
llvm-svn: 95360
2010-02-05 05:06:13 +00:00
Douglas Gregor
8a6d15d5ed
When determining whether a scope specifier is complete, consider a
...
dependent DeclContext to be "complete". Fixes PR6236.
llvm-svn: 95359
2010-02-05 04:39:02 +00:00
Zhongxing Xu
c7b9f950d7
More GRState* -> Store changes.
...
llvm-svn: 95357
2010-02-05 03:01:53 +00:00
Zhongxing Xu
bd96bf1e78
Change LazyCompoundVal to a <Store, MemRegion*> pair. We really don't need to
...
spread GRState* everywhere.
llvm-svn: 95354
2010-02-05 02:26:30 +00:00
Ted Kremenek
01a83104a2
Now that the -cc1 options for analyzer checks have a structured naming, add back scanning for analyzer checks to scan-build.
...
llvm-svn: 95349
2010-02-05 02:18:39 +00:00
Ted Kremenek
2f2692f8ca
Rename -cc1 option '-checker-cfref' to '-analyzer-check-objc-mem'.
...
llvm-svn: 95348
2010-02-05 02:06:54 +00:00
Ted Kremenek
b6e400c87c
Rename -cc1 option '-warn-objc-missing-dealloc' to '-analyzer-check-objc-missing-dealloc'.
...
llvm-svn: 95347
2010-02-05 01:59:21 +00:00
Ted Kremenek
61b506aa8f
Rename -cc1 option '-warn-objc-methodsigs' to '-analyzer-check-objc-methodsigs'.
...
llvm-svn: 95346
2010-02-05 01:57:44 +00:00
Ted Kremenek
2d8ef71ae6
Rename -cc1 option '-warn-objc-unused-ivars' to '-analyzer-check-objc-unused-ivars'.
...
llvm-svn: 95345
2010-02-05 01:55:01 +00:00
Ted Kremenek
d519b83757
Rename -cc1 option '-warn-dead-stores' to '-analyzer-check-dead-stores'.
...
llvm-svn: 95343
2010-02-05 01:52:40 +00:00
Ted Kremenek
ec5b3d45c1
Rename -cc1 option '-warn-security-syntactic' to '-analyzer-check-security-syntactic'.
...
llvm-svn: 95342
2010-02-05 01:50:36 +00:00
Fariborz Jahanian
80fadb5069
Fix a nested ivar reference rewriting bug.
...
(Fixes radar 7607605).
llvm-svn: 95341
2010-02-05 01:35:00 +00:00
John McCall
ae580fede3
Always start tag definitions before completing them. Assert same.
...
Fixes latent and not-so-latent objc++ and blocks++ bugs.
llvm-svn: 95340
2010-02-05 01:33:36 +00:00
John Thompson
2233460de6
First stage of adding AltiVec support
...
llvm-svn: 95335
2010-02-05 00:12:22 +00:00
Douglas Gregor
0c8a172911
Fix a crash with ill-formed code within a method in an ill-formed
...
category implementation, which showed up during (attempted) typo
correction. Fixes <rdar://problem/7605289>.
llvm-svn: 95334
2010-02-04 23:42:48 +00:00
John McCall
67da35c832
Extract a common structure for holding information about the definition
...
of a C++ record. Exposed a lot of problems where various routines were
silently doing The Wrong Thing (or The Acceptable Thing in The Wrong Order)
when presented with a non-definition. Also cuts down on memory usage.
llvm-svn: 95330
2010-02-04 22:26:26 +00:00
Ted Kremenek
1de1707bfc
Move ParseFormatString() and FormatStringHandler back into the analyze_printf namespace.
...
llvm-svn: 95324
2010-02-04 20:46:58 +00:00
Douglas Gregor
c42075a164
Fix an obscure crash found in the Boost.MPL test suite, along with a
...
ton of potential crashes of the same kind. The fundamental problem is
that type creation was following a dangerous pattern when using its
FoldingSets:
1) Use FindNodeOrInsertPos to see if the type is available
2) If not, and we aren't looking at a canonical type, build the
canonical type
3) Build and insert the new node into the FoldingSet
The problem here is that building the canonical type can, in very rare
circumstances, force the hash table inside the FoldingSet to
reallocate. That invalidates the insertion position we computed in
step 1, and in step 3 we end up inserting the new node into the wrong
place. BOOM!
I've audited all of ASTContext, fixing this problem everywhere I found
it. The vast majority of wrong code was C++-specific (and *ahem*
written by me), so I also audited other major folding sets in the C++
code (e.g., template specializations), but found no other instances of
this problem.
llvm-svn: 95315
2010-02-04 18:10:26 +00:00
Anders Carlsson
824e0613de
When binding an lvalue to a reference, we always need to pop temporaries.
...
With this fix, and the other fixes committed today a make check-all with a clang-built LLVM now gives:
Expected Passes : 6933
Expected Failures : 46
Unsupported Tests : 40
Unexpected Failures: 27
which means that we pass 99.96% of all tests :) The resulting 27 tests are all LLVMC tests and seem to be because of differences in the clang and gcc drivers.
llvm-svn: 95313
2010-02-04 17:32:58 +00:00
Anders Carlsson
3460aa1079
Update test.
...
llvm-svn: 95312
2010-02-04 17:29:32 +00:00
Anders Carlsson
9b942c65a5
Fix a bug where we would not mark temporaries as conditional when emitting a conditional operator as an lvalue.
...
llvm-svn: 95311
2010-02-04 17:26:01 +00:00
Anders Carlsson
e5dfc26850
Improve conditional temporaries test.
...
llvm-svn: 95310
2010-02-04 17:23:15 +00:00
Douglas Gregor
eca8f5a49c
When substituting the template argument for a pointer non-type
...
template parameter, perform array/function decay (if needed), take the
address of the argument (if needed), perform qualification conversions
(if needed), and remove any top-level cv-qualifiers from the resulting
expression. Fixes PR6226.
llvm-svn: 95309
2010-02-04 17:21:48 +00:00
Anders Carlsson
ae612d22ac
Rename StartConditionalBranch/FinishConditionalBranch to BeginConditionalBranch/EndConditionalBranch.
...
llvm-svn: 95308
2010-02-04 17:18:07 +00:00
Anders Carlsson
c4325486b9
Fix another pointer-to-member function miscompile, this time when trying to call a virtual member function.
...
llvm-svn: 95307
2010-02-04 17:08:48 +00:00
Anders Carlsson
674cf89301
Improve test.
...
llvm-svn: 95306
2010-02-04 17:06:52 +00:00
Anders Carlsson
7914dad72d
Calculate offset correctly when taking the address of a virtual member function.
...
llvm-svn: 95305
2010-02-04 16:38:05 +00:00
Ted Kremenek
a0032da389
Convert flags in FormatSpecifier to be bitfields instead of doing
...
direct bit manipulation. This is is less error prone, and fixes a bug
in the handling of the LeadingZeroes flag as pointed out by Cristian
Draghici.
llvm-svn: 95298
2010-02-04 07:27:39 +00:00
Ted Kremenek
fc8dbdf3c7
Add assorted test cases from PR 4172.
...
llvm-svn: 95297
2010-02-04 07:25:56 +00:00
John McCall
cddbad000d
Allow calling convention attributes to apply to types. Patch by Chip Davis!
...
llvm-svn: 95291
2010-02-04 05:44:44 +00:00
Zhongxing Xu
319deb83d2
Cast evaluation no longer touch GRState.
...
llvm-svn: 95290
2010-02-04 04:56:43 +00:00
Ted Kremenek
49f878524c
Specially handle casts to 'void' in AdjustedReturnValueChecker.
...
llvm-svn: 95287
2010-02-04 04:18:55 +00:00
Ted Kremenek
33617e055a
Remove stray typo.
...
llvm-svn: 95286
2010-02-04 04:14:49 +00:00
John McCall
d061b4429e
Mangle member expressions. Also invented.
...
llvm-svn: 95284
2010-02-04 02:56:29 +00:00
Zhongxing Xu
4f8b9899bb
Now that CastRetrievedVal returns SVal, there is no need to use CastResult.
...
llvm-svn: 95279
2010-02-04 02:39:47 +00:00
John McCall
11ef09f8b5
Add a cautionary note about the mangling I just invented.
...
llvm-svn: 95275
2010-02-04 01:48:38 +00:00
John McCall
09de8ecd88
Add mangling support for calls, sizeof/alignof, constructor calls,
...
float literals, and unresolved lookups (which required hand-wavey extensions).
llvm-svn: 95273
2010-02-04 01:42:13 +00:00
Ted Kremenek
1e3b95580c
static analyzer: handle casts of a function to a function pointer with
...
a different return type. While we don't emit any errors (yet), at
least we avoid cases where we might crash because of an assertion
failure later on (when the return type differs from what is expected).
llvm-svn: 95268
2010-02-04 00:47:48 +00:00
Fariborz Jahanian
b8355e3b9f
Fix rewriting of 'const' __block variables in
...
the rewriter. (Fixes radar 7607781).
llvm-svn: 95267
2010-02-04 00:07:58 +00:00
Anders Carlsson
b0695ef011
Don't try to fold DeclRefExprs that point to ParmVarDecls. This had the side-effect of always folding the expression to the default argument of the parameter. For example:
...
void f(int a = 10) {
return a;
}
would always return 10, regardless of the passed in argument.
This fixes another 600 test failures. We're now down to only 137 failures!
llvm-svn: 95262
2010-02-03 21:58:41 +00:00
Fariborz Jahanian
80c54b05a0
Fix more rewriting of protocol-quialified 'id' type.
...
(Fixes radar 7607413).
llvm-svn: 95257
2010-02-03 21:29:28 +00:00
Sebastian Redl
2b37272c11
In some contexts, type declarations cannot occur. Pass this information down to ParseClassSpecifier, to make its decision easier. Fixes PR6200.
...
llvm-svn: 95255
2010-02-03 21:21:43 +00:00
Chris Lattner
93ddf80eb7
don't inform comment handlers about comments in #if 0 blocks,
...
doing so invalidates the file guard optimization and is not
in the spirit of "#if 0" because it is supposed to completely
skip everything, even if it isn't lexically valid. Patch by
Abramo Bagnara!
llvm-svn: 95253
2010-02-03 21:06:21 +00:00
Douglas Gregor
21e771e96e
Define two types to be "compatible" in C++ if they are the same, and
...
remove some age-old FIXMEs and C++ workarounds within the
type-compatibility logic.
llvm-svn: 95249
2010-02-03 21:02:30 +00:00
Chris Lattner
5e854b95f3
Declarators can have grouping parens. This fixes rdar://7608537.
...
llvm-svn: 95246
2010-02-03 20:41:24 +00:00
Fariborz Jahanian
8c3f06d09c
Patch to allow reinterpret_cast on objective-c pointers.
...
(partial fix for radar 7591784).
llvm-svn: 95245
2010-02-03 20:32:31 +00:00
Daniel Dunbar
45858d2d59
Revert "Numerous changes to selector handling:", this breaks a whole bunch of
...
working code, for no apparent reason.
llvm-svn: 95244
2010-02-03 20:11:42 +00:00
Sebastian Redl
cbdffb1585
Top-level const changes do not make a qualification conversion. Fixes PR6089.
...
llvm-svn: 95239
2010-02-03 19:36:07 +00:00
Douglas Gregor
2973d406ba
When determining whether a function without a prototype is compatible
...
with a function with a prototype, treat parameters of enumeration type
based on the enumeration type's promotion type.
llvm-svn: 95238
2010-02-03 19:27:29 +00:00
Anders Carlsson
66498388a7
Handle reference binding in aggregate initializers. Fixes another 47 tests.
...
llvm-svn: 95235
2010-02-03 19:13:55 +00:00
Anders Carlsson
9b92ef90f0
Add a band-aid fix for clang self-hosting. A better fix will follow shortly.
...
llvm-svn: 95232
2010-02-03 18:54:13 +00:00
Eli Friedman
eb1df70bdc
Fix for PR6220: compute the correct type for multicharacter literals.
...
llvm-svn: 95228
2010-02-03 18:21:45 +00:00