Commit Graph

21192 Commits

Author SHA1 Message Date
Fariborz Jahanian 3db51d80ec Change test to compile rewritten test with clang++.
llvm-svn: 97756
2010-03-04 21:57:21 +00:00
Fariborz Jahanian 535c9c0ba2 Patch to get around a rewriter bug rewriting storage class
on a block API struct definition.

llvm-svn: 97754
2010-03-04 21:35:37 +00:00
Rafael Espindola bef98689ad really fix 6473 by handling weakref in constant expressions.
llvm-svn: 97750
2010-03-04 21:26:03 +00:00
Chris Lattner 09797543bd add TCE target support, patch by Pekka J!
llvm-svn: 97746
2010-03-04 21:07:38 +00:00
Erick Tryzelaar e62248a79c Use LLVM's new DESTDIR-less PROJ_* variables.
llvm-svn: 97744
2010-03-04 20:57:19 +00:00
Douglas Gregor 0b46650b66 c-index-test's printing of linkage was completely broken, as was the
test of this functionality. The API worked great, though! :)

llvm-svn: 97736
2010-03-04 19:36:27 +00:00
Fariborz Jahanian 8bb35c4d7c Fixes a bug whereby static const block var has static
moved incorrectly. (radar 7714443).

llvm-svn: 97734
2010-03-04 18:54:29 +00:00
Rafael Espindola 2e42fec3a0 Fix PR6473.
Clang's support for weakref is now better than llvm-gcc's :-)

We don't introduce a new symbol and we correctly mark undefined references weak only if there is no
definition or regular undefined references in the same file.

llvm-svn: 97733
2010-03-04 18:17:24 +00:00
John McCall b07d8b56d2 Steal the TARGET lit condition from the LLVM test suite.
llvm-svn: 97727
2010-03-04 09:38:07 +00:00
Zhongxing Xu 6f84d46f33 The FIXME is fixed.
llvm-svn: 97725
2010-03-04 09:05:58 +00:00
Zhongxing Xu 5cb8d9d40f When profiling Environment, also profile with AnalysisContext*, bacause
we now may have identical states with different analysis context.

Set the right AnalysisContext in state when entering and leaving a callee.

With both of the above changes, we can pass the test case.

llvm-svn: 97724
2010-03-04 09:04:52 +00:00
John McCall 731be6620c Revert changes r97693, r97700, and r97718.
Our testing framework can't deal with disabled targets yet.

llvm-svn: 97719
2010-03-04 04:29:44 +00:00
John McCall 61076e1d87 XFAIL these tests on win32, since the win32 buildbot apparently disables all
targets except X86.

llvm-svn: 97718
2010-03-04 04:14:44 +00:00
Eric Christopher 94567c04bb First start on smmintrin.h, rounding and blending.
llvm-svn: 97717
2010-03-04 02:56:19 +00:00
Eric Christopher cfeceffa27 Add in disabled case as well.
llvm-svn: 97716
2010-03-04 02:31:44 +00:00
Eric Christopher 399ffa55d2 Add in -msse4.1 and -msse4.2 options and continuing a rather
hacky solution for translating.  Expanded on comment explaining
the hack a bit.

llvm-svn: 97714
2010-03-04 02:26:37 +00:00
Eric Christopher 45fa7e60fb Fix __builtin_ia32_roundss and __builtin_ia32_roundsd definitions.
Re-enable test.

llvm-svn: 97707
2010-03-04 01:34:19 +00:00
Fariborz Jahanian 9eba9dfb0c Refactor local class name mangling and make it
ABI conforming.

llvm-svn: 97702
2010-03-04 01:02:03 +00:00
John McCall 81d4d12504 Implement __builtin_dwarf_sp_column().
llvm-svn: 97700
2010-03-04 00:44:01 +00:00
Chris Lattner eaa2778f27 fix a buildbot failure, this was passing for me because the
'%t' file was left around on my disk.  doh.

llvm-svn: 97699
2010-03-04 00:38:16 +00:00
John McCall 6abe39c61e Create a TargetMachine whenever we create a CodeGenAction. The codegen of
some builtins will rely on target knowledge.

