Commit Graph

73530 Commits

Author SHA1 Message Date
Anders Carlsson ce460529c0 When generating a virtual destructor, don't try to make a virtual call to the base class destructor because then we'll just re-enter the same destructor!
This was done to fix PR5619, so I went ahead and passed a dummy VTT pointer for now.

llvm-svn: 90578
2009-12-04 19:33:17 +00:00
Rafael Espindola 73d4637545 Add gcc's -no-canonical-prefixes option to clang.
llvm-svn: 90577
2009-12-04 19:31:58 +00:00
Mike Stump 875912ac13 Fixup nested try blocks.
llvm-svn: 90576
2009-12-04 19:21:57 +00:00
Evan Cheng 9e67255748 Handle recursive PHI's.
llvm-svn: 90575
2009-12-04 19:09:10 +00:00
Mike Stump 5c820758f5 Fix warning and be sure to set up the rethrow pointer if we fall off
the end of all the catches.

llvm-svn: 90574
2009-12-04 19:03:47 +00:00
Anders Carlsson bad80eb792 Rename 'Class' to 'MostDerivedClass'
llvm-svn: 90573
2009-12-04 18:36:22 +00:00
Victor Hernandez a6bd3f5f5e Fix crasher when N->getElement(n) is NULL
llvm-svn: 90572
2009-12-04 18:29:23 +00:00
Anders Carlsson 19462d681a Store the vtable components in a SmallVector.
llvm-svn: 90571
2009-12-04 16:24:46 +00:00
Anders Carlsson 4e1d75f3ed Use a different ConstantArray::get.
llvm-svn: 90570
2009-12-04 16:22:27 +00:00
Anders Carlsson 472404f8a6 Move the vtable vector directly into the Vtable builder.
llvm-svn: 90569
2009-12-04 16:19:30 +00:00
Anders Carlsson 7bb7076b51 Change getIndex to return false if the index wasn't found. Avoids an extra hash lookup.
llvm-svn: 90568
2009-12-04 15:49:02 +00:00
Evan Cheng 6154dbd5ee Add a pre-regalloc tail duplication pass.
llvm-svn: 90567
2009-12-04 09:42:45 +00:00
Evan Cheng 0f1cc35c65 Don't try to be cute with undef optimization here. Let ProcessImplicitDefs handle it.
llvm-svn: 90566
2009-12-04 09:23:37 +00:00
Eli Friedman 65d87222b2 Minor cleanup; no functionality change.
llvm-svn: 90565
2009-12-04 08:52:11 +00:00
Duncan Sands 1602277b70 Add note about a subtle bug in this code. Does not effect the main
architectures that LLVM targets, because they don't use this code.

llvm-svn: 90564
2009-12-04 08:42:17 +00:00
Eli Friedman 81fb0d2656 Remove unused argument.
llvm-svn: 90563
2009-12-04 08:40:51 +00:00
Eli Friedman c07aebee90 Eliminate submethods vector.
llvm-svn: 90562
2009-12-04 08:36:58 +00:00
Eli Friedman 3d2e9de337 Eliminate the inner loop in VtableBuilder::OverrideMethod.
llvm-svn: 90561
2009-12-04 08:34:14 +00:00
Daniel Dunbar 20c13165a0 PR5684: Fix refacto, the backend consumer was copying the Diagnostic object,
which meant that hasErrorOccurred() checks to prevent codegen-on-invalid weren't
working.

llvm-svn: 90560
2009-12-04 08:17:40 +00:00
Daniel Dunbar 644dca07b9 ASTUnit/CIndex: Explicitly track the top-level decls when using an ASTUnit made
from a source file.
 - This allows CIndex to avoid iterating over all the top-level decls when using
   a PCH, which means we deserialize far fewer decls.

llvm-svn: 90559
2009-12-04 08:17:33 +00:00
Daniel Dunbar 473ea40953 Ignore -fsched-interblock and -freorder-blocks to the ignored -f flags, we have
no plans to support invasive optimization flags.

llvm-svn: 90558
2009-12-04 08:17:18 +00:00
Daniel Dunbar c5b2ac4d97 Fix typo and add missing include.
llvm-svn: 90557
2009-12-04 08:17:07 +00:00
Eli Friedman 78cde14444 Make sure to call PerformObjectMemberConversion where necessary.
llvm-svn: 90555
2009-12-04 07:18:51 +00:00
Chris Lattner 2474a7e9c2 Use PresumedLoc when emitting the 'included from' diagnostics. For a malformed
test like this:

#line 4 "foo"

#define XX ?

#if XX
#endif

We now emit:

In file included from t.c:7:
foo:7:5: error: invalid token at start of a preprocessor expression
#if XX
    ^
