Fariborz Jahanian
5aec1b54bc
Fix the AST tree so ir-gen can do the conversion via copy construction.
...
Fixed pr5050.
llvm-svn: 82783
2009-09-25 18:11:25 +00:00
Mike Stump
1dbb8f78a3
Fix 80-col violation.
...
llvm-svn: 82782
2009-09-25 18:11:00 +00:00
Chris Lattner
880d2d5788
pcc supports some c99
...
llvm-svn: 82774
2009-09-25 16:45:10 +00:00
Anders Carlsson
d7d358a65e
Even more work on empty classes.
...
llvm-svn: 82770
2009-09-25 15:39:00 +00:00
Benjamin Kramer
07fec3bbf5
Fix MSVC build by renaming a variable. PR5043
...
llvm-svn: 82762
2009-09-25 11:47:22 +00:00
Douglas Gregor
25a3967ebb
Sigh. Be *really* careful when copying a default function argument during template instantiation
...
llvm-svn: 82761
2009-09-25 07:03:22 +00:00
Douglas Gregor
c103ccd855
Be careful about copying uninstantiated default arguments during template instantiation
...
llvm-svn: 82760
2009-09-25 06:56:31 +00:00
Douglas Gregor
dc880d67f7
Don't look for __builtin_va_list; it isn't present for all targets
...
llvm-svn: 82757
2009-09-25 06:44:41 +00:00
Douglas Gregor
43bc1a7483
CMake build support for libCIndex and c-index-test. The indexing tests
...
are now running properly from within CMake.
llvm-svn: 82755
2009-09-25 06:35:15 +00:00
Ted Kremenek
05e6f5b6e9
Turn on 'RegionStore' as the default store manager both for 'clang --analyze' and 'scan-build'. Leave 'BasicStore' as the default store manager in 'clang-cc'. While there are still known warts with RegionStore, it's ready to be tested by general users.
...
llvm-svn: 82752
2009-09-25 05:55:59 +00:00
Douglas Gregor
9e84d88d27
Hide clang-wpa executable behind a CMake variable so it won't be built by default
...
llvm-svn: 82751
2009-09-25 05:41:21 +00:00
Ted Kremenek
1947a7a338
Update checker build.
...
llvm-svn: 82749
2009-09-25 05:03:45 +00:00
Douglas Gregor
56751b5981
Fix checking for a null pointer constant when the expression itself is
...
value-dependent. Audit (and fixed) all calls to
Expr::isNullPointerConstant() to provide the correct behavior with
value-dependent expressions. Fixes PR5041 and a crash in libstdc++
<locale>.
In the same vein, properly compute value- and type-dependence for
ChooseExpr. Fixes PR4996.
llvm-svn: 82748
2009-09-25 04:25:58 +00:00
John McCall
6cb02c1d7e
Add a reduced test case for the weak ivar infinite recursion.
...
llvm-svn: 82747
2009-09-25 02:18:37 +00:00
Anders Carlsson
e1883100a3
Who would have thought that empty classes were so tricky? Handle cases where an empty virtual base class needs to be moved aside because it conflicts with the first field.
...
llvm-svn: 82746
2009-09-25 01:54:38 +00:00
John McCall
0cf155174e
Fix an infinite loop arising when trying to generate debug information
...
for a ObjC class with an ivar of weak self type.
llvm-svn: 82745
2009-09-25 01:40:47 +00:00
Anders Carlsson
4bf82141e7
Handle array fields that contain empty structs.
...
llvm-svn: 82744
2009-09-25 01:23:32 +00:00
Ted Kremenek
f694f421e1
Fix <rdar://problem/7249327> by allowing silent conversions between signed and unsigned integer values for symbolic values. This is an intermediate solution (i.e. hack) until we support extension/truncation of symbolic integers.
...
llvm-svn: 82737
2009-09-25 00:18:15 +00:00
Anders Carlsson
6f95c705ea
More work on empty classes.
...
llvm-svn: 82736
2009-09-25 00:02:51 +00:00
Fariborz Jahanian
1f9ed58277
Fixed another code gen bug in objc's new write-barrier API.
...
llvm-svn: 82735
2009-09-25 00:00:20 +00:00
Anders Carlsson
6d2b6f49ce
Improve the record layout dumper.
...
llvm-svn: 82733
2009-09-24 23:50:42 +00:00
Douglas Gregor
5013a7e42d
When entering the scope of a declarator, make sure that the scope is
...
complete (or, possibly causing template instantiation).
Test this via some explicit specializations of member functions.
llvm-svn: 82732
2009-09-24 23:39:01 +00:00
John McCall
90d1c2df56
Make it really, really easy to change the alignment of Type (and ExtQuals).
...
llvm-svn: 82730
2009-09-24 23:30:46 +00:00
Douglas Gregor
3a923c2d37
WIP implementation of explicit function template specialization. This
...
first implementation recognizes when a function declaration is an
explicit function template specialization (based on the presence of a
template<> header), performs template argument deduction + ambiguity
resolution to determine which template is being specialized, and hooks
There are many caveats here:
- We completely and totally drop any explicitly-specified template
arguments on the floor
- We don't diagnose any of the extra semantic things that we should
diagnose.
- I haven't looked to see that we're getting the right linkage for
explicit specializations
On a happy note, this silences a bunch of errors that show up in
libstdc++'s <iostream>, although Clang still can't get through the
entire header.
llvm-svn: 82728
2009-09-24 23:14:47 +00:00
Douglas Gregor
9fb4bf4d57
Clean up the CodeCompletion testsuite's use of FileCheck
...
llvm-svn: 82726
2009-09-24 22:57:42 +00:00
Mike Stump
d2a3e61798
Fix 80-col violation.
...
llvm-svn: 82725
2009-09-24 22:31:14 +00:00
Fariborz Jahanian
7a95d72b10
Patch fixes a code gen. bug in generation of objc_assign_ivar
...
(objc GC's API).
llvm-svn: 82724
2009-09-24 22:25:38 +00:00
John McCall
86a69495a3
Update the PTH performance "script".
...
llvm-svn: 82718
2009-09-24 22:03:45 +00:00
Steve Naroff
a7753c492e
Add test for C-based indexing API, using FileCheck utility.
...
llvm-svn: 82706
2009-09-24 20:03:06 +00:00
John McCall
8ccfcb51ee
Refactor the representation of qualifiers to bring ExtQualType out of the
...
Type hierarchy. Demote 'volatile' to extended-qualifier status. Audit our
use of qualifiers and fix a few places that weren't dealing with qualifiers
quite right; many more remain.
llvm-svn: 82705
2009-09-24 19:53:00 +00:00
Chris Lattner
6d98ede7e8
wpa is an experiment, don't build it by default, it adds to build times due to everything it links in.
...
llvm-svn: 82704
2009-09-24 19:45:12 +00:00
Anders Carlsson
d934010557
Add a -dump-record-layouts argument to clang-cc.
...
llvm-svn: 82703
2009-09-24 18:54:49 +00:00
Ted Kremenek
0868eea3f0
When building CFGs, no longer reverse the statements in the CFGBlock. Instead
...
have the iterators and operator[] handle the traversal of statements, as they
are stored in reverse order. Tests show this has no real performance impact, but
it does simply the CFG construction logic and will make it slightly easier to
change the allocation strategy for CFGBlocks (as we have fewer copies).
llvm-svn: 82702
2009-09-24 18:45:41 +00:00
Daniel Dunbar
a5840dbcb5
cmake: Run tests with 'verbose' enabled by default, so that the failure is
...
visible in the log.
llvm-svn: 82688
2009-09-24 07:18:36 +00:00
Daniel Dunbar
c437eb831b
We no longer need anything from the llvm/test/Scripts dir.
...
llvm-svn: 82687
2009-09-24 06:31:08 +00:00
Ted Kremenek
1b40e5978f
Fix crash in RegionStoreManager::Bind() by using 'getAs<PointerType>()' instead of 'cast<PointerType>()' (to handle pointer typedefs).
...
llvm-svn: 82686
2009-09-24 06:24:32 +00:00
Anders Carlsson
bb66bc8e84
More improvements with laying out empty bases.
...
llvm-svn: 82682
2009-09-24 05:21:31 +00:00
Daniel Dunbar
b3b1e53d33
Darwin/x86-32: Enumerated types and block pointer types in structures were not
...
handled correctly.
- <rdar://problem/7247671> Function arguments incorrect when function returns a
struct on i386 w/ llvm-g++ and clang
llvm-svn: 82681
2009-09-24 05:12:36 +00:00
Ted Kremenek
267e45adab
Fix: <rdar://problem/7249340> [RegionStore] model stores to symbolic parameter regions
...
The issue was a discrepancy between how RegionStoreManager::Bind() and
RegionStoreManager::Retrieve() derived the "key" for the first element
of a symbolic region.
llvm-svn: 82680
2009-09-24 04:11:44 +00:00
Anders Carlsson
f24b18fb06
More work on empty classes.
...
llvm-svn: 82679
2009-09-24 03:22:10 +00:00
Anders Carlsson
6522b05db7
Scaffolding for supporting empty bases/fields.
...
llvm-svn: 82678
2009-09-24 03:13:30 +00:00
Ted Kremenek
d9120d3575
Shorten the static analyzer diagnostic for 'use of garbage value'.
...
llvm-svn: 82672
2009-09-24 00:44:26 +00:00
Fariborz Jahanian
20327b0422
Use Doug's DeclLoc to pinpoint location of the declaration
...
in a reference initialization diagnostic.
llvm-svn: 82671
2009-09-24 00:42:43 +00:00
Douglas Gregor
c809cc2efa
Improve diagnostic location information when checking the initialization of a reference
...
llvm-svn: 82666
2009-09-23 23:04:10 +00:00
Douglas Gregor
96ab942a69
Make C++ temporary-related expressions provide proper source-range information.
...
llvm-svn: 82665
2009-09-23 22:51:26 +00:00
Fariborz Jahanian
9ce90d13e3
patch to ir-gen conversion function call used in
...
initializing a reference class.
llvm-svn: 82664
2009-09-23 22:34:00 +00:00
Douglas Gregor
e412a5a8f7
For code completion, note that injected-class-names found as part of
...
lookup in a member access expression always start a
nested-name-specifier. Additionally, rank names that start
nested-name-specifiers after other names.
llvm-svn: 82663
2009-09-23 22:26:46 +00:00
Fariborz Jahanian
71130ca141
Remove the FIXME as I said.
...
llvm-svn: 82650
2009-09-23 20:56:34 +00:00
Fariborz Jahanian
af0262dccf
This patch addresses a few issues related to 8.5.3 [dcl.init.ref]
...
It uses a recent API to find inherited conversion functions to do
the initializer to reference lvalue conversion (and removes a FIXME).
It issues the ambiguity diagnostics when multiple conversions are found.
WIP.
llvm-svn: 82649
2009-09-23 20:55:32 +00:00
Steve Naroff
f99203abd0
Some minor cleanups...
...
llvm-svn: 82646
2009-09-23 20:00:53 +00:00