Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:36:40

0001 //===- OperationKinds.h - Operation enums -----------------------*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 //
0009 // This file enumerates the different kinds of operations that can be
0010 // performed by various expressions.
0011 //
0012 //===----------------------------------------------------------------------===//
0013 
0014 #ifndef LLVM_CLANG_AST_OPERATIONKINDS_H
0015 #define LLVM_CLANG_AST_OPERATIONKINDS_H
0016 
0017 namespace clang {
0018 
0019 /// CastKind - The kind of operation required for a conversion.
0020 enum CastKind {
0021 #define CAST_OPERATION(Name) CK_##Name,
0022 #include "clang/AST/OperationKinds.def"
0023 };
0024 
0025 enum BinaryOperatorKind {
0026 #define BINARY_OPERATION(Name, Spelling) BO_##Name,
0027 #include "clang/AST/OperationKinds.def"
0028 };
0029 
0030 enum UnaryOperatorKind {
0031 #define UNARY_OPERATION(Name, Spelling) UO_##Name,
0032 #include "clang/AST/OperationKinds.def"
0033 };
0034 
0035 /// The kind of bridging performed by the Objective-C bridge cast.
0036 enum ObjCBridgeCastKind {
0037   /// Bridging via __bridge, which does nothing but reinterpret
0038   /// the bits.
0039   OBC_Bridge,
0040   /// Bridging via __bridge_transfer, which transfers ownership of an
0041   /// Objective-C pointer into ARC.
0042   OBC_BridgeTransfer,
0043   /// Bridging via __bridge_retain, which makes an ARC object available
0044   /// as a +1 C pointer.
0045   OBC_BridgeRetained
0046 };
0047 
0048 }  // end namespace clang
0049 
0050 #endif