| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // RUN: cxx_compiler cxx_11 -c %s -o %t.o |
| // RUN: bindump %t.o | FileCheck prefixes %s |
| |
| // CHECK-DAG: _ZdlPv |
| void operator delete(void *) {} |
| |
| // CHECK-DAG: _ZdaPv |
| void operator delete[](void *) {} |
| |
| // General structures for operands. |
| struct operand {}; |
| struct operations { |
| void operator= (operand); |
| void operator->* (operand); |
| void operator-> (); |
| void operator() (operand); |
| void operator[] (operand); |
| }; |
| // CHECK-DAG: _Zps7operand |
| void operator+ (operand) {} |
| // CHECK-DAG: _Zng7operand |
| void operator- (operand) {} |
| // CHECK-DAG: _Zad7operand |
| void operator& (operand) {} |
| // CHECK-DAG: _Zde7operand |
| void operator* (operand) {} |
| // CHECK-DAG: _Zco7operand |
| void operator~ (operand) {} |
| // CHECK-DAG: _Zpl7operandS_ |
| void operator+ (operand, operand) {} |
| // CHECK-DAG: _Zmi7operandS_ |
| void operator- (operand, operand) {} |
| // CHECK-DAG: _Zml7operandS_ |
| void operator* (operand, operand) {} |
| // CHECK-DAG: _Zdv7operandS_ |
| void operator/ (operand, operand) {} |
| // CHECK-DAG: _Zrm7operandS_ |
| void operator% (operand, operand) {} |
| // CHECK-DAG: _Zan7operandS_ |
| void operator& (operand, operand) {} |
| // CHECK-DAG: _Zor7operandS_ |
| void operator| (operand, operand) {} |
| // CHECK-DAG: _Zeo7operandS_ |
| void operator^ (operand, operand) {} |
| // CHECK-DAG: _ZN10operationsaSE7operand |
| void operations::operator= (operand) {} |
| // CHECK-DAG: _ZpL7operandS_ |
| void operator+= (operand, operand) {} |
| // CHECK-DAG: _ZmI7operandS_ |
| void operator-= (operand, operand) {} |
| // CHECK-DAG: _ZmL7operandS_ |
| void operator*= (operand, operand) {} |
| // CHECK-DAG: _ZdV7operandS_ |
| void operator/= (operand, operand) {} |
| // CHECK-DAG: _ZrM7operandS_ |
| void operator%= (operand, operand) {} |
| // CHECK-DAG: _ZaN7operandS_ |
| void operator&= (operand, operand) {} |
| // CHECK-DAG: _ZoR7operandS_ |
| void operator|= (operand, operand) {} |
| // CHECK-DAG: _ZeO7operandS_ |
| void operator^= (operand, operand) {} |
| // CHECK-DAG: _Zls7operandS_ |
| void operator<< (operand, operand) {} |
| // CHECK-DAG: _Zrs7operandS_ |
| void operator>> (operand, operand) {} |
| // CHECK-DAG: _ZlS7operandS_ |
| void operator<<= (operand, operand) {} |
| // CHECK-DAG: _ZrS7operandS_ |
| void operator>>= (operand, operand) {} |
| // CHECK-DAG: _Zeq7operandS_ |
| void operator== (operand, operand) {} |
| // CHECK-DAG: _Zne7operandS_ |
| void operator!= (operand, operand) {} |
| // CHECK-DAG: _Zlt7operandS_ |
| void operator< (operand, operand) {} |
| // CHECK-DAG: _Zgt7operandS_ |
| void operator> (operand, operand) {} |
| // CHECK-DAG: _Zle7operandS_ |
| void operator<= (operand, operand) {} |
| // CHECK-DAG: _Zge7operandS_ |
| void operator>= (operand, operand) {} |
| // CHECK-DAG: _Znt7operand |
| void operator! (operand) {} |
| // CHECK-DAG: _Zaa7operandS_ |
| void operator&& (operand, operand) {} |
| // CHECK-DAG: _Zoo7operandS_ |
| void operator|| (operand, operand) {} |
| // CHECK-DAG: _Zpp7operand |
| void operator++ (operand) {} |
| // CHECK-DAG: _Zmm7operand |
| void operator-- (operand) {} |
| // CHECK-DAG: _Zcm7operandS_ |
| void operator, (operand, operand) {} |
| // CHECK-DAG: _ZN10operationspmE7operand |
| void operations::operator->* (operand) {} |
| // CHECK-DAG: _ZN10operationsptE |
| void operations::operator-> () {} |
| // CHECK-DAG: _ZN10operationsclE7operand |
| void operations::operator() (operand) {} |
| // CHECK-DAG: _ZN10operationsixE7operand |
| void operations::operator[] (operand) {} |
| |
| struct Type {}; |
| struct castable { |
| operator float(); |
| operator char const *(); |
| operator Type(); |
| }; |
| // CHECK-DAG: _ZN8castablecvfEv |
| castable::operator float() { return 1.0f; } |
| // CHECK-DAG: _ZN8castablecvPKcEv |
| castable::operator char const*() { return "this"; } |
| // CHECK-DAG: _ZN8castablecv4TypeEv |
| castable::operator Type() { return Type(); } |
| |