- Nov 19, 2008
-
-
Oscar Fuentes authored
llvm-svn: 59565
-
Douglas Gregor authored
to support operators defined as member functions, e.g., struct X { bool operator==(X&); }; Overloading with non-member operators is supported, and the special rules for the implicit object parameter (e.g., the ability for a non-const *this to bind to an rvalue) are implemented. This change also refactors and generalizes the code for adding overload candidates for overloaded operator calls (C++ [over.match.expr]), both to match the rules more exactly (name lookup of non-member operators actually ignores member operators) and to make this routine more reusable for the other overloaded operators. Testing for the initialization of the implicit object parameter is very light. More tests will come when we get support for calling member functions directly (e.g., o.m(a1, a2)). llvm-svn: 59564
-
Bill Wendling authored
instruction. llvm-svn: 59563
-
- Nov 18, 2008
-
-
Evan Cheng authored
llvm-svn: 59562
-
Chris Lattner authored
llvm-svn: 59561
-
Fariborz Jahanian authored
__weak objects. llvm-svn: 59560
-
Evan Cheng authored
Register scavenger should process early clobber defs first. A dead early clobber def should not interfere with a normal def which happens one slot later. llvm-svn: 59559
-
Evan Cheng authored
llvm-svn: 59558
-
Bill Wendling authored
llvm-svn: 59557
-
Chris Lattner authored
llvm-svn: 59556
-
Chris Lattner authored
return Diag(...); when the function returns bool. This always evaluates to true. llvm-svn: 59555
-
Chris Lattner authored
llvm-svn: 59554
-
Fariborz Jahanian authored
llvm-svn: 59553
-
Devang Patel authored
This pass makes it easier to test wheter debugging info. influences optimization passes or not. llvm-svn: 59552
-
Dan Gohman authored
they trap on divide-by-zero, and this side effect is otherwise unmodeled. llvm-svn: 59551
-
Dan Gohman authored
consistent with ScheduleNodeTopDown methods. llvm-svn: 59550
-
Dan Gohman authored
llvm-svn: 59549
-
Duncan Sands authored
and FP_ROUND. Not sure what these were doing here - probably they were sometimes (wrongly) created with integer operands somewhere that has since been fixed. llvm-svn: 59548
-
Devang Patel authored
Remove all dead globals from llvm.metadata. Ignore linkonce linkage for selected llvm.dbg values. llvm-svn: 59547
-
Oscar Fuentes authored
removed from config.h.in. llvm-svn: 59546
-
Duncan Sands authored
supposed to be any functionality change. llvm-svn: 59545
-
Owen Anderson authored
Fix a bug introduced by my previous patch. With this change, SPEC is now clean with prealloc splitting enabled. llvm-svn: 59544
-
Fariborz Jahanian authored
llvm-svn: 59543
-
Dan Gohman authored
llvm-svn: 59542
-
rdar://problem/6329769Steve Naroff authored
As soon as we detect duplicate interfaces, discontinue further semantic checks (returning the original interface). This is now consistent with how we handle protocols (and less error prone in general). llvm-svn: 59541
-
Dan Gohman authored
llvm-svn: 59540
-
Torok Edwin authored
llvm-svn: 59539
-
Devang Patel authored
llvm-svn: 59538
-
Nuno Lopes authored
llvm-svn: 59537
-
Daniel Dunbar authored
suite with clang. llvm-svn: 59536
-
Daniel Dunbar authored
- PR3094. - No test case, ccc is not really a supported product (llvmc2 already got this right). llvm-svn: 59535
-
Torok Edwin authored
llvm-svn: 59534
-
Chris Lattner authored
llvm-svn: 59533
-
Dan Gohman authored
llvm-svn: 59532
-
Dan Gohman authored
llvm-svn: 59531
-
Duncan Sands authored
SCALAR_TO_VECTOR. I didn't add the testcase, because once llc gets past scalar-to-vector it hits a SPU target lowering bug and explodes. llvm-svn: 59530
-
Nick Lewycky authored
Use it to safely handle less-than-or-equals-to exit conditions in loops. These also occur when the loop exit branch is exit on true because SCEV inverses the icmp predicate. Use it again to handle non-zero strides, but only with an unsigned comparison in the exit condition. llvm-svn: 59528
-
Douglas Gregor authored
DeclRefExprs and BlockDeclRefExprs into a single function Sema::ActOnDeclarationNameExpr, eliminating a bunch of duplicate lookup-name-and-check-the-result code. Note that we still have the three parser entry points for identifiers, operator-function-ids, and conversion-function-ids, since the parser doesn't (and shouldn't) know about DeclarationNames. This is a Good Thing (TM), and there will be more entrypoints coming (e.g., for C++ pseudo-destructor expressions). llvm-svn: 59527
-
Douglas Gregor authored
operator+, directly, using the same mechanism as all other special names. Removed the "special" identifiers for the overloaded operators from the identifier table and IdentifierInfo data structure. IdentifierInfo is back to representing only real identifiers. Added a new Action, ActOnOperatorFunctionIdExpr, that builds an expression from an parsed operator-function-id (e.g., "operator +"). ActOnIdentifierExpr used to do this job, but operator-function-ids are no longer represented by IdentifierInfo's. Extended Declarator to store overloaded operator names. Sema::GetNameForDeclarator now knows how to turn the operator name into a DeclarationName for the overloaded operator. Except for (perhaps) consolidating the functionality of ActOnIdentifier, ActOnOperatorFunctionIdExpr, and ActOnConversionFunctionExpr into a common routine that builds an appropriate DeclRefExpr by looking up a DeclarationName, all of the work on normalizing declaration names should be complete with this commit. llvm-svn: 59526
-
Zhongxing Xu authored
llvm-svn: 59523
-