summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGExpr.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix spacing.Mike Stump2009-12-151-1/+1
| | | | llvm-svn: 91386
* Ensure we preserve line information for each trap forMike Stump2009-12-151-1/+9
| | | | | | -fcatch-undefined-behavior if we aren't optimizing. WIP. llvm-svn: 91382
* Switch codegen for -fcatch-undefined-bahavior over to __builtin_trapMike Stump2009-12-151-19/+13
| | | | | | instead of abort to improve codesize and codegen. llvm-svn: 91374
* We have to allow one to form an address for one past the end. WIP.Mike Stump2009-12-141-1/+1
| | | | llvm-svn: 91347
* Simplifiy.Mike Stump2009-12-141-16/+3
| | | | llvm-svn: 91324
* Implement runtime checks for undefined behavior. WIP.Mike Stump2009-12-121-0/+61
| | | | | | | | | | | | | This implements a new flag -fcatch-undefined-behavior. The flag turns on additional runtime checks for: T a[I]; a[i] abort when i < 0 or i >= I. Future stuff includes shifts by >= bitwidth amounts. llvm-svn: 91198
* Move the code for converting a member pointer to a bool so that it is usableEli Friedman2009-12-111-0/+15
| | | | | | for logical not. llvm-svn: 91112
* When extending the lifetime of a temporary, make sure to emit a branch to ↵Anders Carlsson2009-12-111-1/+4
| | | | | | the cleanup exit block. This fixes a broken module error in LLVMCConfigurationEmitter.cpp. llvm-svn: 91086
* Code gen for ObjCIsaExpr AST used as lvalue.Fariborz Jahanian2009-12-091-0/+2
| | | | | | (fixes radar 7457534). llvm-svn: 90995
* Add cleanups for exceptional edges. WIP.Mike Stump2009-12-091-2/+10
| | | | llvm-svn: 90940
* Fix some direct checks of expressions which might be surrounded by parentheses.Eli Friedman2009-12-081-1/+1
| | | | llvm-svn: 90825
* Make the comma operator consistently call EnsureInsertPoint.Eli Friedman2009-12-071-0/+1
| | | | llvm-svn: 90799
* use new helpers to simplify code.Chris Lattner2009-12-061-8/+4
| | | | llvm-svn: 90709
* Make EmitStoreOfScalar generate a more sane representation of boolean stores.Eli Friedman2009-12-011-6/+1
| | | | | | "Fixes" PR5645. llvm-svn: 90272
* Don't pass false (default) for isVolatile parameter to CreateLoad.Daniel Dunbar2009-11-291-2/+5
| | | | llvm-svn: 90098
* Implement IRGen for MemberExpr referring to static member function.Eli Friedman2009-11-261-17/+24
| | | | llvm-svn: 89938
* Eliminate CXXConditionDeclExpr with extreme prejudice.Douglas Gregor2009-11-251-8/+0
| | | | | | | | | | | | | | | | | All statements that involve conditions can now hold on to a separate condition declaration (a VarDecl), and will use a DeclRefExpr referring to that VarDecl for the condition expression. ForStmts now have such a VarDecl (I'd missed those in previous commits). Also, since this change reworks the Action interface for if/while/switch/for, use FullExprArg for the full expressions in those expressions, to ensure that we're emitting Note that we are (still) not generating the right cleanups for condition variables in for statements. That will be a follow-on commit. llvm-svn: 89817
* Rename CleanupScope -> DelayedCleanupBlock. No functionality change.Douglas Gregor2009-11-241-1/+1
| | | | llvm-svn: 89769
* Handle base-to-derived casts. Will land test case shortly.Anders Carlsson2009-11-231-5/+21
| | | | llvm-svn: 89678
* Clean up EmitPointerToDataMemberBinaryExpr a bit.Eli Friedman2009-11-181-7/+5
| | | | llvm-svn: 89197
* More const is always good.Anders Carlsson2009-11-171-4/+4
| | | | llvm-svn: 89033
* Implement most of dynamic_cast. WIP.Mike Stump2009-11-161-5/+15
| | | | llvm-svn: 88901
* Some minor cleanup for EmitCastLValue.Eli Friedman2009-11-161-11/+7
| | | | llvm-svn: 88894
* Implement typeid for class types.Mike Stump2009-11-151-0/+8
| | | | llvm-svn: 88843
* Handle CK_BitCast in EmitCastLValue.Anders Carlsson2009-11-141-3/+12
| | | | llvm-svn: 88810
* Handle CXXDefaultArgExprs in EmitLValue. Fixes PR5484.Anders Carlsson2009-11-141-2/+4
| | | | llvm-svn: 88735
* Explicitly note that pre-inc/dec lvalues are not supported yet, so that itEli Friedman2009-11-091-1/+5
| | | | | | doesn't crash. (Such expressions are valid in C++, but not in C.) llvm-svn: 86513
* Add clarifying parens.Daniel Dunbar2009-11-081-1/+1
| | | | llvm-svn: 86457
* Handle member expressions where the member declaration is actually a static ↵Anders Carlsson2009-11-071-0/+3
| | | | | | variable. Fixes PR5392. llvm-svn: 86414
* More LValue related code cleanup.Anders Carlsson2009-11-071-18/+27
| | | | llvm-svn: 86413
* More cleanup, the code is much easier to follow now.Anders Carlsson2009-11-071-24/+11
| | | | llvm-svn: 86412
* Reduce nesting, no functionality change.Anders Carlsson2009-11-071-18/+20
| | | | llvm-svn: 86411
* We only need to call SetObjCNonGC for local variables. No functionality change.Anders Carlsson2009-11-071-3/+3
| | | | llvm-svn: 86410
* Change EmitPointerToDataMemberLValue to take a FieldDecl. No intended ↵Anders Carlsson2009-11-071-4/+3
| | | | | | functionality change. llvm-svn: 86407
* random tidyingChris Lattner2009-10-281-101/+104
| | | | llvm-svn: 85408
* adjust for a pending LLVM change.Chris Lattner2009-10-281-3/+3
| | | | llvm-svn: 85373
* Add Code gen support for '->*' operator which fellFariborz Jahanian2009-10-261-1/+4
| | | | | | through the crack. llvm-svn: 85160
* Eliminate QualifiedDeclRefExpr, which captured the notion of aDouglas Gregor2009-10-231-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | qualified reference to a declaration that is not a non-static data member or non-static member function, e.g., namespace N { int i; } int j = N::i; Instead, extend DeclRefExpr to optionally store the qualifier. Most clients won't see or care about the difference (since QualifierDeclRefExpr inherited DeclRefExpr). However, this reduces the number of top-level expression types that clients need to cope with, brings the implementation of DeclRefExpr into line with MemberExpr, and simplifies and unifies our handling of declaration references. Extended DeclRefExpr to (optionally) store explicitly-specified template arguments. This occurs when naming a declaration via a template-id (which will be stored in a TemplateIdRefExpr) that, following template argument deduction and (possibly) overload resolution, is replaced with a DeclRefExpr that refers to a template specialization but maintains the template arguments as written. llvm-svn: 84962
* Emit calls using the canonical prototype of the called function.John McCall2009-10-231-3/+5
| | | | llvm-svn: 84947
* Complete code gen for '.*' binary expression forFariborz Jahanian2009-10-221-0/+25
| | | | | | both scalar and aggregates. llvm-svn: 84910
* Expand on code gen. for pointer to data members so it worksFariborz Jahanian2009-10-211-3/+4
| | | | | | for base classe members as well. Test case enhanced for this. llvm-svn: 84780
* Code gen for pointer-to-datamember - WIP.Fariborz Jahanian2009-10-211-0/+21
| | | | llvm-svn: 84771
* Code-gen for CXXZeroInitValueExpr AST passedFariborz Jahanian2009-10-201-0/+14
| | | | | | as argument to a function call. Removes a FIXME. llvm-svn: 84694
* Handle emitting the assignment operator when the lhs is a reference. Fixes ↵Anders Carlsson2009-10-191-0/+10
| | | | | | PR5227. llvm-svn: 84518
* Twinify CodeGenFunction::CreateTempAllocaDaniel Dunbar2009-10-191-2/+2
| | | | llvm-svn: 84456
* When binding a reference to a temporary, it's important that other ↵Anders Carlsson2009-10-181-16/+22
| | | | | | temporaries created as on the RHS are destroyed before emitting the dtor for the temporary. llvm-svn: 84451
* HandleAnders Carlsson2009-10-151-3/+45
| | | | | | | | | | | | | struct A { }; struct B : A { }; void f() { const A& a = B(); } correctly. (This now does the offset conversion if necessary and calls the destructor when a goes out of scope). llvm-svn: 84162
* Simplify pointer creation with the new Type::getInt*Ptr methods.Benjamin Kramer2009-10-131-2/+1
| | | | llvm-svn: 83964
* There is no need to attach debug location info with alloca instruction.Devang Patel2009-10-121-5/+1
| | | | llvm-svn: 83913
* Add support to attach debug info to an instruction.Devang Patel2009-10-061-1/+5
| | | | | | This is not yet enabled. llvm-svn: 83399
OpenPOWER on IntegriCloud