summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/member-function-pointers.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [WebAssembly] Initial WebAssembly support in clangDan Gohman2015-09-031-0/+2
| | | | | | | | | | This implements basic support for compiling (though not yet assembling or linking) for a WebAssembly target. Note that ABI details are not yet finalized, and may change. Differential Revision: http://reviews.llvm.org/D12002 llvm-svn: 246814
* Update Clang tests to handle explicitly typed load changes in LLVM.David Blaikie2015-02-271-2/+2
| | | | llvm-svn: 230795
* Change representation of member function pointers for MIPS targetsZoran Jovanovic2015-02-181-0/+2
| | | | | | Differential Revision: http://reviews.llvm.org/D7148 llvm-svn: 229680
* CHECK-LABEL-ify some code gen tests to improve diagnostic experience when ↵Stephen Lin2013-08-151-1/+1
| | | | | | tests fail. llvm-svn: 188447
* Use ARM-style representation for C++ method pointers under PNaCl/EmscriptenMark Seaborn2013-07-241-0/+3
| | | | | | | | | | | | | | | | | | | Before this change, Clang uses the x86 representation for C++ method pointers when generating code for PNaCl. However, the resulting code will assume that function pointers are 0 mod 2. This assumption is not safe for PNaCl, where function pointers could have any value (especially in future sandboxing models). So, switch to using the ARM representation for PNaCl code, which makes no assumptions about the alignment of function pointers. Since we're changing the "le32" target, this change also applies to Emscripten. The change is beneficial for Emscripten too. Emscripten has a workaround to make function pointers 0 mod 2. This change would allow the workaround to be removed. See: https://code.google.com/p/nativeclient/issues/detail?id=3450 llvm-svn: 187051
* Restructure some of the member-pointer tests, implicitlyJohn McCall2012-05-011-52/+67
| | | | | | | | removing some that were added without a triple (and moving their tests into files that appropriately test multiple architectures). llvm-svn: 155920
* Split reinterpret_casts of member pointers out from CK_BitCast; thisJohn McCall2012-02-151-0/+40
| | | | | | | | | | | | | | | | | | | | | is general goodness because representations of member pointers are not always equivalent across member pointer types on all ABIs (even though this isn't really standard-endorsed). Take advantage of the new information to teach IR-generation how to do these reinterprets in constant initializers. Make sure this works when intermingled with hierarchy conversions (although this is not part of our motivating use case). Doing this in the constant-evaluator would probably have been better, but that would require a *lot* of extra structure in the representation of constant member pointers: you'd really have to track an arbitrary chain of hierarchy conversions and reinterpretations in order to get this right. Ultimately, this seems less complex. I also wasn't quite sure how to extend the constant evaluator to handle foldings that we don't actually want to treat as extended constant expressions. llvm-svn: 150551
* Update clang tests for r137527.Eli Friedman2011-08-121-1/+1
| | | | llvm-svn: 137535
* clang side to match the LLVM IR type system rewrite patch.Chris Lattner2011-07-091-22/+22
| | | | llvm-svn: 134831
* Reorganize the emission of (unfoldable) constant casts a bit, andJohn McCall2011-03-151-0/+23
| | | | | | | make sure that upcasts of member pointer types are covered as constants. Fixed rdar://problem/9130221 llvm-svn: 127702
* Abstract out everything having to do with member pointers into the ABIJohn McCall2010-08-231-2/+2
| | | | | | | | | | | class; they should just be completely opaque throughout IR gen now, although I haven't really audited that. Fix a bug apparently inherited from gcc-4.2 where we failed to null-check member data pointers when performing derived-to-base or base-to-derived conversions on them. llvm-svn: 111789
* Eliminate a stale assertion. Fixes Clang self-host.Douglas Gregor2010-08-221-0/+11
| | | | llvm-svn: 111782
* Clean up a very silly use of first-class aggregates.John McCall2010-08-221-8/+4
| | | | llvm-svn: 111777
* Experiment with using first-class aggregates to represent member functionJohn McCall2010-08-221-30/+22
| | | | | | | | | | pointers. I find the resulting code to be substantially cleaner, and it makes it very easy to use the same APIs for data member pointers (which I have conscientiously avoided here), and it avoids a plethora of potential inefficiencies due to excessive memory copying, but we'll have to see if it actually works. llvm-svn: 111776
* Abstract out member-pointer creation. I'm really unhappy about the currentJohn McCall2010-08-221-0/+20
| | | | | | | | duplication between the constant and non-constant paths in all of this. Implement ARM ABI semantics for member pointer constants and conversion. llvm-svn: 111772
* If we're generating code to create a pointer-to-member functionDouglas Gregor2010-05-031-0/+6
| | | | | | | aggregate and the result of the aggregate is unused, bail out early. Fixes PR7027. llvm-svn: 102942
* When computing the address of a virtual member function pointer, use the ↵Anders Carlsson2010-05-031-10/+21
| | | | | | pointer width instead of hardcoding for 64-bit. llvm-svn: 102921
* Use the right type when taking the address of a non-virtual member function ↵Anders Carlsson2010-02-071-3/+17
| | | | | | pointer. Fixes PR6258. llvm-svn: 95524
* Calculate offset correctly when taking the address of a virtual member function.Anders Carlsson2010-02-041-4/+13
| | | | llvm-svn: 95305
* Make the AST explicitly represent the cast of the first operand of a Eli Friedman2010-01-161-0/+11
| | | | | | pointer-to-member operator. llvm-svn: 93592
* When emitting member function pointers, use the canonical decl if the member ↵Anders Carlsson2010-01-051-0/+11
| | | | | | function is virtual. Fixes PR5940. llvm-svn: 92680
* Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'.Daniel Dunbar2009-12-151-1/+1
| | | | | | | | | - This is designed to make it obvious that %clang_cc1 is a "test variable" which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it can be useful to redefine what gets run as 'clang -cc1' (for example, to set a default target). llvm-svn: 91446
* 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
* Fix for PR5718: implement equality comparisons for member function pointers.Eli Friedman2009-12-111-0/+8
| | | | llvm-svn: 91108
* Some member pointer casting tests.Eli Friedman2009-11-271-0/+5
| | | | llvm-svn: 89989
* Convert the && and || operands to bool using standard conversions. Fixes PR5593.Anders Carlsson2009-11-231-0/+9
| | | | llvm-svn: 89704
* Handle converting member pointers to bool.Anders Carlsson2009-11-231-0/+4
| | | | llvm-svn: 89692
* Fix some tests in -Asserts mode.Daniel Dunbar2009-11-111-3/+3
| | | | | | | | | | | | | - FileCheck is a *huuuuge* improvement here. - Still feels like we could use a better tool for this though, either teach llvm-dis to spit out the FileCheck syntax, or provide another tool to turn a .ll into a "matchable" input. - Also on my Christmas list is better FileCheck diagnostics with missing variables or mismatches. llvm-svn: 86800
* Use CK_BitCast for member function pointer casts. Fixes PR5138.Anders Carlsson2009-10-181-0/+16
| | | | llvm-svn: 84438
* Don't assume that the LHS and RHS of a member pointer expression is a ↵Anders Carlsson2009-10-131-0/+17
| | | | | | DeclRefExpr. Fixes PR5177. llvm-svn: 83986
* Implement code generation of member function pointer calls. Fixes PR5121.Anders Carlsson2009-10-031-0/+5
| | | | llvm-svn: 83271
* Teach AggExprEmitter about pointers to member functions.Anders Carlsson2009-10-031-1/+15
| | | | llvm-svn: 83266
* Handle base-to-derived casts of member function pointers in CGExprConstant.cppAnders Carlsson2009-10-031-0/+6
| | | | llvm-svn: 83265
* Handle members to function pointers in CGExprConstant.Anders Carlsson2009-10-031-4/+10
| | | | llvm-svn: 83264
* Rewrite member function pointer test not to rely on -O2.Anders Carlsson2009-10-031-11/+11
| | | | llvm-svn: 83262
* Forgot test.Anders Carlsson2009-09-291-0/+25
llvm-svn: 83044
OpenPOWER on IntegriCloud