Commit Graph

16203 Commits

Author SHA1 Message Date
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