llvm-svn: 97693
2010-03-04 00:23:29 +00:00
Douglas Gregor cc3f325fa6 Reinstate r97674 with a fix for the assertion that was firing in <list>
llvm-svn: 97686
2010-03-03 23:55:11 +00:00
Eric Christopher 6197c1cd8c Remove the linux c includes part of my last patch.
llvm-svn: 97679
2010-03-03 23:27:49 +00:00
Douglas Gregor 979302e14a Revert r97674; it's causing failures
llvm-svn: 97677
2010-03-03 23:26:56 +00:00
Douglas Gregor f2a42a66e2 Implement disambiguation of base class members via a
nested-name-specifier. For example, this allows member access in
diamond-shaped hierarchies like:

  struct Base {
    void Foo();
    int Member;
  };

  struct D1 : public Base {};
  struct D2 : public Base {};

  struct Derived : public D1, public D2 { }

  void Test(Derived d) {
    d.Member = 17; // error: ambiguous cast from Derived to Base
    d.D1::Member = 17; // error: okay, modify D1's Base's Member
  }

Fixes PR5820 and <rdar://problem/7535045>. Also, eliminate some
redundancy between Sema::PerformObjectMemberConversion() and
Sema::PerformObjectArgumentInitialization() -- the latter now calls
the former.

llvm-svn: 97674
2010-03-03 22:53:40 +00:00
Fariborz Jahanian 281aae6328 Fix code gen bug generating code for
((id)cat)->isa. Fixes radar 7709015.

llvm-svn: 97672
2010-03-03 22:09:47 +00:00
Chris Lattner aabec2fb84 merge asm-2.c into asm.c, remove asm-inout.c because it is
XFAIL and already tracked in bugzilla.

llvm-svn: 97671
2010-03-03 21:56:57 +00:00
Chris Lattner 576def7fbe fix PR6475, we were doing side-effecting stuff in an assert.
llvm-svn: 97669
2010-03-03 21:52:23 +00:00
Eric Christopher 114a85381a Add in more c++ header paths for later gccs under gentoo linux.
Add in c header path for various linuxes as well.

Partial patch from Christian Adåker!

llvm-svn: 97666
2010-03-03 21:41:50 +00:00
Fariborz Jahanian a529c25555 Implements mangling of local class names to
fix a code gen crash. This is WIP as not
all ABI cases are covered (there is a FIXME to 
this effect). Fixes radar 7696748.

llvm-svn: 97658
2010-03-03 19:41:08 +00:00
Chris Lattner 5cc15e058b add framework for ARM builtins, Patch by Edmund Grimley Evans!
llvm-svn: 97656
2010-03-03 19:03:45 +00:00
Benjamin Kramer a3b13411fa Simplify code a bit and remove unneeded semicolons.
llvm-svn: 97654
2010-03-03 16:28:47 +00:00
John McCall 515c3c548c Sketch out an implementation for __builtin_dwarf_cfa. I have no idea
why the front-end is calculating the argument to llvm.eh.dwarf.cfa().

llvm-svn: 97653
2010-03-03 10:30:05 +00:00
Ted Kremenek 83b28a2433 Add '-test-print-linkage-source' option to c-index-test
to test clang_getCursorLinkage()

llvm-svn: 97648
2010-03-03 06:37:58 +00:00
Ted Kremenek 547f4172b7 Export clang_getCursorLinkage().
llvm-svn: 97647
2010-03-03 06:37:30 +00:00
Ted Kremenek fb4961dfd0 Add clang_getCursorLinkage(), which returns the
underlying linkage for the entity referred to by a
CXCursor.

llvm-svn: 97646
2010-03-03 06:36:57 +00:00
John McCall 66769f8544 Implement __builtin_eh_return.
llvm-svn: 97643
2010-03-03 05:38:58 +00:00
Anders Carlsson 5b0057c05b Fix a bug with base offset merging that Devang noticed.
llvm-svn: 97641
2010-03-03 04:58:02 +00:00
Douglas Gregor 3e637467d7 Implement name hiding for names found through virtual base subobjects
that are hidden by other derived base subobjects reached along a
lookup path that does *not* pass through the hiding subobject (C++
[class.member.lookup]p6). Fixes PR6462.

