summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/devirtualize-virtual-function-calls-final.cpp
Commit message (Collapse)AuthorAgeFilesLines
* When we're devirtualizing a method call, make sure the method has the ↵Eli Friedman2012-10-251-2/+1
| | | | | | | | correct IR type. Reported in the thread "devirtualisation appears to crash clang on covariant functions on ARM" on cfe-dev. llvm-svn: 166651
* A number of test cases assume that an "int" parameter or return valueUlrich Weigand2012-10-241-1/+1
| | | | | | | | | | | | will be represented in the IR as a plain "i32" type. This causes the tests to spuriously fail on platforms where int is not a 32-bit type, or where the ABI requires attributes like "signext" or "zeroext" to be used. This patch adds -triple or -target parameters to force those tests to use the i386-unknown-unknown target. llvm-svn: 166551
* Disable devirtualization when we have covariant returns. I will open a bugRafael Espindola2012-06-281-0/+34
| | | | | | for tracking this. llvm-svn: 159351
* Don't devirtualize calls when we don't have the correct type of the this pointerRafael Espindola2012-06-281-1/+20
| | | | | | | | | handy. It can be done, but we would have to build a derived-to-base cast during codegen to compute the correct this pointer. I will handle covariant returns next. llvm-svn: 159350
* Fix another issue with devirtualizing calls to final methods by passing themRafael Espindola2012-06-281-0/+26
| | | | | | | | the correct this pointer. There is some potential for sharing a bit more code with canDevirtualizeMemberFunctionCalls, but that can be done in an independent patch. llvm-svn: 159326
* During codegen of a virtual call we would extract any casts in the expressionRafael Espindola2012-06-261-1/+59
| | | | | | | | to see if we had an underlying final class or method, but we would then use the cast type to do the call, resulting in a direct call to the wrong method. llvm-svn: 159212
* When trying to get the most derived class, don't assume that we can ignore ↵Anders Carlsson2011-01-291-0/+12
| | | | | | all casts. We can only ignore derived-to-base and no-op casts. Fixes selfhost. llvm-svn: 124528
* When calling a virtual member function on a base class and the most derived ↵Anders Carlsson2011-01-291-0/+14
| | | | | | class is marked 'final', we can devirtualize the call. llvm-svn: 124524
* Get rid of the [[final]] C++0x attribute.Anders Carlsson2011-01-231-0/+25
llvm-svn: 124083
OpenPOWER on IntegriCloud