summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix typo spotted by MSVC.Benjamin Kramer2009-12-251-2/+2
| | | | | | GRExprEngine.cpp(1348) : warning C4305: 'argument' : truncation from 'clang::ProgramPoint::Kind' to 'bool' llvm-svn: 92154
* Minor optimization; emit proper unsupported messages for a couple of cases.Eli Friedman2009-12-253-6/+16
| | | | llvm-svn: 92153
* Some small improvements to dead code elimination; helps a bit onEli Friedman2009-12-252-1/+10
| | | | | | LLVM-Code-Symbols test. llvm-svn: 92152
* Make copy constructor elimination work in more cases; the case in questionEli Friedman2009-12-243-0/+14
| | | | | | here affects clang-on-clang. llvm-svn: 92151
* Implement support for converting to string at "natural precision", and fix someJohn McCall2009-12-243-20/+33
| | | | | | major bugs in long-precision conversion. llvm-svn: 92150
* Fix for PR5844. Be explicit about anonymous struct/class/union/namespaces in ↵Sam Weinig2009-12-242-5/+94
| | | | | | __PRETTY_FUNCTION__ predefined expression. llvm-svn: 92149
* Move a bunch of class related functions to CGClass.cpp, no functionality change.Anders Carlsson2009-12-242-774/+775
| | | | llvm-svn: 92148
* Sketch a simple new C++Tests suite for checking that llvm-gcc and clang generateDaniel Dunbar2009-12-243-0/+99
| | | | | | the same visible symbols, useful for finding ABI/Mangler/vtable/etc. issues. llvm-svn: 92147
* Move the two definitions of operator<< into namespace llvm, so theyDouglas Gregor2009-12-241-1/+4
| | | | | | | will be found by argument-dependent lookup. As with the previous commit, GCC is allowing ill-formed code. llvm-svn: 92146
* Pass the return value slot to all call exprs.Anders Carlsson2009-12-245-20/+29
| | | | llvm-svn: 92145
* Define the new operator<< for sets into namespace std, so thatDouglas Gregor2009-12-241-0/+4
| | | | | | | | argument-dependent lookup can find it. This is another case where an LLVM bug (not making operator<< visible) was masked by a GCC bug (looking in the global namespace when it shouldn't). llvm-svn: 92144
* Egregious, disgusting workaround for PR5866. We need to rework how weDouglas Gregor2009-12-243-3/+17
| | | | | | | | keep track of friends within templates, which will provide a real for PR5866. For now, this makes sure we don't do something entirely stupid with friends of specializations. llvm-svn: 92143
* Fill in the return value slot in CGExprAgg::VisitCallExpr. This takes us ↵Anders Carlsson2009-12-248-20/+51
| | | | | | halfway towards fixing PR5824. llvm-svn: 92142
* Add test case for PR5868, and improve location information slightly for ↵Douglas Gregor2009-12-243-1/+21
| | | | | | implicit "this" expressions llvm-svn: 92141
* Add a test for x86-64 struct returns under gc.Anders Carlsson2009-12-241-0/+31
| | | | llvm-svn: 92140
* When rebuilding a MemberExpr that refers to an anonymous union, beDouglas Gregor2009-12-241-1/+4
| | | | | | | sure to perform derived-to-base conversions on the base expression. Fixes PR5868. Proper testcase is coming soon. llvm-svn: 92139
* Pass ReturnValueSlot to EmitCall. No functionality change yet.Anders Carlsson2009-12-2411-26/+29
| | | | llvm-svn: 92138
* Fix -Asserts warning.Daniel Dunbar2009-12-241-2/+1
| | | | llvm-svn: 92137
* Add a ReturnValueSlot class. Change the argument order in EmitCall to match ↵Anders Carlsson2009-12-245-10/+25
| | | | | | the other overload better. llvm-svn: 92136
* When transforming CXXExprWithTemporaries and CXXBindTemporaryExprDouglas Gregor2009-12-244-21/+23
| | | | | | | | | expressions (e.g., for template instantiation), just transform the subexpressions and return those, since the temporary-related nodes will be implicitly regenerated. Fixes PR5867, but I said that before... llvm-svn: 92135
* Fix double-destruction assertion to account for temporaries in conditionalsDouglas Gregor2009-12-241-1/+2
| | | | llvm-svn: 92134
* Don't emit trailing semicolon.Daniel Dunbar2009-12-241-1/+1
| | | | llvm-svn: 92133
* Assert that we aren't trying to push the same C++ temporary onto the live ↵Douglas Gregor2009-12-241-0/+3
| | | | | | temporary stack twice. A little insurance against PR5867 surprising us again llvm-svn: 92132
* InitializationSequence handles binding to temporaries, so thatDouglas Gregor2009-12-242-3/+19
| | | | | | | | argument-passing doesn't have to. Fixes PR5867, where we were binding a temporary twice in the AST and, therefore, calling its destructor twice. llvm-svn: 92131
* Substantially optimize APFloat::toString() by doing a single large divide toJohn McCall2009-12-241-0/+37
| | | | | | | | | | | | cut the significand down to the desired precision *before* entering the core divmod loop. Makes the overall algorithm logarithmic in the exponent. There's still a lot of room for improvement here, but this gets the performance back down to acceptable-for-diagnostics levels, even for long doubles. negligible, even on long doubles. llvm-svn: 92130
* Fix the clang-on-clang build: APFloat reports underflow whenever we get aJohn McCall2009-12-241-1/+5
| | | | | | | denormal, but we only want to diagnose if we underflowed to zero. This allows people to write constants in the denormal range. llvm-svn: 92129
* Tweak the text of several main() diagnostics and punch a hole specifically forJohn McCall2009-12-243-7/+18
| | | | | | | | | | Darwin's sekrit fourth argument. This should probably be factored to let targets make target-specific decisions about what main() should look like. Fixes rdar://problem/7414990 or if different platforms have radically different ideas of what they want in llvm-svn: 92128
* Diagnose out-of-bounds floating-point constants. Fixes rdar://problem/6974641John McCall2009-12-245-25/+54
| | | | llvm-svn: 92127
* Add accessors for the largest-magnitude, smallest-magnitude, andJohn McCall2009-12-243-0/+365
| | | | | | | | smallest-normalized-magnitude values in a given FP semantics. Provide an APFloat-to-string conversion which I am quite ready to admit could be much more efficient. llvm-svn: 92126
* Set Remainder before Quotient in case Quotient and LHS alias. The newJohn McCall2009-12-241-1/+1
| | | | | | order should be immune to such problems. llvm-svn: 92124
* Remove some dead code.Mike Stump2009-12-241-29/+19
| | | | llvm-svn: 92123
* Cleanup some dead code.Mike Stump2009-12-241-3/+1
| | | | llvm-svn: 92122
* As Ted suggested, record the callsite information with the StackFrameContext.Zhongxing Xu2009-12-244-24/+46
| | | | llvm-svn: 92121
* Add analyzer test case for 'ForStmt' with condition variable.Ted Kremenek2009-12-241-0/+14
| | | | llvm-svn: 92120
* Enhance dataflow analyses to recognize branch statements in the CFG used as ↵Ted Kremenek2009-12-243-1/+44
| | | | | | hooks for the initialization of condition variables. llvm-svn: 92119
* Don't set hidden for a non-external symbol as that would make it extenal.Mike Stump2009-12-241-1/+29
| | | | | | Refine codegen for visibility and hidden. WIP. llvm-svn: 92118
* Fix for bug 5691.David Chisnall2009-12-241-6/+24
| | | | | | | | This fixes throwing exceptions inside @catch blocks nested inside outer @try blocks and also fixes jumping from an inner @finally to an outer @finally (via any relevant @catch blocks). The code exhibiting this bug was based on code from CGObjCMac. I believe that this bug may still be present on the Mac runtimes, although the test case in the bug contains a few GNUisms and won't compile without some minor tweaks with Apple's libobjc. llvm-svn: 92117
* Inter-procedural analysis: now we can return from the callee.Zhongxing Xu2009-12-242-1/+42
| | | | llvm-svn: 92116
* Fix bug I just introduced in ForStmt::child_end() where we could iterate off ↵Ted Kremenek2009-12-242-3/+3
| | | | | | into garbage values. llvm-svn: 92115
* Teach GRExprEngine to handle the initialization of the condition variable of ↵Ted Kremenek2009-12-241-0/+6
| | | | | | a ForStmt. llvm-svn: 92114
* Add CFG support for the initializer of the condition variable of a ForStmt.Ted Kremenek2009-12-241-0/+13
| | | | llvm-svn: 92113
* Coelesce 'DoDestroy()' methods in Stmt.cpp, and modify the child_iterator ↵Ted Kremenek2009-12-242-65/+73
| | | | | | returned by ForStmt to include the initializer of the condition variable. llvm-svn: 92112
* CFG tweak: in a WhileStmt, the condition variable initializer is evaluated ↵Ted Kremenek2009-12-242-23/+23
| | | | | | every time the condition is checked. llvm-svn: 92111
* Testcase for llvm-gcc checkin 92108.Dale Johannesen2009-12-241-0/+16
| | | | llvm-svn: 92110
* Fix recent regression caught by g++.old-deja/g++.mike/eh19.C.Mike Stump2009-12-241-0/+20
| | | | llvm-svn: 92109
* handle equality memcmp of 8 bytes on x86-64 with two unaligned loads and a Chris Lattner2009-12-242-23/+93
| | | | | | | | compare. On other targets we end up with a call to memcmp because we don't want 16 individual byte loads. We should be able to use movups as well, but we're failing to select the generated icmp. llvm-svn: 92107
* Teach GRExprEngine to handle the initialization of the condition variable of ↵Ted Kremenek2009-12-242-0/+21
| | | | | | a WhileStmt. llvm-svn: 92106
* Add CFG support for the initializer of the condition variable of a WhileStmt.Ted Kremenek2009-12-241-1/+14
| | | | llvm-svn: 92105
* Modify WhileStmt::child_begin()/child_end() to include the initializer for ↵Ted Kremenek2009-12-242-2/+19
| | | | | | the condition variable. llvm-svn: 92104
* Add test case for PR 4358.Ted Kremenek2009-12-241-0/+22
| | | | llvm-svn: 92103
OpenPOWER on IntegriCloud