llvm-svn: 97640
2010-03-03 04:38:46 +00:00
John McCall d4f4b7f5ee Add proper target hooks for __builtin_extract_return_address and
__builtin_frob_return_address.  The implementations for both are
still trivial in the default case.

llvm-svn: 97638
2010-03-03 04:15:11 +00:00
John McCall 1950a11939 Don't emit derived-to-base destructor aliases if we don't have a definition
for the base destructor, because aliases to declarations aren't legal.

Fixes PR 6471.

llvm-svn: 97637
2010-03-03 03:40:11 +00:00
Douglas Gregor 0555f7eefa Refactor CXXRecordDecl::lookupInBases() to push the recursion down a
level. No functionality change, and it obeys access control this
time.

llvm-svn: 97634
2010-03-03 02:18:00 +00:00
Ted Kremenek c9ef64ff67 Use SVN_REVISION, not SVN_VERSION.
llvm-svn: 97625
2010-03-03 01:30:39 +00:00
Ted Kremenek 0f0883b918 Fix an algorithmic bug in LiveVariables pointed out by Zhongxing.
If an initializer in a DeclStmt references the declared variable, that
extends the liveness of that variable.

llvm-svn: 97624
2010-03-03 01:17:41 +00:00
Douglas Gregor 77709906a4 Revert r97618. Access control sucks
llvm-svn: 97621
2010-03-03 01:13:25 +00:00
Ted Kremenek 47307292f1 Make getClangRevision() check that SVN_VERSION is an empty string
(even if it is defined).  This fixes the issue of this function
returning '0' when SVN_VERSION is defined to be "".

Fixes: <rdar://problem/7663667>
llvm-svn: 97620
2010-03-03 01:02:48 +00:00
Zhongxing Xu 6b11b4e050 Add comments to test case.
llvm-svn: 97619
2010-03-03 01:02:48 +00:00
Douglas Gregor a62a5237fc Factor out the recursive lookup into C++ base classes into a separate,
static function. No functionality change.

llvm-svn: 97618
2010-03-03 01:02:31 +00:00
Douglas Gregor aa5087f6e5 Initialize your storage, dummy
llvm-svn: 97615
2010-03-03 00:29:43 +00:00
Douglas Gregor a75600b7d8 Don't use echo in the Index test, which I hope will work around an intermittent Windows failure
llvm-svn: 97613
2010-03-03 00:03:22 +00:00
Douglas Gregor 832940b321 Eliminate the static map of overridden C++ methods, which was going to
come back to bite us at some point. 

llvm-svn: 97607
2010-03-02 23:58:15 +00:00
John McCall 6b21eb5c59 Suppress implicit member redeclarations arising from explicit instantiation
declarations after the member has been explicitly specialized.  We already
did this after explicit instantiation definitions;  not doing it for
declarations meant that subsequent definitions would see a previous
member declaration with specialization kind "explicit instantiation decl",
which would then happily get overridden.

Fixes PR 6458.

llvm-svn: 97605
2010-03-02 23:09:38 +00:00
Ted Kremenek 5d2bb1b9b3 [CFG]
After discussion with Zhongxing, don't force the initializer of DeclStmts to be
block-level expressions.

This led to some interesting fallout:

[UninitializedValues]

Always visit the initializer of DeclStmts (do not assume they are block-level expressions).

[BasicStore]

With initializers of DeclStmts no longer block-level expressions, this causes self-referencing initializers (e.g. 'int x = x') to no longer cause the initialized variable to be live before the DeclStmt.  While this is correct, it caused BasicStore::RemoveDeadBindings() to prune off the values of these variables from the initial store (where they are set to uninitialized).  The fix is to back-port some (and only some) of the lazy-binding logic from RegionStore to
BasicStore.  Now the default values of local variables are determined lazily as opposed
to explicitly initialized.

llvm-svn: 97591
2010-03-02 21:43:54 +00:00
Ted Kremenek c3c1b10243 Don't conjure a symbol for DeclStmts when the variable is a C++ reference.
llvm-svn: 97590
2010-03-02 21:43:52 +00:00
Rafael Espindola 70e040d552 During codegen assert that any copy assignment, destructor or constructor that
we need to synthesize has been marked as used by Sema.

