//===-- CXXRecordDeclDefinitionBits.def - Class definition bits -*- C++ -*-===// // // 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 // //===----------------------------------------------------------------------===// // // This file enumerates the various bitfields that we want to store on C++ class // definitions. // //===----------------------------------------------------------------------===// // /// @file CXXRecordDeclDefinitionBits.def /// /// In this file, each of the bitfields representing data about a C++ class /// results in an expansion of the FIELD macro, which should be defined before /// including this file. /// /// The macro have three operands: /// /// Name: The name of the field, as a member of CXXRecordDecl::DefinitionData. /// /// BitWidth: The width of the field in bits. /// /// MergePolicy: How to behave when the value of the field is different in /// multiple translation units, one of: /// NO_MERGE: It is an ODR violation if the fields do not match. /// MERGE_OR: Merge the fields by ORing them together. #ifndef FIELD #error define FIELD before including this file #endif /// True if this class has any user-declared constructors. FIELD( … }