foo:5:12: note: instantiated from:
#define XX ?
           ^

instead of:

In file included from t.c:7:
foo:7:5: error: invalid token at start of a preprocessor expression
#if XX
    ^
./t.h:6:12: note: instantiated from:
#define XX ?
           ^

(where the note doesn't obey #line or print the include stack when needed).

This fixes PR5617

llvm-svn: 90554
2009-12-04 07:06:35 +00:00
Andreas Neustifter 4665141ebd Added debug output for inherited passes that are invalidated.
llvm-svn: 90553
2009-12-04 06:58:24 +00:00
Ted Kremenek 6e8541ddd0 Rename instance variable to avoid name conflict with parameters, and modify addTransition() to compare the correct state values.
llvm-svn: 90552
2009-12-04 06:57:49 +00:00
Ted Kremenek f1e2c829d5 Revert r90546.
llvm-svn: 90551
2009-12-04 06:47:41 +00:00
Eli Friedman 3de20c55e9 Missed change from last commit.
llvm-svn: 90550
2009-12-04 06:46:54 +00:00
Eli Friedman 2cfcef65b7 Make the type of the Decl referred to by a MemberExpr a bit more precise.
llvm-svn: 90549
2009-12-04 06:40:45 +00:00
Mikhail Glushenkov c563ce3e62 Forward -m32/-m64 to the linker.
llvm-svn: 90548
2009-12-04 06:38:45 +00:00
Mikhail Glushenkov 2b86846b65 Support -march/-mtune/-mcpu.
llvm-svn: 90547
2009-12-04 06:38:28 +00:00
Zhongxing Xu 4db14cc577 the assertion says state is not NULL. When state is not NULL, getState()
returns state. So simplify the predicate.

llvm-svn: 90546
2009-12-04 06:36:49 +00:00
Chris Lattner 1ddfd9f96c Fix PR5551 by not ignoring the top level constantexpr when
folding a load from constant.

llvm-svn: 90545
2009-12-04 06:29:29 +00:00
Anders Carlsson 5c9e7b16a5 Correctly mangle the 'std' namespace inside extern "C++" blocks.
llvm-svn: 90544
2009-12-04 06:23:23 +00:00
Chris Lattner 6aab73137a minor tidy.
llvm-svn: 90543
2009-12-04 06:14:03 +00:00
Anders Carlsson f3935b4d4b Make sure that overridden method decls are always canonical.
llvm-svn: 90542
2009-12-04 05:51:56 +00:00
Eli Friedman d67751766b Test for non-canonical decl and vtables.
llvm-svn: 90541
2009-12-04 04:30:55 +00:00
Eli Friedman 94bc2dade6 Fix regression in vtable improvements.
llvm-svn: 90540
2009-12-04 04:30:03 +00:00
Chris Lattner 6d947a0774 add to cmake
llvm-svn: 90539
2009-12-04 04:15:36 +00:00
Mike Stump 8c1253b4c2 Try/catch statements seem to be working well enough to turn on.
llvm-svn: 90538
2009-12-04 03:57:07 +00:00
Mike Stump 2ab55765f7 Disable for now, doesn't play nice with the temporary code.
llvm-svn: 90537
2009-12-04 03:55:53 +00:00
Eli Friedman b05eb963e0 Rename method to something easier to search for.
llvm-svn: 90536
2009-12-04 03:54:56 +00:00
Anders Carlsson a93e980fbc More work in preparation of getting rid of the submethods loop.
llvm-svn: 90535
2009-12-04 03:52:52 +00:00
Anders Carlsson f2f31f4371 Remove an unused member variable.
llvm-svn: 90534
2009-12-04 03:46:21 +00:00
Anders Carlsson e609636e0d Add a way to get the index of a method. Assert that we have the same index for now.
llvm-svn: 90533
2009-12-04 03:41:37 +00:00
Anders Carlsson b07567c315 Add a premature optimization.
llvm-svn: 90532
2009-12-04 03:07:26 +00:00
Anders Carlsson 50f147460a Add the method directly to the vtable.
llvm-svn: 90531
2009-12-04 03:06:03 +00:00
Anders Carlsson 79bce40365 Get rid of the PureVirtualMethods map.
llvm-svn: 90530
2009-12-04 02:58:12 +00:00
Anders Carlsson ddf42c8d80 Move handling of pure virtual methods to AppendMethods (and rename it to AppendMethodsToVtable).
llvm-svn: 90529
2009-12-04 02:56:03 +00:00
Anders Carlsson 5b3ea9bf1c Move covariant thunk handling to AppendMethods too.
llvm-svn: 90528
2009-12-04 02:52:22 +00:00