Change Sema to avoid these asserts.

llvm-svn: 97589
2010-03-02 21:28:26 +00:00
Douglas Gregor 5f6bea713b Bump the default maximum template-instantiation depth to 500, as in
GCC. Fixes PR6301.

llvm-svn: 97579
2010-03-02 19:14:36 +00:00
Douglas Gregor 63d08ddda6 Add test case from PR6064, which now works
llvm-svn: 97575
2010-03-02 18:48:07 +00:00
Douglas Gregor dc70c3abc0 Diagnose the declaration of enum templates. Also, be a bit more
careful about value-dependent enumerators. Fixes PR5786.

llvm-svn: 97570
2010-03-02 17:53:14 +00:00
Kovarththanan Rajaratnam daca645655 Move Emit24 to clang::io
llvm-svn: 97569
2010-03-02 17:41:26 +00:00
Douglas Gregor 9bc6b7fc53 Use CXXTemporaryObjectExpr for explicitly-constructed temporaries. We
used to do this, but it got lost when we switched functional-style
cast syntax over to using the new initialization code. Fixes PR6457.

llvm-svn: 97568
2010-03-02 17:18:33 +00:00
Charles Davis dde71b93da Pass -m32 and -m64 to the static analyzer when using scan-build. Now we can
use scan-build with Wine, for example.

Ted, I hope this is OK.

llvm-svn: 97566
2010-03-02 15:26:41 +00:00
Zhongxing Xu d497e126cb Register all parameters even if they didn't occur in the function body.
We may query their liveness because they are added to store when passing
argument values.

llvm-svn: 97562
2010-03-02 10:08:30 +00:00
Douglas Gregor b30f22b911 Unify initializer-instantiation code for variable declarations and
base/member initializers.

llvm-svn: 97560
2010-03-02 07:38:39 +00:00
Anders Carlsson 93b1b49082 Simplify code.
llvm-svn: 97551
2010-03-02 05:40:45 +00:00
John McCall b6cc2c0439 Inspired by seeing "MIPS" go by in the commits, I've gone ahead and
implemented a (codegen) target hook for __builtin_extend_pointer.
I'm also making it return a uint64_t instead of an unsigned word;  this
comports with typical usage (i.e. the one use I know of).

I don't know if any of the existing targets requires this hook to be
set (other than x86 and x86_64, which I know do not).

llvm-svn: 97547
2010-03-02 03:50:12 +00:00
Anders Carlsson 6f1f002651 Rename BaseOffset to Offset and make it signed in preparation of more construction vtable work.
llvm-svn: 97546
2010-03-02 03:44:06 +00:00
Eric Christopher 0b26a616eb Add in some more MIPS command line options.
Patch by Oleksandr Tymoshenko!

llvm-svn: 97544
2010-03-02 02:41:08 +00:00
John McCall 4b613fae35 After much consultation aimed at figuring out what this builtin actually
does, document the results and then implement __builtin_extend_pointer for
platforms where it's a no-op.

llvm-svn: 97540
2010-03-02 02:31:24 +00:00
Douglas Gregor c3eb801671 Add test case from PR5812, which works now.
llvm-svn: 97535
2010-03-02 01:36:28 +00:00
Douglas Gregor 1d85d2903b Fix an amusing typo that completely the re-introduction of parameters
for the purposes of parsing default arguments. In effect, we would
re-introduce the parameter with a default argument N times (where N is
the number of parameters preceding the parameter with a default
argument). This showed up when a defaulted parameter of a member
function of a local class shadowed a parameter of the enclosing
function. Fixes PR6383.

llvm-svn: 97534
2010-03-02 01:29:43 +00:00
Fariborz Jahanian db217c4bad Cast a pointer to 'long long' to satisfy all compilation models.
Satisfies radar 7703202.

llvm-svn: 97532
2010-03-02 01:19:04 +00:00
Douglas Gregor 53db22c7aa Add comment
llvm-svn: 97528
2010-03-02 00:25:00 +00:00
Douglas Gregor d29f2799b7 When we're parsing template names as part of base-specifiers, we are
*not* entering the context of the nested-name-specifier. This was
causing us to look into an uninstantiated template that we shouldn't
look into. Fixes PR6376.

llvm-svn: 97524
2010-03-01 23:49:23 +00:00
John McCall bd8d9bd39c Split out types that are non-canonical unless dependent as their own
category.  Use this in a few places to eliminate unnecessary TST cases and
do some future-proofing.  Provide terrible manglings for typeof.  Mangle
decltype with some hope of accuracy.

Our manglings for some of the cases covered in the testcase are different
from gcc's, which I've raised as an issue with the ABI list.

llvm-svn: 97523
2010-03-01 23:49:17 +00:00
Fariborz Jahanian f4609d431f More rewriter of nested blocks fun stuff.
Radar 7696893.

llvm-svn: 97520
2010-03-01 23:36:21 +00:00
Douglas Gregor ea99b5d736 Unbreak the build
llvm-svn: 97519
2010-03-01 23:31:19 +00:00
Douglas Gregor 9a28e84b32 Keep an explicit stack of function and block scopes, each element of
which has the label map, switch statement stack, etc. Previously, we
had a single set of maps in Sema (for the function) along with a stack
of block scopes. However, this lead to funky behavior with nested
functions, e.g., in the member functions of local classes.

The explicit-stack approach is far cleaner, and we retain a 1-element
cache so that we're not malloc/free'ing every time we enter a
function. Fixes PR6382.

Also, tweaked the unused-variable warning suppression logic to look at
errors within a given Scope rather than within a given function. The
prior code wasn't looking at the right number-of-errors count when
dealing with blocks, since the block's count would be deallocated
before we got to ActOnPopScope. This approach works with nested
blocks/functions, and gives tighter error recovery.

llvm-svn: 97518
2010-03-01 23:15:13 +00:00
Chandler Carruth a419dbb5ea Fix the lookup of names used in a friend declaration to not attempt to
re-declare them. This fixes PR6317. Also add the beginnings of an interesting
test case for p1 of [class.friend] which also covers PR6317.

llvm-svn: 97499
2010-03-01 21:17:36 +00:00
Chris Lattner efc83e60d3 fix PR5933: don't warn about unused variables if a function has other errors in it.
llvm-svn: 97498
2010-03-01 21:06:03 +00:00
Chris Lattner 30d0cfda35 Implement jump checking for initialized c++ variables, implementing
a fixme and PR6451.

Only perform jump checking if the containing function has no errors,
and add the infrastructure needed to do this.

On the testcase in the PR, we produce:

t.cc:6:3: error: illegal goto into protected scope
  goto later;
  ^
t.cc:7:5: note: jump bypasses variable initialization
  X x;
    ^

llvm-svn: 97497
2010-03-01 20:59:53 +00:00
Chris Lattner e1582706b0 avoid issues with the new scope protector. Previously we'd error
with "address taken of label in protected scope, jump to it would have unknown effect on scope"

llvm-svn: 97495
2010-03-01 20:56:44 +00:00
Douglas Gregor 4f13beb8b6 Start detangling the BlockSemaInfo/Sema mess. No functionality change.
llvm-svn: 97494
2010-03-01 20:44:28 +00:00
Ted Kremenek 80263e5905 Allow a '0' precision in format strings (as the man page says it is okay).
Fixes <rdar://problem/7700339>.

llvm-svn: 97482
2010-03-01 19:22:33 +00:00
John McCall de9607bc6f The latest draft uses 'dt' to mangle member expressions, and now so do we.
llvm-svn: 97479
2010-03-01 19:12:25 +00:00
Douglas Gregor 79e31db9a9 When looking for a redeclaration of a static variable, only look for redeclarations. Fixes PR6449
llvm-svn: 97478
2010-03-01 19:11:54 +00:00
Douglas Gregor aff9c1a033 When instantiating a function-scoped enum, make sure that it and its
enumeration constants get placed into the local instantiation hash
table. Fixes PR6375.

llvm-svn: 97471
2010-03-01 19:00:07 +00:00
Douglas Gregor 604c30299d Robustify instantiation of templates when there are errors in the
template definition. Do this both by being more tolerant of errors in
our asserts and by not dropping a variable declaration completely when
its initializer is ill-formed. Fixes the crash-on-invalid in PR6375,
but not the original issue.

llvm-svn: 97463
2010-03-01 18:27:54 +00:00
John McCall 8bc2a70dfe Don't infinite-loop if TryAnnotateCXXScopeToken fails to annotate but doesn't
signal an error.  This can happen even when the current token is '::' if
this is a ::new or ::delete expression.

This was an oversight in my recent parser refactor;  fixes PR 5825.

llvm-svn: 97462
2010-03-01 18:20:46 +00:00
Douglas Gregor 2528936379 Finish pushing source-location information though TreeTransform's
TransformDefinition.

llvm-svn: 97445
2010-03-01 17:25:41 +00:00
Douglas Gregor a04f2ca19a When looking for the instantiated declaration that corresponds to a
given declaration in a template, make sure that the context we're
searching through is complete. Fixes PR6376.

llvm-svn: 97444
2010-03-01 15:56:25 +00:00
Zhongxing Xu 6d3cc382df Since now we store the cast type with an ElementRegion, there is
no need to store a type with SymbolRegionValue.

llvm-svn: 97437
2010-03-01 06:56:52 +00:00
Zhongxing Xu b0e5c27113 Assert when loading from a code text region instead of returning an unknown silently.
llvm-svn: 97436
2010-03-01 05:29:02 +00:00
Zhongxing Xu aba9436f85 Add comments.
llvm-svn: 97435
2010-03-01 03:48:10 +00:00
Douglas Gregor a070ffa7b8 Don't warn about case-value conversions from a negative value to a
larger unsigned value, since this is implementation-defined
behavior. (We previously suppressed this warning when converting from
a signed value to an unsigned value of the same size).

llvm-svn: 97430
2010-03-01 01:04:55 +00:00
Chandler Carruth b30f39a4ae Pass '-no-canonical-prefixes' on down to GCC. It's not specific to the Clang
driver and was in fact based on a feature in GCC. =]

llvm-svn: 97424
2010-02-28 22:33:07 +00:00
Douglas Gregor a51c67424e Improve name mangling for dependently-scoped declaration references.
llvm-svn: 97422
2010-02-28 22:05:49 +00:00
Douglas Gregor 5610db6923 Add name mangling for DeclRefExprs that refer to external names
llvm-svn: 97418
2010-02-28 21:40:32 +00:00
Anders Carlsson 5b79c31471 Remove debug output.
llvm-svn: 97407
2010-02-28 18:39:30 +00:00
Anders Carlsson 7162ab947b Handle unused functions in construction vtables correctly.
llvm-svn: 97406
2010-02-28 18:37:33 +00:00
Chris Lattner 73a9c7d891 pull some altivec stuff out of line.
llvm-svn: 97405
2010-02-28 18:33:55 +00:00
Douglas Gregor e489a7d3d3 Warn about the deprecated string literal -> char* conversion. Fixes PR6428.
llvm-svn: 97404
2010-02-28 18:30:25 +00:00
Chris Lattner fd48afe412 Implement PR6423 by using one token of lookahead to disambiguate
an *almost* always incorrect case.  This only does the lookahead
in the insanely unlikely case, so it shouldn't impact performance.

On this testcase:

struct foo {
}
typedef int x;

Before:

t.c:3:9: error: cannot combine with previous 'struct' declaration specifier
typedef int x;
        ^

After:

t.c:2:2: error: expected ';' after struct
}
 ^
 ;

llvm-svn: 97403
2010-02-28 18:18:36 +00:00
Anders Carlsson 8b37bb7c48 When laying out vtables for virtual bases in construction vtables, we need to check if the vtable is a primary base in the layout class.
llvm-svn: 97402
2010-02-28 18:08:38 +00:00
Anders Carlsson b15d8c57ad Add another construction vtable test.
llvm-svn: 97401
2010-02-28 17:59:36 +00:00
John McCall 1629149103 Support constant-evaluation of __builtin_nans* as well as the correct constant
evaluation of __builtin_nan*.  Most of the work to make this work is in LLVM.

Fixes <rdar://problem/7696712> and part of PR 5255.

llvm-svn: 97383
2010-02-28 13:00:19 +00:00
Zhongxing Xu 7ba9e99015 Use getBody() to get the function definition when the decl referenced is not
definition.

llvm-svn: 97373
2010-02-28 06:39:11 +00:00
Ted Kremenek 9704635375 Fix typo.
llvm-svn: 97365
2010-02-28 05:14:08 +00:00
Anders Carlsson e3385f566b More improvements to construction vtables; we know handle vbase offsets correctly (I hope).
llvm-svn: 97361
2010-02-28 01:43:58 +00:00
Dan Gohman 357421ea12 Opt into the Verifier now that it's an opt-in feature of
addPassesToEmitFile.

llvm-svn: 97358
2010-02-28 00:55:40 +00:00
Anders Carlsson 62c6c72bab Pass information about whether a base is virtual or not down to getCtorVtable, we need this information in the vtable builder.
llvm-svn: 97356
2010-02-28 00:36:23 +00:00
Anders Carlsson 31f595f5ef Add new function.
llvm-svn: 97353
2010-02-28 00:10:58 +00:00
Anders Carlsson f98b47d3b9 Fix to dumpLayout; we want to be able to dump address points even if the vtable doesn't have any methods.
llvm-svn: 97350
2010-02-27 23:58:01 +00:00
Nick Lewycky 48f74d2c9a Debian sid moved these headers into /4.4 and left /4.4.3 as a symlink. Update.
Also, add support for 32-bit x86 Debian sid.

llvm-svn: 97347
2010-02-27 22:35:43 +00:00
Anders Carlsson c3f92a16f2 Add a simple construction vtable test.
llvm-svn: 97344
2010-02-27 21:09:00 +00:00
Anders Carlsson 9391375d95 Start fleshing out construction vtable support.
llvm-svn: 97342
2010-02-27 20:39:05 +00:00
Anders Carlsson 603d7d1910 Enable the new vtable layout code for vtables that aren't construction vtables. (This doesn't mean that we emit LLVM IR using it yet, it just means that it's running and hopefully not crashing or asserting).
llvm-svn: 97341
2010-02-27 20:02:53 +00:00
Anders Carlsson 9f19aaaa3a Move ComputeThisAdjustmentBaseOffset to VtableBuilder.
llvm-svn: 97340
2010-02-27 19:57:44 +00:00
Anders Carlsson b26c2abac7 Make sure to insert the primary base in the set :)
llvm-svn: 97339
2010-02-27 19:51:04 +00:00
Anders Carlsson e02a926a1c Use the real base offset when calculating vbase offsets.
llvm-svn: 97338
2010-02-27 19:21:58 +00:00
Anders Carlsson 4d0729a7cc Figured out why the test was failing, this will hopefully fix it.
llvm-svn: 97336
2010-02-27 19:00:53 +00:00
Anders Carlsson 2b381bbb5c Don't add this adjustments for pure virtual member functions.
llvm-svn: 97334
2010-02-27 18:16:50 +00:00
Anders Carlsson 01d3c7da60 We want to store method info for unused functions.
llvm-svn: 97333
2010-02-27 18:09:40 +00:00
Anders Carlsson ec27c49d6c XFAIL this for now. I have no idea why this test is failing on some machines. Looks like some sort of whitespace issue in FileCheck.
llvm-svn: 97332
2010-02-27 18:09:05 +00:00
Benjamin Kramer 718f722271 Revert 97324. Chris says this cleanup could hurt -E performance.
llvm-svn: 97331
2010-02-27 18:02:51 +00:00
Benjamin Kramer a197fb6731 Move method out-of-line. I thought this would be a candidate for inlining but I was wrong.
llvm-svn: 97330
2010-02-27 17:05:45 +00:00
Anders Carlsson e6528ed7c5 Add another test.
llvm-svn: 97329
2010-02-27 16:55:58 +00:00
Anders Carlsson 4068798cbc Finish up the changes to this adjustments.
llvm-svn: 97328
2010-02-27 16:52:49 +00:00
Benjamin Kramer 53fa347ee6 Another trivial getSpelling simplification.
llvm-svn: 97327
2010-02-27 16:29:36 +00:00
Anders Carlsson d46ed89d79 Stub out more of the 'this' pointer adjustment fixes I've been planning. Start using a set vector for primary bases so they will be ordered.
llvm-svn: 97326
2010-02-27 16:18:19 +00:00
Benjamin Kramer b14e0b637a Simplify code.
llvm-svn: 97324
2010-02-27 14:22:08 +00:00
Benjamin Kramer c5c65d2993 Fix thinko.
llvm-svn: 97323
2010-02-27 14:15:42 +00:00
Benjamin Kramer 0a1abd4088 Add an overload of Preprocessor::getSpelling which takes a SmallVector and
returns a StringRef. Use it to simplify some repetitive code.

llvm-svn: 97322
2010-02-27 13:44:12 +00:00
Ted Kremenek 09597b461d Fix crasher caused by setting a bit in a possibly empty bitvector while
doing printf format string checking.  This is a recent regression.

llvm-svn: 97318
2010-02-27 08:34:51 +00:00
Kovarththanan Rajaratnam 9a3f55c2a4 Wire up Daniel's new spiffy C interpreter into the CMake build system
llvm-svn: 97311
2010-02-27 07:46:49 +00:00
Kovarththanan Rajaratnam 7cfffceec7 Add comment
llvm-svn: 97309
2010-02-27 07:06:44 +00:00
Kovarththanan Rajaratnam fa0a4bcb55 Add header + comments
llvm-svn: 97308
2010-02-27 07:05:56 +00:00
Anders Carlsson d2025417ef Fix another vtable layout bug; we weren't looking hard enough for overriden functions when determining if an overrider will ever be used.
llvm-svn: 97306
2010-02-27 06:38:03 +00:00
Anders Carlsson d69b2f93ea Handle vcall offset sharing between destructors.
llvm-svn: 97304
2010-02-27 04:12:52 +00:00
Anders Carlsson b08aaa3e10 Fix a bug where we were generating an unnecessary vtable for a virtual base that's already a primary virtual base.
llvm-svn: 97303
2010-02-27 04:05:52 +00:00
Zhongxing Xu e334bb1a66 Add test case for inlining call analysis.
llvm-svn: 97300
2010-02-27 02:44:37 +00:00
Douglas Gregor b8b9f28e24 Robustify SourceManager::getLocation(), so that it returns an
end-of-line source location when given a column number beyond the
length of the line, or an end-of-file source location when given a
line number beyond the length of the file. Previously, we would return
an invalid location.

llvm-svn: 97299
2010-02-27 02:42:25 +00:00
Ted Kremenek af11dcf348 Add reference to positional arguments documentation.
llvm-svn: 97298
2010-02-27 01:46:29 +00:00
Ted Kremenek d166819c26 For printf format string checking, add support for positional format strings.
Along the way, coelesce some of the diagnostics.

llvm-svn: 97297
2010-02-27 01:41:03 +00:00
Douglas Gregor 89a56c561f When given unsaved files in clang_createTranslationUnitFromSourceFile,
copy the source buffers provided rather than referencing them
directly, so that the caller can free those buffers immediately after
calling clang_createTranslationUnitFromSourceFile(). Otherwise, we
risk hitting those buffers later (when building source ranges, forming
diagnostics, etc.). 

llvm-svn: 97296
2010-02-27 01:32:48 +00:00
Douglas Gregor beab56e923 Skip dependent virtual base classes; fixes PR6413.
llvm-svn: 97291
2010-02-27 00:25:28 +00:00
John McCall 013b006557 Put BadLiteral in the NonGCC group. I'd completely forgotten about this.
llvm-svn: 97286
2010-02-26 23:48:57 +00:00
John McCall 62abc944d6 At sabre's request, drop the FP bounds diagnostics down to warnings and file
them under -Wbad-literal.  They're still on by default.

llvm-svn: 97284
2010-02-26 23:35:57 +00:00
Fariborz Jahanian 6005bd821c Prevent rewriter crash when variable type is missing.
Fixes radar 7692183.

llvm-svn: 97281
2010-02-26 22:49:11 +00:00
Fariborz Jahanian be730c9e34 Minor cleanup of the rewriter.
llvm-svn: 97280
2010-02-26 22:36:30 +00:00
Fariborz Jahanian 9bbc148e16 Removed some unused code in rewriter.
llvm-svn: 97274
2010-02-26 21:46:27 +00:00