Skip to content

Instantly share code, notes, and snippets.

@vitalybuka

vitalybuka/t.cpp Secret

Created February 24, 2023 18:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vitalybuka/82f6c5b2ab51ee027df13c2c35a95ffb to your computer and use it in GitHub Desktop.
Save vitalybuka/82f6c5b2ab51ee027df13c2c35a95ffb to your computer and use it in GitHub Desktop.
slow ubsan
This file has been truncated, but you can view the full file.
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/unittests/Tooling/SourceCodeTest.cpp"
# 1 "<built-in>" 1
# 1 "<built-in>" 3
# 436 "<built-in>" 3
# 1 "<command line>" 1
# 1 "<built-in>" 2
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/unittests/Tooling/SourceCodeTest.cpp" 2
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/Tooling/Transformer/SourceCode.h" 1
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/Tooling/Transformer/SourceCode.h"
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/AST/ASTContext.h" 1
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/AST/ASTContext.h"
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/AST/ASTFwd.h" 1
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/AST/ASTFwd.h"
namespace clang {
class Decl;
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/DeclNodes.inc" 1
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/DeclNodes.inc"
class AccessSpecDecl;
class BlockDecl;
class CapturedDecl;
class ClassScopeFunctionSpecializationDecl;
class EmptyDecl;
class ExportDecl;
class ExternCContextDecl;
class FileScopeAsmDecl;
class FriendDecl;
class FriendTemplateDecl;
class ImplicitConceptSpecializationDecl;
class ImportDecl;
class LifetimeExtendedTemporaryDecl;
class LinkageSpecDecl;
class NamedDecl;
class BaseUsingDecl;
class UsingDecl;
class UsingEnumDecl;
# 131 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/DeclNodes.inc"
class HLSLBufferDecl;
class LabelDecl;
class NamespaceDecl;
class NamespaceAliasDecl;
class ObjCCompatibleAliasDecl;
class ObjCContainerDecl;
class ObjCCategoryDecl;
class ObjCImplDecl;
class ObjCCategoryImplDecl;
class ObjCImplementationDecl;
# 191 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/DeclNodes.inc"
class ObjCInterfaceDecl;
class ObjCProtocolDecl;
# 207 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/DeclNodes.inc"
class ObjCMethodDecl;
class ObjCPropertyDecl;
class TemplateDecl;
class BuiltinTemplateDecl;
class ConceptDecl;
class RedeclarableTemplateDecl;
class ClassTemplateDecl;
class FunctionTemplateDecl;
class TypeAliasTemplateDecl;
class VarTemplateDecl;
# 267 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/DeclNodes.inc"
class TemplateTemplateParmDecl;
# 277 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/DeclNodes.inc"
class TypeDecl;
class TagDecl;
class EnumDecl;
class RecordDecl;
class CXXRecordDecl;
class ClassTemplateSpecializationDecl;
class ClassTemplatePartialSpecializationDecl;
# 325 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/DeclNodes.inc"
class TemplateTypeParmDecl;
class TypedefNameDecl;
class ObjCTypeParamDecl;
class TypeAliasDecl;
class TypedefDecl;
# 357 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/DeclNodes.inc"
class UnresolvedUsingTypenameDecl;
# 367 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/DeclNodes.inc"
class UnresolvedUsingIfExistsDecl;
class UsingDirectiveDecl;
class UsingPackDecl;
class UsingShadowDecl;
class ConstructorUsingShadowDecl;
# 399 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/DeclNodes.inc"
class ValueDecl;
class BindingDecl;
class DeclaratorDecl;
class FieldDecl;
class ObjCAtDefsFieldDecl;
class ObjCIvarDecl;
# 433 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/DeclNodes.inc"
class FunctionDecl;
class CXXDeductionGuideDecl;
class CXXMethodDecl;
class CXXConstructorDecl;
class CXXConversionDecl;
class CXXDestructorDecl;
# 473 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/DeclNodes.inc"
class MSPropertyDecl;
class NonTypeTemplateParmDecl;
class VarDecl;
class DecompositionDecl;
class ImplicitParamDecl;
class OMPCapturedExprDecl;
class ParmVarDecl;
class VarTemplateSpecializationDecl;
class VarTemplatePartialSpecializationDecl;
# 535 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/DeclNodes.inc"
class EnumConstantDecl;
class IndirectFieldDecl;
class MSGuidDecl;
class OMPDeclareMapperDecl;
class OMPDeclareReductionDecl;
class TemplateParamObjectDecl;
class UnnamedGlobalConstantDecl;
class UnresolvedUsingValueDecl;
# 591 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/DeclNodes.inc"
class OMPAllocateDecl;
class OMPRequiresDecl;
class OMPThreadPrivateDecl;
class ObjCPropertyImplDecl;
class PragmaCommentDecl;
class PragmaDetectMismatchDecl;
class RequiresExprBodyDecl;
class StaticAssertDecl;
class TopLevelStmtDecl;
class TranslationUnitDecl;
# 22 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/AST/ASTFwd.h" 2
class Stmt;
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/StmtNodes.inc" 1
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/StmtNodes.inc"
class AsmStmt;
class GCCAsmStmt;
class MSAsmStmt;
# 43 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/StmtNodes.inc"
class BreakStmt;
class CXXCatchStmt;
class CXXForRangeStmt;
class CXXTryStmt;
class CapturedStmt;
class CompoundStmt;
class ContinueStmt;
class CoreturnStmt;
class CoroutineBodyStmt;
class DeclStmt;
class DoStmt;
class ForStmt;
class GotoStmt;
class IfStmt;
class IndirectGotoStmt;
class MSDependentExistsStmt;
class NullStmt;
class OMPCanonicalLoop;
class OMPExecutableDirective;
class OMPAtomicDirective;
class OMPBarrierDirective;
class OMPCancelDirective;
class OMPCancellationPointDirective;
class OMPCriticalDirective;
class OMPDepobjDirective;
class OMPDispatchDirective;
class OMPErrorDirective;
class OMPFlushDirective;
class OMPInteropDirective;
class OMPLoopBasedDirective;
class OMPLoopDirective;
class OMPDistributeDirective;
class OMPDistributeParallelForDirective;
class OMPDistributeParallelForSimdDirective;
class OMPDistributeSimdDirective;
class OMPForDirective;
class OMPForSimdDirective;
class OMPGenericLoopDirective;
class OMPMaskedTaskLoopDirective;
class OMPMaskedTaskLoopSimdDirective;
class OMPMasterTaskLoopDirective;
class OMPMasterTaskLoopSimdDirective;
class OMPParallelForDirective;
class OMPParallelForSimdDirective;
class OMPParallelGenericLoopDirective;
class OMPParallelMaskedTaskLoopDirective;
class OMPParallelMaskedTaskLoopSimdDirective;
class OMPParallelMasterTaskLoopDirective;
class OMPParallelMasterTaskLoopSimdDirective;
class OMPSimdDirective;
class OMPTargetParallelForSimdDirective;
class OMPTargetParallelGenericLoopDirective;
class OMPTargetSimdDirective;
class OMPTargetTeamsDistributeDirective;
class OMPTargetTeamsDistributeParallelForDirective;
class OMPTargetTeamsDistributeParallelForSimdDirective;
class OMPTargetTeamsDistributeSimdDirective;
class OMPTargetTeamsGenericLoopDirective;
class OMPTaskLoopDirective;
class OMPTaskLoopSimdDirective;
class OMPTeamsDistributeDirective;
class OMPTeamsDistributeParallelForDirective;
class OMPTeamsDistributeParallelForSimdDirective;
class OMPTeamsDistributeSimdDirective;
class OMPTeamsGenericLoopDirective;
# 431 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/StmtNodes.inc"
class OMPLoopTransformationDirective;
class OMPTileDirective;
class OMPUnrollDirective;
# 455 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/StmtNodes.inc"
class OMPMaskedDirective;
class OMPMasterDirective;
class OMPMetaDirective;
class OMPOrderedDirective;
class OMPParallelDirective;
class OMPParallelMaskedDirective;
class OMPParallelMasterDirective;
class OMPParallelSectionsDirective;
class OMPScanDirective;
class OMPSectionDirective;
class OMPSectionsDirective;
class OMPSingleDirective;
class OMPTargetDataDirective;
class OMPTargetDirective;
class OMPTargetEnterDataDirective;
class OMPTargetExitDataDirective;
class OMPTargetParallelDirective;
class OMPTargetParallelForDirective;
class OMPTargetTeamsDirective;
class OMPTargetUpdateDirective;
class OMPTaskDirective;
class OMPTaskgroupDirective;
class OMPTaskwaitDirective;
class OMPTaskyieldDirective;
class OMPTeamsDirective;
# 609 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/StmtNodes.inc"
class ObjCAtCatchStmt;
class ObjCAtFinallyStmt;
class ObjCAtSynchronizedStmt;
class ObjCAtThrowStmt;
class ObjCAtTryStmt;
class ObjCAutoreleasePoolStmt;
class ObjCForCollectionStmt;
class ReturnStmt;
class SEHExceptStmt;
class SEHFinallyStmt;
class SEHLeaveStmt;
class SEHTryStmt;
class SwitchCase;
class CaseStmt;
class DefaultStmt;
# 701 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/StmtNodes.inc"
class SwitchStmt;
class ValueStmt;
class AttributedStmt;
class Expr;
class AbstractConditionalOperator;
class BinaryConditionalOperator;
class ConditionalOperator;
# 741 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/StmtNodes.inc"
class AddrLabelExpr;
class ArrayInitIndexExpr;
class ArrayInitLoopExpr;
class ArraySubscriptExpr;
class ArrayTypeTraitExpr;
class AsTypeExpr;
class AtomicExpr;
class BinaryOperator;
class CompoundAssignOperator;
# 797 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/StmtNodes.inc"
class BlockExpr;
class CXXBindTemporaryExpr;
class CXXBoolLiteralExpr;
class CXXConstructExpr;
class CXXTemporaryObjectExpr;
# 829 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/StmtNodes.inc"
class CXXDefaultArgExpr;
class CXXDefaultInitExpr;
class CXXDeleteExpr;
class CXXDependentScopeMemberExpr;
class CXXFoldExpr;
class CXXInheritedCtorInitExpr;
class CXXNewExpr;
class CXXNoexceptExpr;
class CXXNullPtrLiteralExpr;
class CXXParenListInitExpr;
class CXXPseudoDestructorExpr;
class CXXRewrittenBinaryOperator;
class CXXScalarValueInitExpr;
class CXXStdInitializerListExpr;
class CXXThisExpr;
class CXXThrowExpr;
class CXXTypeidExpr;
class CXXUnresolvedConstructExpr;
class CXXUuidofExpr;
class CallExpr;
class CUDAKernelCallExpr;
class CXXMemberCallExpr;
class CXXOperatorCallExpr;
class UserDefinedLiteral;
# 975 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/StmtNodes.inc"
class CastExpr;
class ExplicitCastExpr;
class BuiltinBitCastExpr;
class CStyleCastExpr;
class CXXFunctionalCastExpr;
class CXXNamedCastExpr;
class CXXAddrspaceCastExpr;
class CXXConstCastExpr;
class CXXDynamicCastExpr;
class CXXReinterpretCastExpr;
class CXXStaticCastExpr;
# 1039 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/StmtNodes.inc"
class ObjCBridgedCastExpr;
# 1049 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/StmtNodes.inc"
class ImplicitCastExpr;
# 1059 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/StmtNodes.inc"
class CharacterLiteral;
class ChooseExpr;
class CompoundLiteralExpr;
class ConceptSpecializationExpr;
class ConvertVectorExpr;
class CoroutineSuspendExpr;
class CoawaitExpr;
class CoyieldExpr;
# 1109 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/StmtNodes.inc"
class DeclRefExpr;
class DependentCoawaitExpr;
class DependentScopeDeclRefExpr;
class DesignatedInitExpr;
class DesignatedInitUpdateExpr;
class ExpressionTraitExpr;
class ExtVectorElementExpr;
class FixedPointLiteral;
class FloatingLiteral;
class FullExpr;
class ConstantExpr;
class ExprWithCleanups;
# 1183 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/StmtNodes.inc"
class FunctionParmPackExpr;
class GNUNullExpr;
class GenericSelectionExpr;
class ImaginaryLiteral;
class ImplicitValueInitExpr;
class InitListExpr;
class IntegerLiteral;
class LambdaExpr;
class MSPropertyRefExpr;
class MSPropertySubscriptExpr;
class MaterializeTemporaryExpr;
class MatrixSubscriptExpr;
class MemberExpr;
class NoInitExpr;
class OMPArraySectionExpr;
class OMPArrayShapingExpr;
class OMPIteratorExpr;
class ObjCArrayLiteral;
class ObjCAvailabilityCheckExpr;
class ObjCBoolLiteralExpr;
class ObjCBoxedExpr;
class ObjCDictionaryLiteral;
class ObjCEncodeExpr;
class ObjCIndirectCopyRestoreExpr;
class ObjCIsaExpr;
class ObjCIvarRefExpr;
class ObjCMessageExpr;
class ObjCPropertyRefExpr;
class ObjCProtocolExpr;
class ObjCSelectorExpr;
class ObjCStringLiteral;
class ObjCSubscriptRefExpr;
class OffsetOfExpr;
class OpaqueValueExpr;
class OverloadExpr;
class UnresolvedLookupExpr;
class UnresolvedMemberExpr;
# 1407 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/StmtNodes.inc"
class PackExpansionExpr;
class ParenExpr;
class ParenListExpr;
class PredefinedExpr;
class PseudoObjectExpr;
class RecoveryExpr;
class RequiresExpr;
class SYCLUniqueStableNameExpr;
class ShuffleVectorExpr;
class SizeOfPackExpr;
class SourceLocExpr;
class StmtExpr;
class StringLiteral;
class SubstNonTypeTemplateParmExpr;
class SubstNonTypeTemplateParmPackExpr;
class TypeTraitExpr;
class TypoExpr;
class UnaryExprOrTypeTraitExpr;
class UnaryOperator;
class VAArgExpr;
# 1531 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/StmtNodes.inc"
class LabelStmt;
# 1541 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/StmtNodes.inc"
class WhileStmt;
# 25 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/AST/ASTFwd.h" 2
class Type;
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/TypeNodes.inc" 1
# 21 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/AST/TypeNodes.inc"
class AdjustedType;
class DecayedType;
class ArrayType;
class ConstantArrayType;
class DependentSizedArrayType;
class IncompleteArrayType;
class VariableArrayType;
class AtomicType;
class AttributedType;
class BTFTagAttributedType;
class BitIntType;
class BlockPointerType;
class BuiltinType;
class ComplexType;
class DecltypeType;
class DeducedType;
class AutoType;
class DeducedTemplateSpecializationType;
class DependentAddressSpaceType;
class DependentBitIntType;
class DependentNameType;
class DependentSizedExtVectorType;
class DependentTemplateSpecializationType;
class DependentVectorType;
class ElaboratedType;
class FunctionType;
class FunctionNoProtoType;
class FunctionProtoType;
class InjectedClassNameType;
class MacroQualifiedType;
class MatrixType;
class ConstantMatrixType;
class DependentSizedMatrixType;
class MemberPointerType;
class ObjCObjectPointerType;
class ObjCObjectType;
class ObjCInterfaceType;
class ObjCTypeParamType;
class PackExpansionType;
class ParenType;
class PipeType;
class PointerType;
class ReferenceType;
class LValueReferenceType;
class RValueReferenceType;
class SubstTemplateTypeParmPackType;
class SubstTemplateTypeParmType;
class TagType;
class EnumType;
class RecordType;
class TemplateSpecializationType;
class TemplateTypeParmType;
class TypeOfExprType;
class TypeOfType;
class TypedefType;
class UnaryTransformType;
class UnresolvedUsingType;
class UsingType;
class VectorType;
class ExtVectorType;
# 28 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/AST/ASTFwd.h" 2
class CXXCtorInitializer;
class OMPClause;
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/include/llvm/Frontend/OpenMP/OMP.inc" 1
# 4640 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/include/llvm/Frontend/OpenMP/OMP.inc"
class OMPAcqRelClause;
class OMPAcquireClause;
class OMPAffinityClause;
class OMPAlignClause;
class OMPAlignedClause;
class OMPAllocateClause;
class OMPAllocatorClause;
class OMPAtClause;
class OMPAtomicDefaultMemOrderClause;
class OMPBindClause;
class OMPCaptureClause;
class OMPCollapseClause;
class OMPCompareClause;
class OMPCopyprivateClause;
class OMPCopyinClause;
class OMPDefaultClause;
class OMPDefaultmapClause;
class OMPDependClause;
class OMPDepobjClause;
class OMPDestroyClause;
class OMPDetachClause;
class OMPDeviceClause;
class OMPDistScheduleClause;
class OMPDynamicAllocatorsClause;
class OMPExclusiveClause;
class OMPFilterClause;
class OMPFinalClause;
class OMPFirstprivateClause;
class OMPFlushClause;
class OMPFromClause;
class OMPFullClause;
class OMPGrainsizeClause;
class OMPHasDeviceAddrClause;
class OMPHintClause;
class OMPIfClause;
class OMPInReductionClause;
class OMPInclusiveClause;
class OMPInitClause;
class OMPIsDevicePtrClause;
class OMPLastprivateClause;
class OMPLinearClause;
class OMPMapClause;
class OMPMergeableClause;
class OMPMessageClause;
class OMPNogroupClause;
class OMPNowaitClause;
class OMPNocontextClause;
class OMPNontemporalClause;
class OMPNovariantsClause;
class OMPNumTasksClause;
class OMPNumTeamsClause;
class OMPNumThreadsClause;
class OMPXDynCGroupMemClause;
class OMPOrderClause;
class OMPOrderedClause;
class OMPPartialClause;
class OMPPriorityClause;
class OMPPrivateClause;
class OMPProcBindClause;
class OMPReadClause;
class OMPReductionClause;
class OMPRelaxedClause;
class OMPReleaseClause;
class OMPReverseOffloadClause;
class OMPSafelenClause;
class OMPScheduleClause;
class OMPSeqCstClause;
class OMPSeverityClause;
class OMPSharedClause;
class OMPSIMDClause;
class OMPSimdlenClause;
class OMPSizesClause;
class OMPTaskReductionClause;
class OMPThreadLimitClause;
class OMPThreadsClause;
class OMPToClause;
class OMPUnifiedAddressClause;
class OMPUnifiedSharedMemoryClause;
class OMPUntiedClause;
class OMPUpdateClause;
class OMPUseClause;
class OMPUseDeviceAddrClause;
class OMPUseDevicePtrClause;
class OMPUsesAllocatorsClause;
class OMPWriteClause;
# 33 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/AST/ASTFwd.h" 2
class Attr;
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/Basic/AttrList.inc" 1
# 45 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/tools/clang/include/clang/Basic/AttrList.inc"
class AddressSpaceAttr;
class AnnotateTypeAttr;
class ArmMveStrictPolymorphismAttr;
class BTFTypeTagAttr;
class CmseNSCallAttr;
class HLSLGroupSharedAddressSpaceAttr;
class NoDerefAttr;
class ObjCGCAttr;
class ObjCInertUnsafeUnretainedAttr;
class ObjCKindOfAttr;
class OpenCLConstantAddressSpaceAttr;
class OpenCLGenericAddressSpaceAttr;
class OpenCLGlobalAddressSpaceAttr;
class OpenCLGlobalDeviceAddressSpaceAttr;
class OpenCLGlobalHostAddressSpaceAttr;
class OpenCLLocalAddressSpaceAttr;
class OpenCLPrivateAddressSpaceAttr;
class Ptr32Attr;
class Ptr64Attr;
class SPtrAttr;
class TypeNonNullAttr;
class TypeNullUnspecifiedAttr;
class TypeNullableAttr;
class TypeNullableResultAttr;
class UPtrAttr;
class FallThroughAttr;
class LikelyAttr;
class MustTailAttr;
class OpenCLUnrollHintAttr;
class SuppressAttr;
class UnlikelyAttr;
class AlwaysInlineAttr;
class NoInlineAttr;
class NoMergeAttr;
class AArch64SVEPcsAttr;
class AArch64VectorPcsAttr;
class AMDGPUKernelCallAttr;
class AcquireHandleAttr;
class AnyX86NoCfCheckAttr;
class CDeclAttr;
class FastCallAttr;
class IntelOclBiccAttr;
class LifetimeBoundAttr;
class MSABIAttr;
class NSReturnsRetainedAttr;
class ObjCOwnershipAttr;
class PascalAttr;
class PcsAttr;
class PreserveAllAttr;
class PreserveMostAttr;
class RegCallAttr;
class StdCallAttr;
class SwiftAsyncCallAttr;
class SwiftCallAttr;
class SysVABIAttr;
class ThisCallAttr;
class VectorCallAttr;
class SwiftAsyncContextAttr;
class SwiftContextAttr;
class SwiftErrorResultAttr;
class SwiftIndirectResultAttr;
class AnnotateAttr;
class CFConsumedAttr;
class CarriesDependencyAttr;
class NSConsumedAttr;
class NonNullAttr;
class OSConsumedAttr;
class PassObjectSizeAttr;
class ReleaseHandleAttr;
class UseHandleAttr;
class HLSLSV_DispatchThreadIDAttr;
class HLSLSV_GroupIndexAttr;
class AMDGPUFlatWorkGroupSizeAttr;
class AMDGPUNumSGPRAttr;
class AMDGPUNumVGPRAttr;
class AMDGPUWavesPerEUAttr;
class ARMInterruptAttr;
class AVRInterruptAttr;
class AVRSignalAttr;
class AcquireCapabilityAttr;
class AcquiredAfterAttr;
class AcquiredBeforeAttr;
class AlignMac68kAttr;
class AlignNaturalAttr;
class AlignedAttr;
class AllocAlignAttr;
class AllocSizeAttr;
class AlwaysDestroyAttr;
class AnalyzerNoReturnAttr;
class AnyX86InterruptAttr;
class AnyX86NoCallerSavedRegistersAttr;
class ArcWeakrefUnavailableAttr;
class ArgumentWithTypeTagAttr;
class ArmBuiltinAliasAttr;
class ArtificialAttr;
class AsmLabelAttr;
class AssertCapabilityAttr;
class AssertExclusiveLockAttr;
class AssertSharedLockAttr;
class AssumeAlignedAttr;
class AssumptionAttr;
class AvailabilityAttr;
class BPFPreserveAccessIndexAttr;
class BTFDeclTagAttr;
class BlocksAttr;
class BuiltinAttr;
class C11NoReturnAttr;
class CFAuditedTransferAttr;
class CFGuardAttr;
class CFICanonicalJumpTableAttr;
class CFReturnsNotRetainedAttr;
class CFReturnsRetainedAttr;
class CFUnknownTransferAttr;
class CPUDispatchAttr;
class CPUSpecificAttr;
class CUDAConstantAttr;
class CUDADeviceAttr;
class CUDADeviceBuiltinSurfaceTypeAttr;
class CUDADeviceBuiltinTextureTypeAttr;
class CUDAGlobalAttr;
class CUDAHostAttr;
class CUDAInvalidTargetAttr;
class CUDALaunchBoundsAttr;
class CUDASharedAttr;
class CXX11NoReturnAttr;
class CallableWhenAttr;
class CallbackAttr;
class CapabilityAttr;
class CapturedRecordAttr;
class CleanupAttr;
class CmseNSEntryAttr;
class CodeSegAttr;
class ColdAttr;
class CommonAttr;
class ConstAttr;
class ConstInitAttr;
class ConstructorAttr;
class ConsumableAttr;
class ConsumableAutoCastAttr;
class ConsumableSetOnReadAttr;
class ConvergentAttr;
class DLLExportAttr;
class DLLExportStaticLocalAttr;
class DLLImportAttr;
class DLLImportStaticLocalAttr;
class DeprecatedAttr;
class DestructorAttr;
class DiagnoseAsBuiltinAttr;
class DiagnoseIfAttr;
class DisableSanitizerInstrumentationAttr;
class DisableTailCallsAttr;
class EmptyBasesAttr;
class EnableIfAttr;
class EnforceTCBAttr;
class EnforceTCBLeafAttr;
class EnumExtensibilityAttr;
class ErrorAttr;
class ExcludeFromExplicitInstantiationAttr;
class ExclusiveTrylockFunctionAttr;
class ExternalSourceSymbolAttr;
class FinalAttr;
class FlagEnumAttr;
class FlattenAttr;
class FormatAttr;
class FormatArgAttr;
class FunctionReturnThunksAttr;
class GNUInlineAttr;
class GuardedByAttr;
class GuardedVarAttr;
class HIPManagedAttr;
class HLSLNumThreadsAttr;
class HLSLResourceAttr;
class HLSLResourceBindingAttr;
class HLSLShaderAttr;
class HotAttr;
class IBActionAttr;
class IBOutletAttr;
class IBOutletCollectionAttr;
class InitPriorityAttr;
class InternalLinkageAttr;
class LTOVisibilityPublicAttr;
class LayoutVersionAttr;
class LeafAttr;
class LockReturnedAttr;
class LocksExcludedAttr;
class M68kInterruptAttr;
class MIGServerRoutineAttr;
class MSAllocatorAttr;
class MSInheritanceAttr;
class MSNoVTableAttr;
class MSP430InterruptAttr;
class MSStructAttr;
class MSVtorDispAttr;
class MaxFieldAlignmentAttr;
class MayAliasAttr;
class MaybeUndefAttr;
class MicroMipsAttr;
class MinSizeAttr;
class MinVectorWidthAttr;
class Mips16Attr;
class MipsInterruptAttr;
class MipsLongCallAttr;
class MipsShortCallAttr;
class NSConsumesSelfAttr;
class NSErrorDomainAttr;
class NSReturnsAutoreleasedAttr;
class NSReturnsNotRetainedAttr;
class NakedAttr;
class NoAliasAttr;
class NoCommonAttr;
class NoDebugAttr;
class NoDestroyAttr;
class NoDuplicateAttr;
class NoInstrumentFunctionAttr;
class NoMicroMipsAttr;
class NoMips16Attr;
class NoProfileFunctionAttr;
class NoRandomizeLayoutAttr;
class NoReturnAttr;
class NoSanitizeAttr;
class NoSpeculativeLoadHardeningAttr;
class NoSplitStackAttr;
class NoStackProtectorAttr;
class NoThreadSafetyAnalysisAttr;
class NoThrowAttr;
class NoUniqueAddressAttr;
class NoUwtableAttr;
class NotTailCalledAttr;
class OMPAllocateDeclAttr;
class OMPCaptureNoInitAttr;
class OMPDeclareTargetDeclAttr;
class OMPDeclareVariantAttr;
class OMPThreadPrivateDeclAttr;
class OSConsumesThisAttr;
class OSReturnsNotRetainedAttr;
class OSReturnsRetainedAttr;
class OSReturnsRetainedOnNonZeroAttr;
class OSReturnsRetainedOnZeroAttr;
class ObjCBridgeAttr;
class ObjCBridgeMutableAttr;
class ObjCBridgeRelatedAttr;
class ObjCExceptionAttr;
class ObjCExplicitProtocolImplAttr;
class ObjCExternallyRetainedAttr;
class ObjCIndependentClassAttr;
class ObjCMethodFamilyAttr;
class ObjCNSObjectAttr;
class ObjCPreciseLifetimeAttr;
class ObjCRequiresPropertyDefsAttr;
class ObjCRequiresSuperAttr;
class ObjCReturnsInnerPointerAttr;
class ObjCRootClassAttr;
class ObjCSubclassingRestrictedAttr;
class OpenCLIntelReqdSubGroupSizeAttr;
class OpenCLKernelAttr;
class OptimizeNoneAttr;
class OverrideAttr;
class OwnerAttr;
class OwnershipAttr;
class PackedAttr;
class ParamTypestateAttr;
class PatchableFunctionEntryAttr;
class PointerAttr;
class PragmaClangBSSSectionAttr;
class PragmaClangDataSectionAttr;
class PragmaClangRelroSectionAttr;
class PragmaClangRodataSectionAttr;
class PragmaClangTextSectionAttr;
class PreferredNameAttr;
class PtGuardedByAttr;
class PtGuardedVarAttr;
class PureAttr;
class RISCVInterruptAttr;
class RandomizeLayoutAttr;
class ReadOnlyPlacementAttr;
class ReinitializesAttr;
class ReleaseCapabilityAttr;
class ReqdWorkGroupSizeAttr;
class RequiresCapabilityAttr;
class RestrictAttr;
class RetainAttr;
class ReturnTypestateAttr;
class ReturnsNonNullAttr;
class ReturnsTwiceAttr;
class SYCLKernelAttr;
class SYCLSpecialClassAttr;
class ScopedLockableAttr;
class SectionAttr;
class SelectAnyAttr;
class SentinelAttr;
class SetTypestateAttr;
class SharedTrylockFunctionAttr;
class SpeculativeLoadHardeningAttr;
class StandaloneDebugAttr;
class StrictFPAttr;
class StrictGuardStackCheckAttr;
class SwiftAsyncAttr;
class SwiftAsyncErrorAttr;
class SwiftAsyncNameAttr;
class SwiftAttrAttr;
class SwiftBridgeAttr;
class SwiftBridgedTypedefAttr;
class SwiftErrorAttr;
class SwiftNameAttr;
class SwiftNewTypeAttr;
class SwiftPrivateAttr;
class TLSModelAttr;
class TargetAttr;
class TargetClonesAttr;
class TargetVersionAttr;
class TestTypestateAttr;
class TransparentUnionAttr;
class TrivialABIAttr;
class TryAcquireCapabilityAttr;
class TypeTagForDatatypeAttr;
class TypeVisibilityAttr;
class UnavailableAttr;
class UninitializedAttr;
class UnsafeBufferUsageAttr;
class UnusedAttr;
class UsedAttr;
class UsingIfExistsAttr;
class UuidAttr;
class VecReturnAttr;
class VecTypeHintAttr;
class VisibilityAttr;
class WarnUnusedAttr;
class WarnUnusedResultAttr;
class WeakAttr;
class WeakImportAttr;
class WeakRefAttr;
class WebAssemblyExportNameAttr;
class WebAssemblyImportModuleAttr;
class WebAssemblyImportNameAttr;
class WorkGroupSizeHintAttr;
class X86ForceAlignArgPointerAttr;
class XRayInstrumentAttr;
class XRayLogArgsAttr;
class ZeroCallUsedRegsAttr;
class AbiTagAttr;
class AliasAttr;
class AlignValueAttr;
class BuiltinAliasAttr;
class CalledOnceAttr;
class IFuncAttr;
class InitSegAttr;
class LoaderUninitializedAttr;
class LoopHintAttr;
class ModeAttr;
class NoBuiltinAttr;
class NoEscapeAttr;
class OMPCaptureKindAttr;
class OMPDeclareSimdDeclAttr;
class OMPReferencedVarAttr;
class ObjCBoxableAttr;
class ObjCClassStubAttr;
class ObjCDesignatedInitializerAttr;
class ObjCDirectAttr;
class ObjCDirectMembersAttr;
class ObjCNonLazyClassAttr;
class ObjCNonRuntimeProtocolAttr;
class ObjCRuntimeNameAttr;
class ObjCRuntimeVisibleAttr;
class OpenCLAccessAttr;
class OverloadableAttr;
class RenderScriptKernelAttr;
class SwiftObjCMembersAttr;
class ThreadAttr;
# 36 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/AST/ASTFwd.h" 2
class ObjCProtocolLoc;
}
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/AST/ASTContext.h" 2
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/AST/CanonicalType.h" 1
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/AST/CanonicalType.h"
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/AST/Type.h" 1
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/AST/Type.h"
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/AST/DependenceFlags.h" 1
# 11 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/AST/DependenceFlags.h"
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/Basic/BitmaskEnum.h" 1
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/Basic/BitmaskEnum.h"
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/ADT/BitmaskEnum.h" 1
# 12 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/ADT/BitmaskEnum.h"
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cassert" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cassert" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__assert" 1 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__assert" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__config" 1 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__config" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__config_site" 1 3
# 38 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__config_site" 3
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wmacro-redefined"
#pragma clang diagnostic pop
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__config" 2 3
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__config" 3
# 269 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__config" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/features.h" 1 3
# 392 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/features.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/features-time64.h" 1 3
# 20 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/features-time64.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/wordsize.h" 1 3
# 21 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/features-time64.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/timesize.h" 1 3
# 22 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/features-time64.h" 2 3
# 393 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/features.h" 2 3
# 464 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/features.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdc-predef.h" 1 3
# 465 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/features.h" 2 3
# 486 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/features.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/cdefs.h" 1 3
# 559 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/cdefs.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/wordsize.h" 1 3
# 560 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/cdefs.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/long-double.h" 1 3
# 561 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/cdefs.h" 2 3
# 487 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/features.h" 2 3
# 510 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/features.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/gnu/stubs.h" 1 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/wordsize.h" 1 3
# 6 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/gnu/stubs.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/gnu/stubs-lp64.h" 1 3
# 9 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/gnu/stubs.h" 2 3
# 511 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/features.h" 2 3
# 270 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__config" 2 3
# 666 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__config" 3
namespace std { inline namespace __1 { }}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__assert" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__verbose_abort" 1 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__verbose_abort" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__availability" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__availability" 3
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__verbose_abort" 2 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__verbose_abort" 3
namespace std { inline namespace __1 {
[[noreturn]] __attribute__((__visibility__("default"))) __attribute__((__format__(__printf__, 1, 2)))
void __libcpp_verbose_abort(const char *__format, ...);
# 55 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__verbose_abort" 3
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__assert" 2 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__assert" 3
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cassert" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/assert.h" 1 3
# 66 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/assert.h" 3
extern "C" {
extern void __assert_fail (const char *__assertion, const char *__file,
unsigned int __line, const char *__function)
noexcept (true) __attribute__ ((__noreturn__));
extern void __assert_perror_fail (int __errnum, const char *__file,
unsigned int __line, const char *__function)
noexcept (true) __attribute__ ((__noreturn__));
extern void __assert (const char *__assertion, const char *__file, int __line)
noexcept (true) __attribute__ ((__noreturn__));
}
# 25 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cassert" 2 3
# 32 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cassert" 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/ADT/BitmaskEnum.h" 2
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 1 3
# 421 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/invoke.h" 1 3
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/invoke.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/add_lvalue_reference.h" 1 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/add_lvalue_reference.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_referenceable.h" 1 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_referenceable.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/integral_constant.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/integral_constant.h" 3
namespace std { inline namespace __1 {
template <class _Tp, _Tp __v>
struct __attribute__((__type_visibility__("default"))) integral_constant
{
static constexpr const _Tp value = __v;
typedef _Tp value_type;
typedef integral_constant type;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr operator value_type() const noexcept {return value;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr value_type operator ()() const noexcept {return value;}
};
template <class _Tp, _Tp __v>
constexpr const _Tp integral_constant<_Tp, __v>::value;
typedef integral_constant<bool, true> true_type;
typedef integral_constant<bool, false> false_type;
template <bool _Val>
using _BoolConstant __attribute__((__nodebug__)) = integral_constant<bool, _Val>;
template <bool __b>
using bool_constant = integral_constant<bool, __b>;
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_referenceable.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_same.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_same.h" 3
namespace std { inline namespace __1 {
template <class _Tp, class _Up>
struct __attribute__((__type_visibility__("default"))) is_same : _BoolConstant<__is_same(_Tp, _Up)> { };
template <class _Tp, class _Up>
inline constexpr bool is_same_v = __is_same(_Tp, _Up);
# 36 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_same.h" 3
template <class _Tp, class _Up>
using _IsSame = _BoolConstant<__is_same(_Tp, _Up)>;
template <class _Tp, class _Up>
using _IsNotSame = _BoolConstant<!__is_same(_Tp, _Up)>;
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_referenceable.h" 2 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_referenceable.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct __libcpp_is_referenceable : integral_constant<bool, __is_referenceable(_Tp)> {};
# 39 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_referenceable.h" 3
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/add_lvalue_reference.h" 2 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/add_lvalue_reference.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
using __add_lvalue_reference_t = __add_lvalue_reference(_Tp);
# 42 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/add_lvalue_reference.h" 3
template <class _Tp>
struct add_lvalue_reference {
using type __attribute__((__nodebug__)) = __add_lvalue_reference_t<_Tp>;
};
template <class _Tp> using add_lvalue_reference_t = __add_lvalue_reference_t<_Tp>;
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/invoke.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/apply_cv.h" 1 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/apply_cv.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_const.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_const.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) is_const : _BoolConstant<__is_const(_Tp)> { };
template <class _Tp>
inline constexpr bool is_const_v = __is_const(_Tp);
# 43 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_const.h" 3
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/apply_cv.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_volatile.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_volatile.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) is_volatile : _BoolConstant<__is_volatile(_Tp)> { };
template <class _Tp>
inline constexpr bool is_volatile_v = __is_volatile(_Tp);
# 43 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_volatile.h" 3
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/apply_cv.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_reference.h" 1 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_reference.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cstddef" 1 3
# 38 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cstddef" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/enable_if.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/enable_if.h" 3
namespace std { inline namespace __1 {
template <bool, class _Tp = void> struct __attribute__((__type_visibility__("default"))) enable_if {};
template <class _Tp> struct __attribute__((__type_visibility__("default"))) enable_if<true, _Tp> {typedef _Tp type;};
template <bool _Bp, class _Tp = void> using __enable_if_t __attribute__((__nodebug__)) = typename enable_if<_Bp, _Tp>::type;
template <bool _Bp, class _Tp = void> using enable_if_t = typename enable_if<_Bp, _Tp>::type;
}}
# 39 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cstddef" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_integral.h" 1 3
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_integral.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_cv.h" 1 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_cv.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_const.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_const.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct remove_const {
using type __attribute__((__nodebug__)) = __remove_const(_Tp);
};
template <class _Tp>
using __remove_const_t = __remove_const(_Tp);
# 37 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_const.h" 3
template <class _Tp> using remove_const_t = __remove_const_t<_Tp>;
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_cv.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_volatile.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_volatile.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct remove_volatile {
using type __attribute__((__nodebug__)) = __remove_volatile(_Tp);
};
template <class _Tp>
using __remove_volatile_t = __remove_volatile(_Tp);
# 37 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_volatile.h" 3
template <class _Tp> using remove_volatile_t = __remove_volatile_t<_Tp>;
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_cv.h" 2 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_cv.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct remove_cv {
using type __attribute__((__nodebug__)) = __remove_cv(_Tp);
};
template <class _Tp>
using __remove_cv_t = __remove_cv(_Tp);
# 39 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_cv.h" 3
template <class _Tp> using remove_cv_t = __remove_cv_t<_Tp>;
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_integral.h" 2 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_integral.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __libcpp_is_integral { enum { value = 0 }; };
template <> struct __libcpp_is_integral<bool> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<char> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<signed char> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<unsigned char> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<wchar_t> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<char16_t> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<char32_t> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<short> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<unsigned short> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<int> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<unsigned int> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<long> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<unsigned long> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<long long> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<unsigned long long> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<__int128_t> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<__uint128_t> { enum { value = 1 }; };
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) is_integral : _BoolConstant<__is_integral(_Tp)> { };
template <class _Tp>
inline constexpr bool is_integral_v = __is_integral(_Tp);
# 70 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_integral.h" 3
}}
# 41 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cstddef" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/version" 1 3
# 207 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/version" 3
# 42 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cstddef" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stddef.h" 1 3
# 43 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stddef.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build0/lib/clang/17/include/stddef.h" 1 3
# 35 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build0/lib/clang/17/include/stddef.h" 3
typedef long int ptrdiff_t;
# 46 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build0/lib/clang/17/include/stddef.h" 3
typedef long unsigned int size_t;
# 114 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build0/lib/clang/17/include/stddef.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build0/lib/clang/17/include/__stddef_max_align_t.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build0/lib/clang/17/include/__stddef_max_align_t.h" 3
typedef struct {
long long __clang_max_align_nonce1
__attribute__((__aligned__(__alignof__(long long))));
long double __clang_max_align_nonce2
__attribute__((__aligned__(__alignof__(long double))));
} max_align_t;
# 115 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build0/lib/clang/17/include/stddef.h" 2 3
# 47 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stddef.h" 2 3
typedef decltype(nullptr) nullptr_t;
# 44 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cstddef" 2 3
# 55 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cstddef" 3
namespace std { inline namespace __1 {
using ::nullptr_t;
using ::ptrdiff_t __attribute__((__using_if_exists__));
using ::size_t __attribute__((__using_if_exists__));
using ::max_align_t __attribute__((__using_if_exists__));
}}
namespace std
{
enum class byte : unsigned char {};
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr byte operator| (byte __lhs, byte __rhs) noexcept
{
return static_cast<byte>(
static_cast<unsigned char>(
static_cast<unsigned int>(__lhs) | static_cast<unsigned int>(__rhs)
));
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr byte& operator|=(byte& __lhs, byte __rhs) noexcept
{ return __lhs = __lhs | __rhs; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr byte operator& (byte __lhs, byte __rhs) noexcept
{
return static_cast<byte>(
static_cast<unsigned char>(
static_cast<unsigned int>(__lhs) & static_cast<unsigned int>(__rhs)
));
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr byte& operator&=(byte& __lhs, byte __rhs) noexcept
{ return __lhs = __lhs & __rhs; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr byte operator^ (byte __lhs, byte __rhs) noexcept
{
return static_cast<byte>(
static_cast<unsigned char>(
static_cast<unsigned int>(__lhs) ^ static_cast<unsigned int>(__rhs)
));
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr byte& operator^=(byte& __lhs, byte __rhs) noexcept
{ return __lhs = __lhs ^ __rhs; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr byte operator~ (byte __b) noexcept
{
return static_cast<byte>(
static_cast<unsigned char>(
~static_cast<unsigned int>(__b)
));
}
template <class _Tp>
using _EnableByteOverload = __enable_if_t<is_integral<_Tp>::value, byte>;
template <class _Integer>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr _EnableByteOverload<_Integer> &
operator<<=(byte& __lhs, _Integer __shift) noexcept
{ return __lhs = __lhs << __shift; }
template <class _Integer>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr _EnableByteOverload<_Integer>
operator<< (byte __lhs, _Integer __shift) noexcept
{ return static_cast<byte>(static_cast<unsigned char>(static_cast<unsigned int>(__lhs) << __shift)); }
template <class _Integer>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr _EnableByteOverload<_Integer> &
operator>>=(byte& __lhs, _Integer __shift) noexcept
{ return __lhs = __lhs >> __shift; }
template <class _Integer>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr _EnableByteOverload<_Integer>
operator>> (byte __lhs, _Integer __shift) noexcept
{ return static_cast<byte>(static_cast<unsigned char>(static_cast<unsigned int>(__lhs) >> __shift)); }
template <class _Integer, class = _EnableByteOverload<_Integer> >
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr _Integer
to_integer(byte __b) noexcept { return static_cast<_Integer>(__b); }
}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_reference.h" 2 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_reference.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct remove_reference {
using type __attribute__((__nodebug__)) = __remove_reference_t(_Tp);
};
template <class _Tp>
using __libcpp_remove_reference_t = __remove_reference_t(_Tp);
# 39 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_reference.h" 3
template <class _Tp> using remove_reference_t = __libcpp_remove_reference_t<_Tp>;
}}
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/apply_cv.h" 2 3
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/apply_cv.h" 3
namespace std { inline namespace __1 {
template <class _Tp, class _Up, bool = is_const<__libcpp_remove_reference_t<_Tp> >::value,
bool = is_volatile<__libcpp_remove_reference_t<_Tp> >::value>
struct __apply_cv
{
typedef __attribute__((__nodebug__)) _Up type;
};
template <class _Tp, class _Up>
struct __apply_cv<_Tp, _Up, true, false>
{
typedef __attribute__((__nodebug__)) const _Up type;
};
template <class _Tp, class _Up>
struct __apply_cv<_Tp, _Up, false, true>
{
typedef volatile _Up type;
};
template <class _Tp, class _Up>
struct __apply_cv<_Tp, _Up, true, true>
{
typedef const volatile _Up type;
};
template <class _Tp, class _Up>
struct __apply_cv<_Tp&, _Up, false, false>
{
typedef _Up& type;
};
template <class _Tp, class _Up>
struct __apply_cv<_Tp&, _Up, true, false>
{
typedef const _Up& type;
};
template <class _Tp, class _Up>
struct __apply_cv<_Tp&, _Up, false, true>
{
typedef volatile _Up& type;
};
template <class _Tp, class _Up>
struct __apply_cv<_Tp&, _Up, true, true>
{
typedef const volatile _Up& type;
};
}}
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/invoke.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/conditional.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/conditional.h" 3
namespace std { inline namespace __1 {
template <bool>
struct _IfImpl;
template <>
struct _IfImpl<true> {
template <class _IfRes, class _ElseRes>
using _Select __attribute__((__nodebug__)) = _IfRes;
};
template <>
struct _IfImpl<false> {
template <class _IfRes, class _ElseRes>
using _Select __attribute__((__nodebug__)) = _ElseRes;
};
template <bool _Cond, class _IfRes, class _ElseRes>
using _If __attribute__((__nodebug__)) = typename _IfImpl<_Cond>::template _Select<_IfRes, _ElseRes>;
template <bool _Bp, class _If, class _Then>
struct __attribute__((__type_visibility__("default"))) conditional {
using type __attribute__((__nodebug__)) = _If;
};
template <class _If, class _Then>
struct __attribute__((__type_visibility__("default"))) conditional<false, _If, _Then> {
using type __attribute__((__nodebug__)) = _Then;
};
template <bool _Bp, class _IfRes, class _ElseRes>
using conditional_t __attribute__((__nodebug__)) = typename conditional<_Bp, _IfRes, _ElseRes>::type;
template <bool _Bp, class _If, class _Then>
using __conditional_t __attribute__((__nodebug__)) = typename conditional<_Bp, _If, _Then>::type;
}}
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/invoke.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/decay.h" 1 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/decay.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/add_pointer.h" 1 3
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/add_pointer.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_void.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_void.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) is_void : _BoolConstant<__is_void(_Tp)> { };
template <class _Tp>
inline constexpr bool is_void_v = __is_void(_Tp);
# 45 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_void.h" 3
}}
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/add_pointer.h" 2 3
# 21 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/add_pointer.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
using __add_pointer_t = __add_pointer(_Tp);
# 44 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/add_pointer.h" 3
template <class _Tp>
struct add_pointer {
using type __attribute__((__nodebug__)) = __add_pointer_t<_Tp>;
};
template <class _Tp> using add_pointer_t = __add_pointer_t<_Tp>;
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/decay.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_array.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_array.h" 3
namespace std { inline namespace __1 {
# 36 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_array.h" 3
template <class _Tp> struct __attribute__((__type_visibility__("default"))) is_array
: public false_type {};
template <class _Tp> struct __attribute__((__type_visibility__("default"))) is_array<_Tp[]>
: public true_type {};
template <class _Tp, size_t _Np> struct __attribute__((__type_visibility__("default"))) is_array<_Tp[_Np]>
: public true_type {};
template <class _Tp>
inline constexpr bool is_array_v = is_array<_Tp>::value;
}}
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/decay.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_function.h" 1 3
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_function.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_reference.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_reference.h" 3
namespace std { inline namespace __1 {
template<class _Tp>
struct __attribute__((__type_visibility__("default"))) is_lvalue_reference : _BoolConstant<__is_lvalue_reference(_Tp)> { };
template<class _Tp>
struct __attribute__((__type_visibility__("default"))) is_rvalue_reference : _BoolConstant<__is_rvalue_reference(_Tp)> { };
template<class _Tp>
struct __attribute__((__type_visibility__("default"))) is_reference : _BoolConstant<__is_reference(_Tp)> { };
template <class _Tp>
inline constexpr bool is_reference_v = __is_reference(_Tp);
template <class _Tp>
inline constexpr bool is_lvalue_reference_v = __is_lvalue_reference(_Tp);
template <class _Tp>
inline constexpr bool is_rvalue_reference_v = __is_rvalue_reference(_Tp);
# 68 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_reference.h" 3
}}
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_function.h" 2 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_function.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) is_function : integral_constant<bool, __is_function(_Tp)> {};
# 37 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_function.h" 3
template <class _Tp>
inline constexpr bool is_function_v = is_function<_Tp>::value;
}}
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/decay.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_extent.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_extent.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct remove_extent {
using type __attribute__((__nodebug__)) = __remove_extent(_Tp);
};
template <class _Tp>
using __remove_extent_t = __remove_extent(_Tp);
# 42 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_extent.h" 3
template <class _Tp> using remove_extent_t = __remove_extent_t<_Tp>;
}}
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/decay.h" 2 3
# 24 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/decay.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct decay {
using type __attribute__((__nodebug__)) = __decay(_Tp);
};
# 66 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/decay.h" 3
template <class _Tp> using decay_t = typename decay<_Tp>::type;
}}
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/invoke.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_base_of.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_base_of.h" 3
namespace std { inline namespace __1 {
template <class _Bp, class _Dp>
struct __attribute__((__type_visibility__("default"))) is_base_of
: public integral_constant<bool, __is_base_of(_Bp, _Dp)> {};
template <class _Bp, class _Dp>
inline constexpr bool is_base_of_v = __is_base_of(_Bp, _Dp);
}}
# 21 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/invoke.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_core_convertible.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_core_convertible.h" 3
namespace std { inline namespace __1 {
template <class _Tp, class _Up, class = void>
struct __is_core_convertible : public false_type {};
template <class _Tp, class _Up>
struct __is_core_convertible<_Tp, _Up, decltype(
static_cast<void(*)(_Up)>(0) ( static_cast<_Tp(*)()>(0)() )
)> : public true_type {};
}}
# 22 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/invoke.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_member_function_pointer.h" 1 3
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_member_function_pointer.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __libcpp_is_member_pointer {
enum {
__is_member = false,
__is_func = false,
__is_obj = false
};
};
template <class _Tp, class _Up> struct __libcpp_is_member_pointer<_Tp _Up::*> {
enum {
__is_member = true,
__is_func = is_function<_Tp>::value,
__is_obj = !__is_func,
};
};
template<class _Tp>
struct __attribute__((__type_visibility__("default"))) is_member_function_pointer
: _BoolConstant<__is_member_function_pointer(_Tp)> { };
template <class _Tp>
inline constexpr bool is_member_function_pointer_v = __is_member_function_pointer(_Tp);
# 62 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_member_function_pointer.h" 3
}}
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/invoke.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_member_object_pointer.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_member_object_pointer.h" 3
namespace std { inline namespace __1 {
template<class _Tp>
struct __attribute__((__type_visibility__("default"))) is_member_object_pointer
: _BoolConstant<__is_member_object_pointer(_Tp)> { };
template <class _Tp>
inline constexpr bool is_member_object_pointer_v = __is_member_object_pointer(_Tp);
# 44 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_member_object_pointer.h" 3
}}
# 24 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/invoke.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_reference_wrapper.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_reference_wrapper.h" 3
namespace std { inline namespace __1 {
template <class _Tp> class __attribute__((__type_visibility__("default"))) reference_wrapper;
template <class _Tp> struct __is_reference_wrapper_impl : public false_type {};
template <class _Tp> struct __is_reference_wrapper_impl<reference_wrapper<_Tp> > : public true_type {};
template <class _Tp> struct __is_reference_wrapper
: public __is_reference_wrapper_impl<__remove_cv_t<_Tp> > {};
}}
# 25 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/invoke.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/nat.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/nat.h" 3
namespace std { inline namespace __1 {
struct __nat
{
__nat() = delete;
__nat(const __nat&) = delete;
__nat& operator=(const __nat&) = delete;
~__nat() = delete;
};
}}
# 28 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/invoke.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/declval.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/declval.h" 3
namespace std { inline namespace __1 {
#pragma GCC diagnostic push
# 22 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/declval.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated"
# 22 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/declval.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
template <class _Tp>
_Tp&& __declval(int);
template <class _Tp>
_Tp __declval(long);
#pragma GCC diagnostic pop
template <class _Tp>
decltype(std::__declval<_Tp>(0)) declval() noexcept;
}}
# 30 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/invoke.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/forward.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/forward.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr _Tp&&
forward([[_Clang::__lifetimebound__]] __libcpp_remove_reference_t<_Tp>& __t) noexcept {
return static_cast<_Tp&&>(__t);
}
template <class _Tp>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr _Tp&&
forward([[_Clang::__lifetimebound__]] __libcpp_remove_reference_t<_Tp>&& __t) noexcept {
static_assert(!is_lvalue_reference<_Tp>::value, "cannot forward an rvalue as an lvalue");
return static_cast<_Tp&&>(__t);
}
}}
# 31 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/invoke.h" 2 3
# 34 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/invoke.h" 3
namespace std { inline namespace __1 {
struct __any
{
__any(...);
};
template <class _MP, bool _IsMemberFunctionPtr, bool _IsMemberObjectPtr>
struct __member_pointer_traits_imp
{
};
template <class _Rp, class _Class, class ..._Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...), true, false>
{
typedef _Class _ClassType;
typedef _Rp _ReturnType;
typedef _Rp (_FnType) (_Param...);
};
template <class _Rp, class _Class, class ..._Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...), true, false>
{
typedef _Class _ClassType;
typedef _Rp _ReturnType;
typedef _Rp (_FnType) (_Param..., ...);
};
template <class _Rp, class _Class, class ..._Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const, true, false>
{
typedef _Class const _ClassType;
typedef _Rp _ReturnType;
typedef _Rp (_FnType) (_Param...);
};
template <class _Rp, class _Class, class ..._Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const, true, false>
{
typedef _Class const _ClassType;
typedef _Rp _ReturnType;
typedef _Rp (_FnType) (_Param..., ...);
};
template <class _Rp, class _Class, class ..._Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) volatile, true, false>
{
typedef _Class volatile _ClassType;
typedef _Rp _ReturnType;
typedef _Rp (_FnType) (_Param...);
};
template <class _Rp, class _Class, class ..._Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) volatile, true, false>
{
typedef _Class volatile _ClassType;
typedef _Rp _ReturnType;
typedef _Rp (_FnType) (_Param..., ...);
};
template <class _Rp, class _Class, class ..._Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const volatile, true, false>
{
typedef _Class const volatile _ClassType;
typedef _Rp _ReturnType;
typedef _Rp (_FnType) (_Param...);
};
template <class _Rp, class _Class, class ..._Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const volatile, true, false>
{
typedef _Class const volatile _ClassType;
typedef _Rp _ReturnType;
typedef _Rp (_FnType) (_Param..., ...);
};
template <class _Rp, class _Class, class ..._Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) &, true, false>
{
typedef _Class& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp (_FnType) (_Param...);
};
template <class _Rp, class _Class, class ..._Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) &, true, false>
{
typedef _Class& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp (_FnType) (_Param..., ...);
};
template <class _Rp, class _Class, class ..._Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const&, true, false>
{
typedef _Class const& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp (_FnType) (_Param...);
};
template <class _Rp, class _Class, class ..._Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const&, true, false>
{
typedef _Class const& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp (_FnType) (_Param..., ...);
};
template <class _Rp, class _Class, class ..._Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) volatile&, true, false>
{
typedef _Class volatile& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp (_FnType) (_Param...);
};
template <class _Rp, class _Class, class ..._Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) volatile&, true, false>
{
typedef _Class volatile& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp (_FnType) (_Param..., ...);
};
template <class _Rp, class _Class, class ..._Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const volatile&, true, false>
{
typedef _Class const volatile& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp (_FnType) (_Param...);
};
template <class _Rp, class _Class, class ..._Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const volatile&, true, false>
{
typedef _Class const volatile& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp (_FnType) (_Param..., ...);
};
template <class _Rp, class _Class, class ..._Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) &&, true, false>
{
typedef _Class&& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp (_FnType) (_Param...);
};
template <class _Rp, class _Class, class ..._Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) &&, true, false>
{
typedef _Class&& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp (_FnType) (_Param..., ...);
};
template <class _Rp, class _Class, class ..._Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const&&, true, false>
{
typedef _Class const&& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp (_FnType) (_Param...);
};
template <class _Rp, class _Class, class ..._Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const&&, true, false>
{
typedef _Class const&& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp (_FnType) (_Param..., ...);
};
template <class _Rp, class _Class, class ..._Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) volatile&&, true, false>
{
typedef _Class volatile&& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp (_FnType) (_Param...);
};
template <class _Rp, class _Class, class ..._Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) volatile&&, true, false>
{
typedef _Class volatile&& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp (_FnType) (_Param..., ...);
};
template <class _Rp, class _Class, class ..._Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const volatile&&, true, false>
{
typedef _Class const volatile&& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp (_FnType) (_Param...);
};
template <class _Rp, class _Class, class ..._Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const volatile&&, true, false>
{
typedef _Class const volatile&& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp (_FnType) (_Param..., ...);
};
template <class _Rp, class _Class>
struct __member_pointer_traits_imp<_Rp _Class::*, false, true>
{
typedef _Class _ClassType;
typedef _Rp _ReturnType;
};
template <class _MP>
struct __member_pointer_traits
: public __member_pointer_traits_imp<__remove_cv_t<_MP>,
is_member_function_pointer<_MP>::value,
is_member_object_pointer<_MP>::value>
{
};
template <class _DecayedFp>
struct __member_pointer_class_type {};
template <class _Ret, class _ClassType>
struct __member_pointer_class_type<_Ret _ClassType::*> {
typedef _ClassType type;
};
template <class _Fp, class _A0,
class _DecayFp = typename decay<_Fp>::type,
class _DecayA0 = typename decay<_A0>::type,
class _ClassT = typename __member_pointer_class_type<_DecayFp>::type>
using __enable_if_bullet1 = typename enable_if
<
is_member_function_pointer<_DecayFp>::value
&& is_base_of<_ClassT, _DecayA0>::value
>::type;
template <class _Fp, class _A0,
class _DecayFp = typename decay<_Fp>::type,
class _DecayA0 = typename decay<_A0>::type>
using __enable_if_bullet2 = typename enable_if
<
is_member_function_pointer<_DecayFp>::value
&& __is_reference_wrapper<_DecayA0>::value
>::type;
template <class _Fp, class _A0,
class _DecayFp = typename decay<_Fp>::type,
class _DecayA0 = typename decay<_A0>::type,
class _ClassT = typename __member_pointer_class_type<_DecayFp>::type>
using __enable_if_bullet3 = typename enable_if
<
is_member_function_pointer<_DecayFp>::value
&& !is_base_of<_ClassT, _DecayA0>::value
&& !__is_reference_wrapper<_DecayA0>::value
>::type;
template <class _Fp, class _A0,
class _DecayFp = typename decay<_Fp>::type,
class _DecayA0 = typename decay<_A0>::type,
class _ClassT = typename __member_pointer_class_type<_DecayFp>::type>
using __enable_if_bullet4 = typename enable_if
<
is_member_object_pointer<_DecayFp>::value
&& is_base_of<_ClassT, _DecayA0>::value
>::type;
template <class _Fp, class _A0,
class _DecayFp = typename decay<_Fp>::type,
class _DecayA0 = typename decay<_A0>::type>
using __enable_if_bullet5 = typename enable_if
<
is_member_object_pointer<_DecayFp>::value
&& __is_reference_wrapper<_DecayA0>::value
>::type;
template <class _Fp, class _A0,
class _DecayFp = typename decay<_Fp>::type,
class _DecayA0 = typename decay<_A0>::type,
class _ClassT = typename __member_pointer_class_type<_DecayFp>::type>
using __enable_if_bullet6 = typename enable_if
<
is_member_object_pointer<_DecayFp>::value
&& !is_base_of<_ClassT, _DecayA0>::value
&& !__is_reference_wrapper<_DecayA0>::value
>::type;
template <class ..._Args>
__nat __invoke(__any, _Args&& ...__args);
template <class _Fp, class _A0, class ..._Args,
class = __enable_if_bullet1<_Fp, _A0> >
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr decltype((std::declval<_A0>().*std::declval<_Fp>())(std::declval<_Args>()...))
__invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args)
noexcept(noexcept((static_cast<_A0&&>(__a0).*__f)(static_cast<_Args&&>(__args)...)))
{ return (static_cast<_A0&&>(__a0).*__f)(static_cast<_Args&&>(__args)...); }
template <class _Fp, class _A0, class ..._Args,
class = __enable_if_bullet2<_Fp, _A0> >
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr decltype((std::declval<_A0>().get().*std::declval<_Fp>())(std::declval<_Args>()...))
__invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args)
noexcept(noexcept((__a0.get().*__f)(static_cast<_Args&&>(__args)...)))
{ return (__a0.get().*__f)(static_cast<_Args&&>(__args)...); }
template <class _Fp, class _A0, class ..._Args,
class = __enable_if_bullet3<_Fp, _A0> >
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr decltype(((*std::declval<_A0>()).*std::declval<_Fp>())(std::declval<_Args>()...))
__invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args)
noexcept(noexcept(((*static_cast<_A0&&>(__a0)).*__f)(static_cast<_Args&&>(__args)...)))
{ return ((*static_cast<_A0&&>(__a0)).*__f)(static_cast<_Args&&>(__args)...); }
template <class _Fp, class _A0,
class = __enable_if_bullet4<_Fp, _A0> >
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr decltype(std::declval<_A0>().*std::declval<_Fp>())
__invoke(_Fp&& __f, _A0&& __a0)
noexcept(noexcept(static_cast<_A0&&>(__a0).*__f))
{ return static_cast<_A0&&>(__a0).*__f; }
template <class _Fp, class _A0,
class = __enable_if_bullet5<_Fp, _A0> >
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr decltype(std::declval<_A0>().get().*std::declval<_Fp>())
__invoke(_Fp&& __f, _A0&& __a0)
noexcept(noexcept(__a0.get().*__f))
{ return __a0.get().*__f; }
template <class _Fp, class _A0,
class = __enable_if_bullet6<_Fp, _A0> >
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr decltype((*std::declval<_A0>()).*std::declval<_Fp>())
__invoke(_Fp&& __f, _A0&& __a0)
noexcept(noexcept((*static_cast<_A0&&>(__a0)).*__f))
{ return (*static_cast<_A0&&>(__a0)).*__f; }
template <class _Fp, class ..._Args>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr decltype(std::declval<_Fp>()(std::declval<_Args>()...))
__invoke(_Fp&& __f, _Args&& ...__args)
noexcept(noexcept(static_cast<_Fp&&>(__f)(static_cast<_Args&&>(__args)...)))
{ return static_cast<_Fp&&>(__f)(static_cast<_Args&&>(__args)...); }
template <class _Ret, class _Fp, class ..._Args>
struct __invokable_r
{
template <class _XFp, class ..._XArgs>
static decltype(std::__invoke(std::declval<_XFp>(), std::declval<_XArgs>()...)) __try_call(int);
template <class _XFp, class ..._XArgs>
static __nat __try_call(...);
using _Result = decltype(__try_call<_Fp, _Args...>(0));
using type = __conditional_t<
_IsNotSame<_Result, __nat>::value,
__conditional_t<is_void<_Ret>::value, true_type, __is_core_convertible<_Result, _Ret> >,
false_type>;
static const bool value = type::value;
};
template <class _Fp, class ..._Args>
using __invokable = __invokable_r<void, _Fp, _Args...>;
template <bool _IsInvokable, bool _IsCVVoid, class _Ret, class _Fp, class ..._Args>
struct __nothrow_invokable_r_imp {
static const bool value = false;
};
template <class _Ret, class _Fp, class ..._Args>
struct __nothrow_invokable_r_imp<true, false, _Ret, _Fp, _Args...>
{
typedef __nothrow_invokable_r_imp _ThisT;
template <class _Tp>
static void __test_noexcept(_Tp) noexcept;
static const bool value = noexcept(_ThisT::__test_noexcept<_Ret>(
std::__invoke(std::declval<_Fp>(), std::declval<_Args>()...)));
};
template <class _Ret, class _Fp, class ..._Args>
struct __nothrow_invokable_r_imp<true, true, _Ret, _Fp, _Args...>
{
static const bool value = noexcept(
std::__invoke(std::declval<_Fp>(), std::declval<_Args>()...));
};
template <class _Ret, class _Fp, class ..._Args>
using __nothrow_invokable_r =
__nothrow_invokable_r_imp<
__invokable_r<_Ret, _Fp, _Args...>::value,
is_void<_Ret>::value,
_Ret, _Fp, _Args...
>;
template <class _Fp, class ..._Args>
using __nothrow_invokable =
__nothrow_invokable_r_imp<
__invokable<_Fp, _Args...>::value,
true, void, _Fp, _Args...
>;
template <class _Fp, class ..._Args>
struct __invoke_of
: public enable_if<
__invokable<_Fp, _Args...>::value,
typename __invokable_r<void, _Fp, _Args...>::_Result>
{
};
template <class _Ret, bool = is_void<_Ret>::value>
struct __invoke_void_return_wrapper
{
template <class ..._Args>
static _Ret __call(_Args&&... __args) {
return std::__invoke(std::forward<_Args>(__args)...);
}
};
template <class _Ret>
struct __invoke_void_return_wrapper<_Ret, true>
{
template <class ..._Args>
static void __call(_Args&&... __args) {
std::__invoke(std::forward<_Args>(__args)...);
}
};
template <class _Fn, class ..._Args>
struct __attribute__((__type_visibility__("default"))) is_invocable
: integral_constant<bool, __invokable<_Fn, _Args...>::value> {};
template <class _Ret, class _Fn, class ..._Args>
struct __attribute__((__type_visibility__("default"))) is_invocable_r
: integral_constant<bool, __invokable_r<_Ret, _Fn, _Args...>::value> {};
template <class _Fn, class ..._Args>
inline constexpr bool is_invocable_v = is_invocable<_Fn, _Args...>::value;
template <class _Ret, class _Fn, class ..._Args>
inline constexpr bool is_invocable_r_v = is_invocable_r<_Ret, _Fn, _Args...>::value;
template <class _Fn, class ..._Args>
struct __attribute__((__type_visibility__("default"))) is_nothrow_invocable
: integral_constant<bool, __nothrow_invokable<_Fn, _Args...>::value> {};
template <class _Ret, class _Fn, class ..._Args>
struct __attribute__((__type_visibility__("default"))) is_nothrow_invocable_r
: integral_constant<bool, __nothrow_invokable_r<_Ret, _Fn, _Args...>::value> {};
template <class _Fn, class ..._Args>
inline constexpr bool is_nothrow_invocable_v = is_nothrow_invocable<_Fn, _Args...>::value;
template <class _Ret, class _Fn, class ..._Args>
inline constexpr bool is_nothrow_invocable_r_v = is_nothrow_invocable_r<_Ret, _Fn, _Args...>::value;
template <class _Fn, class... _Args>
struct __attribute__((__type_visibility__("default"))) invoke_result
: __invoke_of<_Fn, _Args...>
{
};
template <class _Fn, class... _Args>
using invoke_result_t = typename invoke_result<_Fn, _Args...>::type;
template <class _Fn, class ..._Args>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) invoke_result_t<_Fn, _Args...>
invoke(_Fn&& __f, _Args&&... __args)
noexcept(is_nothrow_invocable_v<_Fn, _Args...>)
{
return std::__invoke(std::forward<_Fn>(__f), std::forward<_Args>(__args)...);
}
# 563 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/invoke.h" 3
}}
# 422 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/hash.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/hash.h" 3
namespace std { inline namespace __1 {
template <class>
struct __attribute__((__type_visibility__("default"))) hash;
}}
# 423 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/add_const.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/add_const.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __attribute__((__type_visibility__("default"))) add_const {
typedef __attribute__((__nodebug__)) const _Tp type;
};
template <class _Tp> using add_const_t = typename add_const<_Tp>::type;
}}
# 424 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/add_cv.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/add_cv.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __attribute__((__type_visibility__("default"))) add_cv {
typedef __attribute__((__nodebug__)) const volatile _Tp type;
};
template <class _Tp> using add_cv_t = typename add_cv<_Tp>::type;
}}
# 425 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/add_rvalue_reference.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/add_rvalue_reference.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
using __add_rvalue_reference_t = __add_rvalue_reference(_Tp);
# 42 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/add_rvalue_reference.h" 3
template <class _Tp>
struct add_rvalue_reference {
using type = __add_rvalue_reference_t<_Tp>;
};
template <class _Tp>
using add_rvalue_reference_t = __add_rvalue_reference_t<_Tp>;
}}
# 428 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/add_volatile.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/add_volatile.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __attribute__((__type_visibility__("default"))) add_volatile {
typedef __attribute__((__nodebug__)) volatile _Tp type;
};
template <class _Tp> using add_volatile_t = typename add_volatile<_Tp>::type;
}}
# 429 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/aligned_storage.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/aligned_storage.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/type_list.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/type_list.h" 3
namespace std { inline namespace __1 {
template <class _Hp, class _Tp>
struct __type_list
{
typedef _Hp _Head;
typedef _Tp _Tail;
};
template <class _TypeList, size_t _Size, bool = _Size <= sizeof(typename _TypeList::_Head)> struct __find_first;
template <class _Hp, class _Tp, size_t _Size>
struct __find_first<__type_list<_Hp, _Tp>, _Size, true>
{
typedef __attribute__((__nodebug__)) _Hp type;
};
template <class _Hp, class _Tp, size_t _Size>
struct __find_first<__type_list<_Hp, _Tp>, _Size, false>
{
typedef __attribute__((__nodebug__)) typename __find_first<_Tp, _Size>::type type;
};
}}
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/aligned_storage.h" 2 3
# 21 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/aligned_storage.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct __align_type
{
static const size_t value = __alignof(_Tp);
typedef _Tp type;
};
struct __struct_double {long double __lx;};
struct __struct_double4 {double __lx[4];};
typedef
__type_list<__align_type<unsigned char>,
__type_list<__align_type<unsigned short>,
__type_list<__align_type<unsigned int>,
__type_list<__align_type<unsigned long>,
__type_list<__align_type<unsigned long long>,
__type_list<__align_type<double>,
__type_list<__align_type<long double>,
__type_list<__align_type<__struct_double>,
__type_list<__align_type<__struct_double4>,
__type_list<__align_type<int*>,
__nat
> > > > > > > > > > __all_types;
template <size_t _Align>
struct alignas(_Align) __fallback_overaligned {};
template <class _TL, size_t _Align> struct __find_pod;
template <class _Hp, size_t _Align>
struct __find_pod<__type_list<_Hp, __nat>, _Align>
{
typedef __conditional_t<_Align == _Hp::value, typename _Hp::type, __fallback_overaligned<_Align> > type;
};
template <class _Hp, class _Tp, size_t _Align>
struct __find_pod<__type_list<_Hp, _Tp>, _Align>
{
typedef __conditional_t<_Align == _Hp::value, typename _Hp::type, typename __find_pod<_Tp, _Align>::type> type;
};
template <class _TL, size_t _Len> struct __find_max_align;
template <class _Hp, size_t _Len>
struct __find_max_align<__type_list<_Hp, __nat>, _Len> : public integral_constant<size_t, _Hp::value> {};
template <size_t _Len, size_t _A1, size_t _A2>
struct __select_align
{
private:
static const size_t __min = _A2 < _A1 ? _A2 : _A1;
static const size_t __max = _A1 < _A2 ? _A2 : _A1;
public:
static const size_t value = _Len < __max ? __min : __max;
};
template <class _Hp, class _Tp, size_t _Len>
struct __find_max_align<__type_list<_Hp, _Tp>, _Len>
: public integral_constant<size_t, __select_align<_Len, _Hp::value, __find_max_align<_Tp, _Len>::value>::value> {};
template <size_t _Len, size_t _Align = __find_max_align<__all_types, _Len>::value>
struct __attribute__((__type_visibility__("default"))) aligned_storage
{
typedef typename __find_pod<__all_types, _Align>::type _Aligner;
union type
{
_Aligner __align;
unsigned char __data[(_Len + _Align - 1)/_Align * _Align];
};
};
#pragma GCC diagnostic push
# 98 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/aligned_storage.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated"
# 98 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/aligned_storage.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
template <size_t _Len, size_t _Align = __find_max_align<__all_types, _Len>::value>
using aligned_storage_t = typename aligned_storage<_Len, _Align>::type;
#pragma GCC diagnostic pop
# 115 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/aligned_storage.h" 3
template <size_t _Len>struct __attribute__((__type_visibility__("default"))) aligned_storage<_Len, 0x1>{ struct alignas(0x1) type { unsigned char __lx[(_Len + 0x1 - 1)/0x1 * 0x1]; };};
template <size_t _Len>struct __attribute__((__type_visibility__("default"))) aligned_storage<_Len, 0x2>{ struct alignas(0x2) type { unsigned char __lx[(_Len + 0x2 - 1)/0x2 * 0x2]; };};
template <size_t _Len>struct __attribute__((__type_visibility__("default"))) aligned_storage<_Len, 0x4>{ struct alignas(0x4) type { unsigned char __lx[(_Len + 0x4 - 1)/0x4 * 0x4]; };};
template <size_t _Len>struct __attribute__((__type_visibility__("default"))) aligned_storage<_Len, 0x8>{ struct alignas(0x8) type { unsigned char __lx[(_Len + 0x8 - 1)/0x8 * 0x8]; };};
template <size_t _Len>struct __attribute__((__type_visibility__("default"))) aligned_storage<_Len, 0x10>{ struct alignas(0x10) type { unsigned char __lx[(_Len + 0x10 - 1)/0x10 * 0x10]; };};
template <size_t _Len>struct __attribute__((__type_visibility__("default"))) aligned_storage<_Len, 0x20>{ struct alignas(0x20) type { unsigned char __lx[(_Len + 0x20 - 1)/0x20 * 0x20]; };};
template <size_t _Len>struct __attribute__((__type_visibility__("default"))) aligned_storage<_Len, 0x40>{ struct alignas(0x40) type { unsigned char __lx[(_Len + 0x40 - 1)/0x40 * 0x40]; };};
template <size_t _Len>struct __attribute__((__type_visibility__("default"))) aligned_storage<_Len, 0x80>{ struct alignas(0x80) type { unsigned char __lx[(_Len + 0x80 - 1)/0x80 * 0x80]; };};
template <size_t _Len>struct __attribute__((__type_visibility__("default"))) aligned_storage<_Len, 0x100>{ struct alignas(0x100) type { unsigned char __lx[(_Len + 0x100 - 1)/0x100 * 0x100]; };};
template <size_t _Len>struct __attribute__((__type_visibility__("default"))) aligned_storage<_Len, 0x200>{ struct alignas(0x200) type { unsigned char __lx[(_Len + 0x200 - 1)/0x200 * 0x200]; };};
template <size_t _Len>struct __attribute__((__type_visibility__("default"))) aligned_storage<_Len, 0x400>{ struct alignas(0x400) type { unsigned char __lx[(_Len + 0x400 - 1)/0x400 * 0x400]; };};
template <size_t _Len>struct __attribute__((__type_visibility__("default"))) aligned_storage<_Len, 0x800>{ struct alignas(0x800) type { unsigned char __lx[(_Len + 0x800 - 1)/0x800 * 0x800]; };};
template <size_t _Len>struct __attribute__((__type_visibility__("default"))) aligned_storage<_Len, 0x1000>{ struct alignas(0x1000) type { unsigned char __lx[(_Len + 0x1000 - 1)/0x1000 * 0x1000]; };};
template <size_t _Len>struct __attribute__((__type_visibility__("default"))) aligned_storage<_Len, 0x2000>{ struct alignas(0x2000) type { unsigned char __lx[(_Len + 0x2000 - 1)/0x2000 * 0x2000]; };};
template <size_t _Len>struct __attribute__((__type_visibility__("default"))) aligned_storage<_Len, 0x4000>{ struct alignas(0x4000) type { unsigned char __lx[(_Len + 0x4000 - 1)/0x4000 * 0x4000]; };};
}}
# 430 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/aligned_union.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/aligned_union.h" 3
namespace std { inline namespace __1 {
template <size_t _I0, size_t ..._In>
struct __static_max;
template <size_t _I0>
struct __static_max<_I0>
{
static const size_t value = _I0;
};
template <size_t _I0, size_t _I1, size_t ..._In>
struct __static_max<_I0, _I1, _In...>
{
static const size_t value = _I0 >= _I1 ? __static_max<_I0, _In...>::value :
__static_max<_I1, _In...>::value;
};
template <size_t _Len, class _Type0, class ..._Types>
struct aligned_union
{
static const size_t alignment_value = __static_max<__alignof(_Type0),
__alignof(_Types)...>::value;
static const size_t __len = __static_max<_Len, sizeof(_Type0),
sizeof(_Types)...>::value;
typedef typename aligned_storage<__len, alignment_value>::type type;
};
template <size_t _Len, class... _Types>
using aligned_union_t = typename aligned_union<_Len, _Types...>::type;
}}
# 431 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/alignment_of.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/alignment_of.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __attribute__((__type_visibility__("default"))) alignment_of
: public integral_constant<size_t, alignof(_Tp)> {};
template <class _Tp>
inline constexpr size_t alignment_of_v = alignof(_Tp);
}}
# 432 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/can_extract_key.h" 1 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/can_extract_key.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/pair.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/pair.h" 3
namespace std { inline namespace __1 {
template <class, class>
struct __attribute__((__type_visibility__("default"))) pair;
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/can_extract_key.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_const_ref.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_const_ref.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
using __remove_const_ref_t = __remove_const_t<__libcpp_remove_reference_t<_Tp> >;
}}
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/can_extract_key.h" 2 3
# 22 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/can_extract_key.h" 3
namespace std { inline namespace __1 {
struct __extract_key_fail_tag {};
struct __extract_key_self_tag {};
struct __extract_key_first_tag {};
template <class _ValTy, class _Key, class _RawValTy = __remove_const_ref_t<_ValTy> >
struct __can_extract_key
: __conditional_t<_IsSame<_RawValTy, _Key>::value, __extract_key_self_tag, __extract_key_fail_tag> {};
template <class _Pair, class _Key, class _First, class _Second>
struct __can_extract_key<_Pair, _Key, pair<_First, _Second> >
: __conditional_t<_IsSame<__remove_const_t<_First>, _Key>::value, __extract_key_first_tag, __extract_key_fail_tag> {
};
template <class _ValTy, class _Key, class _ContainerValueTy,
class _RawValTy = __remove_const_ref_t<_ValTy> >
struct __can_extract_map_key
: integral_constant<bool, _IsSame<_RawValTy, _Key>::value> {};
template <class _ValTy, class _Key, class _RawValTy>
struct __can_extract_map_key<_ValTy, _Key, _Key, _RawValTy>
: false_type {};
}}
# 434 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/common_reference.h" 1 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/common_reference.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/common_type.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/common_type.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_cvref.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_cvref.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
using __remove_cvref_t __attribute__((__nodebug__)) = __remove_cvref(_Tp);
template <class _Tp, class _Up>
struct __is_same_uncvref : _IsSame<__remove_cvref_t<_Tp>, __remove_cvref_t<_Up> > {};
# 43 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_cvref.h" 3
}}
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/common_type.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/void_t.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/void_t.h" 3
namespace std { inline namespace __1 {
template <class...> using void_t = void;
template <class...>
using __void_t = void;
}}
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/common_type.h" 2 3
# 22 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/common_type.h" 3
namespace std { inline namespace __1 {
# 44 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/common_type.h" 3
template <class _Tp, class _Up, class = void>
struct __common_type2_imp {};
template <class _Tp, class _Up>
struct __common_type2_imp<_Tp, _Up, __void_t<decltype(true ? std::declval<_Tp>() : std::declval<_Up>())> >
{
typedef __attribute__((__nodebug__)) typename decay<decltype(
true ? std::declval<_Tp>() : std::declval<_Up>()
)>::type type;
};
template <class, class = void>
struct __common_type_impl {};
template <class... _Tp>
struct __common_types;
template <class... _Tp>
struct __attribute__((__type_visibility__("default"))) common_type;
# 80 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/common_type.h" 3
template <class _Tp, class _Up>
struct __common_type_impl<
__common_types<_Tp, _Up>, __void_t<typename common_type<_Tp, _Up>::type> >
{
typedef typename common_type<_Tp, _Up>::type type;
};
template <class _Tp, class _Up, class _Vp , class... _Rest>
struct __common_type_impl<
__common_types<_Tp, _Up, _Vp , _Rest...>,
__void_t<typename common_type<_Tp, _Up>::type> >
: __common_type_impl<__common_types<typename common_type<_Tp, _Up>::type,
_Vp , _Rest...> > {
};
template <>
struct __attribute__((__type_visibility__("default"))) common_type<> {};
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) common_type<_Tp>
: public common_type<_Tp, _Tp> {};
template <class _Tp, class _Up>
struct __attribute__((__type_visibility__("default"))) common_type<_Tp, _Up>
: conditional<
_IsSame<_Tp, typename decay<_Tp>::type>::value && _IsSame<_Up, typename decay<_Up>::type>::value,
__common_type2_imp<_Tp, _Up>,
common_type<typename decay<_Tp>::type, typename decay<_Up>::type>
>::type
{};
template <class _Tp, class _Up, class _Vp , class... _Rest>
struct __attribute__((__type_visibility__("default")))
common_type<_Tp, _Up, _Vp , _Rest...>
: __common_type_impl<
__common_types<_Tp, _Up, _Vp , _Rest...> > {};
template <class ..._Tp> using common_type_t = typename common_type<_Tp...>::type;
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/common_reference.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/copy_cv.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/copy_cv.h" 3
namespace std { inline namespace __1 {
template <class _From, class _To>
struct __copy_cv
{
using type = _To;
};
template <class _From, class _To>
struct __copy_cv<const _From, _To>
{
using type = typename add_const<_To>::type;
};
template <class _From, class _To>
struct __copy_cv<volatile _From, _To>
{
using type = typename add_volatile<_To>::type;
};
template <class _From, class _To>
struct __copy_cv<const volatile _From, _To>
{
using type = typename add_cv<_To>::type;
};
template <class _From, class _To>
using __copy_cv_t = typename __copy_cv<_From, _To>::type;
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/common_reference.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/copy_cvref.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/copy_cvref.h" 3
namespace std { inline namespace __1 {
template <class _From, class _To>
struct __copy_cvref
{
using type = __copy_cv_t<_From, _To>;
};
template <class _From, class _To>
struct __copy_cvref<_From&, _To>
{
using type = __add_lvalue_reference_t<__copy_cv_t<_From, _To> >;
};
template <class _From, class _To>
struct __copy_cvref<_From&&, _To>
{
using type = __add_rvalue_reference_t<__copy_cv_t<_From, _To> >;
};
template <class _From, class _To>
using __copy_cvref_t = typename __copy_cvref<_From, _To>::type;
}}
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/common_reference.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_convertible.h" 1 3
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_convertible.h" 3
namespace std { inline namespace __1 {
template <class _T1, class _T2> struct __attribute__((__type_visibility__("default"))) is_convertible
: public integral_constant<bool, __is_convertible_to(_T1, _T2)> {};
# 102 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_convertible.h" 3
template <class _From, class _To>
inline constexpr bool is_convertible_v = is_convertible<_From, _To>::value;
}}
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/common_reference.h" 2 3
# 25 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/common_reference.h" 3
namespace std { inline namespace __1 {
# 186 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/common_reference.h" 3
}}
# 435 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/conjunction.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/conjunction.h" 3
namespace std { inline namespace __1 {
template <class...>
using __expand_to_true = true_type;
template <class... _Pred>
__expand_to_true<__enable_if_t<_Pred::value>...> __and_helper(int);
template <class...>
false_type __and_helper(...);
template <class... _Pred>
using _And __attribute__((__nodebug__)) = decltype(std::__and_helper<_Pred...>(0));
template <class...>
struct conjunction : true_type {};
template <class _Arg>
struct conjunction<_Arg> : _Arg {};
template <class _Arg, class... _Args>
struct conjunction<_Arg, _Args...> : conditional_t<!bool(_Arg::value), _Arg, conjunction<_Args...>> {};
template <class... _Args>
inline constexpr bool conjunction_v = conjunction<_Args...>::value;
}}
# 438 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/dependent_type.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/dependent_type.h" 3
namespace std { inline namespace __1 {
template <class _Tp, bool>
struct __attribute__((__type_visibility__("default"))) __dependent_type : public _Tp {};
}}
# 440 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/disjunction.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/disjunction.h" 3
namespace std { inline namespace __1 {
template <bool>
struct _OrImpl;
template <>
struct _OrImpl<true> {
template <class _Res, class _First, class... _Rest>
using _Result __attribute__((__nodebug__)) =
typename _OrImpl<!bool(_First::value) && sizeof...(_Rest) != 0>::template _Result<_First, _Rest...>;
};
template <>
struct _OrImpl<false> {
template <class _Res, class...>
using _Result = _Res;
};
template <class... _Args>
using _Or __attribute__((__nodebug__)) = typename _OrImpl<sizeof...(_Args) != 0>::template _Result<false_type, _Args...>;
template <class... _Args>
struct disjunction : _Or<_Args...> {};
template <class... _Args>
inline constexpr bool disjunction_v = _Or<_Args...>::value;
}}
# 441 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/extent.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/extent.h" 3
namespace std { inline namespace __1 {
template<class _Tp, size_t _Dim = 0>
struct __attribute__((__type_visibility__("default"))) extent
: integral_constant<size_t, __array_extent(_Tp, _Dim)> { };
template <class _Tp, unsigned _Ip = 0>
inline constexpr size_t extent_v = __array_extent(_Tp, _Ip);
# 53 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/extent.h" 3
}}
# 443 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/has_unique_object_representation.h" 1 3
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/has_unique_object_representation.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_all_extents.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_all_extents.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct remove_all_extents {
using type __attribute__((__nodebug__)) = __remove_all_extents(_Tp);
};
template <class _Tp>
using __remove_all_extents_t = __remove_all_extents(_Tp);
# 42 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_all_extents.h" 3
template <class _Tp> using remove_all_extents_t = __remove_all_extents_t<_Tp>;
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/has_unique_object_representation.h" 2 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/has_unique_object_representation.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __attribute__((__type_visibility__("default"))) has_unique_object_representations
: public integral_constant<bool,
__has_unique_object_representations(remove_cv_t<remove_all_extents_t<_Tp>>)> {};
template <class _Tp>
inline constexpr bool has_unique_object_representations_v = has_unique_object_representations<_Tp>::value;
}}
# 444 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/has_virtual_destructor.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/has_virtual_destructor.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __attribute__((__type_visibility__("default"))) has_virtual_destructor
: public integral_constant<bool, __has_virtual_destructor(_Tp)> {};
template <class _Tp>
inline constexpr bool has_virtual_destructor_v = __has_virtual_destructor(_Tp);
}}
# 445 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_abstract.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_abstract.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __attribute__((__type_visibility__("default"))) is_abstract
: public integral_constant<bool, __is_abstract(_Tp)> {};
template <class _Tp>
inline constexpr bool is_abstract_v = __is_abstract(_Tp);
}}
# 447 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_aggregate.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_aggregate.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __attribute__((__type_visibility__("default")))
is_aggregate : public integral_constant<bool, __is_aggregate(_Tp)> {};
template <class _Tp>
inline constexpr bool is_aggregate_v = __is_aggregate(_Tp);
}}
# 448 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_arithmetic.h" 1 3
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_arithmetic.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_floating_point.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_floating_point.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __libcpp_is_floating_point : public false_type {};
template <> struct __libcpp_is_floating_point<float> : public true_type {};
template <> struct __libcpp_is_floating_point<double> : public true_type {};
template <> struct __libcpp_is_floating_point<long double> : public true_type {};
template <class _Tp> struct __attribute__((__type_visibility__("default"))) is_floating_point
: public __libcpp_is_floating_point<__remove_cv_t<_Tp> > {};
template <class _Tp>
inline constexpr bool is_floating_point_v = is_floating_point<_Tp>::value;
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_arithmetic.h" 2 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_arithmetic.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __attribute__((__type_visibility__("default"))) is_arithmetic
: public integral_constant<bool, is_integral<_Tp>::value ||
is_floating_point<_Tp>::value> {};
template <class _Tp>
inline constexpr bool is_arithmetic_v = is_arithmetic<_Tp>::value;
}}
# 449 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_assignable.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_assignable.h" 3
namespace std { inline namespace __1 {
template<class _Tp, class _Up>
struct __attribute__((__type_visibility__("default"))) is_assignable : _BoolConstant<__is_assignable(_Tp, _Up)> { };
template <class _Tp, class _Arg>
inline constexpr bool is_assignable_v = __is_assignable(_Tp, _Arg);
}}
# 451 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_bounded_array.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_bounded_array.h" 3
namespace std { inline namespace __1 {
template <class> struct __attribute__((__type_visibility__("default"))) __libcpp_is_bounded_array : false_type {};
template <class _Tp, size_t _Np> struct __attribute__((__type_visibility__("default"))) __libcpp_is_bounded_array<_Tp[_Np]> : true_type {};
# 36 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_bounded_array.h" 3
}}
# 453 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_callable.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_callable.h" 3
namespace std { inline namespace __1 {
template<class _Func, class... _Args, class = decltype(std::declval<_Func>()(std::declval<_Args>()...))>
true_type __is_callable_helper(int);
template<class...>
false_type __is_callable_helper(...);
template<class _Func, class... _Args>
struct __is_callable : decltype(std::__is_callable_helper<_Func, _Args...>(0)) {};
}}
# 454 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_char_like_type.h" 1 3
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_char_like_type.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_standard_layout.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_standard_layout.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __attribute__((__type_visibility__("default"))) is_standard_layout
: public integral_constant<bool, __is_standard_layout(_Tp)>
{};
template <class _Tp>
inline constexpr bool is_standard_layout_v = __is_standard_layout(_Tp);
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_char_like_type.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_trivial.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_trivial.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __attribute__((__type_visibility__("default"))) is_trivial
: public integral_constant<bool, __is_trivial(_Tp)>
{};
template <class _Tp>
inline constexpr bool is_trivial_v = __is_trivial(_Tp);
}}
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_char_like_type.h" 2 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_char_like_type.h" 3
namespace std { inline namespace __1 {
template <class _CharT>
using _IsCharLikeType = _And<is_standard_layout<_CharT>, is_trivial<_CharT> >;
}}
# 455 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_class.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_class.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __attribute__((__type_visibility__("default"))) is_class
: public integral_constant<bool, __is_class(_Tp)> {};
template <class _Tp>
inline constexpr bool is_class_v = __is_class(_Tp);
}}
# 456 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_compound.h" 1 3
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_compound.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_fundamental.h" 1 3
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_fundamental.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_null_pointer.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_null_pointer.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __is_nullptr_t_impl : public false_type {};
template <> struct __is_nullptr_t_impl<nullptr_t> : public true_type {};
template <class _Tp> struct __attribute__((__type_visibility__("default"))) __is_nullptr_t
: public __is_nullptr_t_impl<__remove_cv_t<_Tp> > {};
template <class _Tp> struct __attribute__((__type_visibility__("default"))) is_null_pointer
: public __is_nullptr_t_impl<__remove_cv_t<_Tp> > {};
template <class _Tp>
inline constexpr bool is_null_pointer_v = is_null_pointer<_Tp>::value;
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_fundamental.h" 2 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_fundamental.h" 3
namespace std { inline namespace __1 {
template<class _Tp>
struct __attribute__((__type_visibility__("default"))) is_fundamental : _BoolConstant<__is_fundamental(_Tp)> { };
template <class _Tp>
inline constexpr bool is_fundamental_v = __is_fundamental(_Tp);
# 47 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_fundamental.h" 3
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_compound.h" 2 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_compound.h" 3
namespace std { inline namespace __1 {
template<class _Tp>
struct __attribute__((__type_visibility__("default"))) is_compound : _BoolConstant<__is_compound(_Tp)> { };
template <class _Tp>
inline constexpr bool is_compound_v = __is_compound(_Tp);
# 44 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_compound.h" 3
}}
# 457 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_constant_evaluated.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_constant_evaluated.h" 3
namespace std { inline namespace __1 {
# 27 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_constant_evaluated.h" 3
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) inline constexpr
bool __libcpp_is_constant_evaluated() noexcept { return __builtin_is_constant_evaluated(); }
}}
# 459 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_constructible.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_constructible.h" 3
namespace std { inline namespace __1 {
template <class _Tp, class ..._Args>
struct __attribute__((__type_visibility__("default"))) is_constructible
: public integral_constant<bool, __is_constructible(_Tp, _Args...)>
{ };
template <class _Tp, class ..._Args>
inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...);
}}
# 460 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_copy_assignable.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_copy_assignable.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) is_copy_assignable
: public integral_constant<
bool,
__is_assignable(__add_lvalue_reference_t<_Tp>,
__add_lvalue_reference_t<typename add_const<_Tp>::type>)> {};
template <class _Tp>
inline constexpr bool is_copy_assignable_v = is_copy_assignable<_Tp>::value;
}}
# 462 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_copy_constructible.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_copy_constructible.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) is_copy_constructible
: public integral_constant<
bool,
__is_constructible(_Tp, __add_lvalue_reference_t<typename add_const<_Tp>::type>)> {};
template <class _Tp>
inline constexpr bool is_copy_constructible_v = is_copy_constructible<_Tp>::value;
}}
# 463 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_default_constructible.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_default_constructible.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) is_default_constructible
: public integral_constant<bool, __is_constructible(_Tp)>
{};
template <class _Tp>
inline constexpr bool is_default_constructible_v = __is_constructible(_Tp);
}}
# 464 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_destructible.h" 1 3
# 21 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_destructible.h" 3
namespace std { inline namespace __1 {
template<class _Tp>
struct __attribute__((__type_visibility__("default"))) is_destructible : _BoolConstant<__is_destructible(_Tp)> { };
template <class _Tp>
inline constexpr bool is_destructible_v = __is_destructible(_Tp);
# 100 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_destructible.h" 3
}}
# 465 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_empty.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_empty.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) is_empty
: public integral_constant<bool, __is_empty(_Tp)> {};
template <class _Tp>
inline constexpr bool is_empty_v = __is_empty(_Tp);
}}
# 466 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_enum.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_enum.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __attribute__((__type_visibility__("default"))) is_enum
: public integral_constant<bool, __is_enum(_Tp)> {};
template <class _Tp>
inline constexpr bool is_enum_v = __is_enum(_Tp);
}}
# 467 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_final.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_final.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __attribute__((__type_visibility__("default")))
__libcpp_is_final : public integral_constant<bool, __is_final(_Tp)> {};
template <class _Tp> struct __attribute__((__type_visibility__("default")))
is_final : public integral_constant<bool, __is_final(_Tp)> {};
template <class _Tp>
inline constexpr bool is_final_v = __is_final(_Tp);
}}
# 468 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_implicitly_default_constructible.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_implicitly_default_constructible.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
void __test_implicit_default_constructible(_Tp);
template <class _Tp, class = void, class = typename is_default_constructible<_Tp>::type>
struct __is_implicitly_default_constructible
: false_type
{ };
template <class _Tp>
struct __is_implicitly_default_constructible<_Tp, decltype(std::__test_implicit_default_constructible<_Tp const&>({})), true_type>
: true_type
{ };
template <class _Tp>
struct __is_implicitly_default_constructible<_Tp, decltype(std::__test_implicit_default_constructible<_Tp const&>({})), false_type>
: false_type
{ };
}}
# 472 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_literal_type.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_literal_type.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __attribute__((__type_visibility__("default"))) __attribute__((__deprecated__)) is_literal_type
: public integral_constant<bool, __is_literal_type(_Tp)>
{};
template <class _Tp>
__attribute__((__deprecated__)) inline constexpr bool is_literal_type_v = __is_literal_type(_Tp);
}}
# 474 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_member_pointer.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_member_pointer.h" 3
namespace std { inline namespace __1 {
template<class _Tp>
struct __attribute__((__type_visibility__("default"))) is_member_pointer : _BoolConstant<__is_member_pointer(_Tp)> { };
template <class _Tp>
inline constexpr bool is_member_pointer_v = __is_member_pointer(_Tp);
# 44 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_member_pointer.h" 3
}}
# 477 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_move_assignable.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_move_assignable.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) is_move_assignable
: public integral_constant<
bool,
__is_assignable(__add_lvalue_reference_t<_Tp>, __add_rvalue_reference_t<_Tp>)> {};
template <class _Tp>
inline constexpr bool is_move_assignable_v = is_move_assignable<_Tp>::value;
}}
# 478 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_move_constructible.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_move_constructible.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) is_move_constructible
: public integral_constant<bool, __is_constructible(_Tp, __add_rvalue_reference_t<_Tp>)>
{};
template <class _Tp>
inline constexpr bool is_move_constructible_v = is_move_constructible<_Tp>::value;
}}
# 479 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_assignable.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_assignable.h" 3
namespace std { inline namespace __1 {
template <class _Tp, class _Arg>
struct __attribute__((__type_visibility__("default"))) is_nothrow_assignable
: public integral_constant<bool, __is_nothrow_assignable(_Tp, _Arg)> {};
template <class _Tp, class _Arg>
inline constexpr bool is_nothrow_assignable_v = __is_nothrow_assignable(_Tp, _Arg);
}}
# 480 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_constructible.h" 1 3
# 21 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_constructible.h" 3
namespace std { inline namespace __1 {
template <
class _Tp, class... _Args>
struct __attribute__((__type_visibility__("default"))) is_nothrow_constructible
: public integral_constant<bool, __is_nothrow_constructible(_Tp, _Args...)> {};
# 72 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_constructible.h" 3
template <class _Tp, class ..._Args>
inline constexpr bool is_nothrow_constructible_v = is_nothrow_constructible<_Tp, _Args...>::value;
}}
# 481 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_convertible.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_convertible.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/lazy.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/lazy.h" 3
namespace std { inline namespace __1 {
template <template <class...> class _Func, class ..._Args>
struct _Lazy : _Func<_Args...> {};
}}
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_convertible.h" 2 3
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_convertible.h" 3
namespace std { inline namespace __1 {
# 51 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_convertible.h" 3
}}
# 482 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_copy_assignable.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_copy_assignable.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) is_nothrow_copy_assignable
: public integral_constant<
bool,
__is_nothrow_assignable(
__add_lvalue_reference_t<_Tp>,
__add_lvalue_reference_t<typename add_const<_Tp>::type>)> {};
template <class _Tp>
inline constexpr bool is_nothrow_copy_assignable_v = is_nothrow_copy_assignable<_Tp>::value;
}}
# 483 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_copy_constructible.h" 1 3
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_copy_constructible.h" 3
namespace std { inline namespace __1 {
# 33 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_copy_constructible.h" 3
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) is_nothrow_copy_constructible
: public integral_constant<
bool,
__is_nothrow_constructible(_Tp, typename add_lvalue_reference<typename add_const<_Tp>::type>::type)> {};
template <class _Tp>
inline constexpr bool is_nothrow_copy_constructible_v = is_nothrow_copy_constructible<_Tp>::value;
}}
# 484 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_default_constructible.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_default_constructible.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __attribute__((__type_visibility__("default"))) is_nothrow_default_constructible
: public integral_constant<bool, __is_nothrow_constructible(_Tp)>
{};
template <class _Tp>
inline constexpr bool is_nothrow_default_constructible_v = __is_nothrow_constructible(_Tp);
}}
# 485 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_destructible.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_destructible.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_scalar.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_scalar.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_pointer.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_pointer.h" 3
namespace std { inline namespace __1 {
template<class _Tp>
struct __attribute__((__type_visibility__("default"))) is_pointer : _BoolConstant<__is_pointer(_Tp)> { };
template <class _Tp>
inline constexpr bool is_pointer_v = __is_pointer(_Tp);
# 55 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_pointer.h" 3
}}
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_scalar.h" 2 3
# 22 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_scalar.h" 3
namespace std { inline namespace __1 {
template<class _Tp>
struct __attribute__((__type_visibility__("default"))) is_scalar : _BoolConstant<__is_scalar(_Tp)> { };
template <class _Tp>
inline constexpr bool is_scalar_v = __is_scalar(_Tp);
# 60 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_scalar.h" 3
}}
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_destructible.h" 2 3
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_destructible.h" 3
namespace std { inline namespace __1 {
template <bool, class _Tp> struct __libcpp_is_nothrow_destructible;
template <class _Tp>
struct __libcpp_is_nothrow_destructible<false, _Tp>
: public false_type
{
};
template <class _Tp>
struct __libcpp_is_nothrow_destructible<true, _Tp>
: public integral_constant<bool, noexcept(std::declval<_Tp>().~_Tp()) >
{
};
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) is_nothrow_destructible
: public __libcpp_is_nothrow_destructible<is_destructible<_Tp>::value, _Tp>
{
};
template <class _Tp, size_t _Ns>
struct __attribute__((__type_visibility__("default"))) is_nothrow_destructible<_Tp[_Ns]>
: public is_nothrow_destructible<_Tp>
{
};
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) is_nothrow_destructible<_Tp&>
: public true_type
{
};
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) is_nothrow_destructible<_Tp&&>
: public true_type
{
};
# 83 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_destructible.h" 3
template <class _Tp>
inline constexpr bool is_nothrow_destructible_v = is_nothrow_destructible<_Tp>::value;
}}
# 486 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_move_assignable.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_move_assignable.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) is_nothrow_move_assignable
: public integral_constant<
bool,
__is_nothrow_assignable(__add_lvalue_reference_t<_Tp>, __add_rvalue_reference_t<_Tp>)> {
};
template <class _Tp>
inline constexpr bool is_nothrow_move_assignable_v = is_nothrow_move_assignable<_Tp>::value;
}}
# 487 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_move_constructible.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_move_constructible.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __attribute__((__type_visibility__("default"))) is_nothrow_move_constructible
: public integral_constant<bool, __is_nothrow_constructible(_Tp, __add_rvalue_reference_t<_Tp>)>
{};
# 39 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_nothrow_move_constructible.h" 3
template <class _Tp>
inline constexpr bool is_nothrow_move_constructible_v = is_nothrow_move_constructible<_Tp>::value;
}}
# 488 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_object.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_object.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_union.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_union.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __attribute__((__type_visibility__("default"))) is_union
: public integral_constant<bool, __is_union(_Tp)> {};
template <class _Tp>
inline constexpr bool is_union_v = __is_union(_Tp);
}}
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_object.h" 2 3
# 21 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_object.h" 3
namespace std { inline namespace __1 {
template<class _Tp>
struct __attribute__((__type_visibility__("default"))) is_object : _BoolConstant<__is_object(_Tp)> { };
template <class _Tp>
inline constexpr bool is_object_v = __is_object(_Tp);
# 50 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_object.h" 3
}}
# 490 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_pod.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_pod.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __attribute__((__type_visibility__("default"))) is_pod
: public integral_constant<bool, __is_pod(_Tp)> {};
template <class _Tp>
inline constexpr bool is_pod_v = __is_pod(_Tp);
}}
# 491 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_polymorphic.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_polymorphic.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) is_polymorphic
: public integral_constant<bool, __is_polymorphic(_Tp)> {};
template <class _Tp>
inline constexpr bool is_polymorphic_v = __is_polymorphic(_Tp);
}}
# 493 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_scoped_enum.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_scoped_enum.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/underlying_type.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/underlying_type.h" 3
namespace std { inline namespace __1 {
template <class _Tp, bool = is_enum<_Tp>::value> struct __underlying_type_impl;
template <class _Tp>
struct __underlying_type_impl<_Tp, false> {};
template <class _Tp>
struct __underlying_type_impl<_Tp, true>
{
typedef __underlying_type(_Tp) type;
};
template <class _Tp>
struct underlying_type : __underlying_type_impl<_Tp, is_enum<_Tp>::value> {};
template <class _Tp> using underlying_type_t = typename underlying_type<_Tp>::type;
}}
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_scoped_enum.h" 2 3
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_scoped_enum.h" 3
namespace std { inline namespace __1 {
# 40 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_scoped_enum.h" 3
}}
# 499 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_signed.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_signed.h" 3
namespace std { inline namespace __1 {
template<class _Tp>
struct __attribute__((__type_visibility__("default"))) is_signed : _BoolConstant<__is_signed(_Tp)> { };
template <class _Tp>
inline constexpr bool is_signed_v = __is_signed(_Tp);
# 55 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_signed.h" 3
}}
# 500 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_specialization.h" 1 3
# 29 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_specialization.h" 3
namespace std { inline namespace __1 {
template <class _Tp, template <class...> class _Template>
inline constexpr bool __is_specialization_v = false;
template <template <class...> class _Template, class... _Args>
inline constexpr bool __is_specialization_v<_Template<_Args...>, _Template> = true;
}}
# 501 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_swappable.h" 1 3
# 29 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_swappable.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __is_swappable;
template <class _Tp> struct __is_nothrow_swappable;
template <class _Tp>
using __swap_result_t = typename enable_if<is_move_constructible<_Tp>::value && is_move_assignable<_Tp>::value>::type;
template <class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
__swap_result_t<_Tp>
swap(_Tp& __x, _Tp& __y) noexcept(is_nothrow_move_constructible<_Tp>::value && is_nothrow_move_assignable<_Tp>::value);
template<class _Tp, size_t _Np>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename enable_if<
__is_swappable<_Tp>::value
>::type
swap(_Tp (&__a)[_Np], _Tp (&__b)[_Np]) noexcept(__is_nothrow_swappable<_Tp>::value);
namespace __detail
{
template <class _Tp, class _Up = _Tp,
bool _NotVoid = !is_void<_Tp>::value && !is_void<_Up>::value>
struct __swappable_with
{
template <class _LHS, class _RHS>
static decltype(swap(std::declval<_LHS>(), std::declval<_RHS>()))
__test_swap(int);
template <class, class>
static __nat __test_swap(long);
typedef decltype((__test_swap<_Tp, _Up>(0))) __swap1;
typedef decltype((__test_swap<_Up, _Tp>(0))) __swap2;
static const bool value = _IsNotSame<__swap1, __nat>::value
&& _IsNotSame<__swap2, __nat>::value;
};
template <class _Tp, class _Up>
struct __swappable_with<_Tp, _Up, false> : false_type {};
template <class _Tp, class _Up = _Tp, bool _Swappable = __swappable_with<_Tp, _Up>::value>
struct __nothrow_swappable_with {
static const bool value =
noexcept(swap(std::declval<_Tp>(), std::declval<_Up>()))
&& noexcept(swap(std::declval<_Up>(), std::declval<_Tp>()));
};
template <class _Tp, class _Up>
struct __nothrow_swappable_with<_Tp, _Up, false> : false_type {};
}
template <class _Tp>
struct __is_swappable
: public integral_constant<bool, __detail::__swappable_with<_Tp&>::value>
{
};
template <class _Tp>
struct __is_nothrow_swappable
: public integral_constant<bool, __detail::__nothrow_swappable_with<_Tp&>::value>
{
};
template <class _Tp, class _Up>
struct __attribute__((__type_visibility__("default"))) is_swappable_with
: public integral_constant<bool, __detail::__swappable_with<_Tp, _Up>::value>
{
};
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) is_swappable
: public __conditional_t<
__libcpp_is_referenceable<_Tp>::value,
is_swappable_with<
__add_lvalue_reference_t<_Tp>,
__add_lvalue_reference_t<_Tp> >,
false_type
>
{
};
template <class _Tp, class _Up>
struct __attribute__((__type_visibility__("default"))) is_nothrow_swappable_with
: public integral_constant<bool, __detail::__nothrow_swappable_with<_Tp, _Up>::value>
{
};
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) is_nothrow_swappable
: public __conditional_t<
__libcpp_is_referenceable<_Tp>::value,
is_nothrow_swappable_with<
__add_lvalue_reference_t<_Tp>,
__add_lvalue_reference_t<_Tp> >,
false_type
>
{
};
template <class _Tp, class _Up>
inline constexpr bool is_swappable_with_v = is_swappable_with<_Tp, _Up>::value;
template <class _Tp>
inline constexpr bool is_swappable_v = is_swappable<_Tp>::value;
template <class _Tp, class _Up>
inline constexpr bool is_nothrow_swappable_with_v = is_nothrow_swappable_with<_Tp, _Up>::value;
template <class _Tp>
inline constexpr bool is_nothrow_swappable_v = is_nothrow_swappable<_Tp>::value;
}}
# 503 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_trivially_assignable.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_trivially_assignable.h" 3
namespace std { inline namespace __1 {
template <class _Tp, class _Arg>
struct is_trivially_assignable
: integral_constant<bool, __is_trivially_assignable(_Tp, _Arg)>
{ };
template <class _Tp, class _Arg>
inline constexpr bool is_trivially_assignable_v = __is_trivially_assignable(_Tp, _Arg);
}}
# 505 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_trivially_constructible.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_trivially_constructible.h" 3
namespace std { inline namespace __1 {
template <class _Tp, class... _Args>
struct __attribute__((__type_visibility__("default"))) is_trivially_constructible
: integral_constant<bool, __is_trivially_constructible(_Tp, _Args...)>
{
};
template <class _Tp, class... _Args>
inline constexpr bool is_trivially_constructible_v = __is_trivially_constructible(_Tp, _Args...);
}}
# 506 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_trivially_copy_assignable.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_trivially_copy_assignable.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) is_trivially_copy_assignable
: public integral_constant<
bool,
__is_trivially_assignable(
__add_lvalue_reference_t<_Tp>,
__add_lvalue_reference_t<typename add_const<_Tp>::type>)> {};
template <class _Tp>
inline constexpr bool is_trivially_copy_assignable_v = is_trivially_copy_assignable<_Tp>::value;
}}
# 507 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_trivially_copy_constructible.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_trivially_copy_constructible.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __attribute__((__type_visibility__("default"))) is_trivially_copy_constructible
: public integral_constant<bool, __is_trivially_constructible(_Tp, __add_lvalue_reference_t<const _Tp>)>
{};
template <class _Tp>
inline constexpr bool is_trivially_copy_constructible_v = is_trivially_copy_constructible<_Tp>::value;
}}
# 508 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_trivially_copyable.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_trivially_copyable.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __attribute__((__type_visibility__("default"))) is_trivially_copyable
: public integral_constant<bool, __is_trivially_copyable(_Tp)>
{};
template <class _Tp>
inline constexpr bool is_trivially_copyable_v = __is_trivially_copyable(_Tp);
}}
# 509 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_trivially_default_constructible.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_trivially_default_constructible.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __attribute__((__type_visibility__("default"))) is_trivially_default_constructible
: public integral_constant<bool, __is_trivially_constructible(_Tp)>
{};
template <class _Tp>
inline constexpr bool is_trivially_default_constructible_v = __is_trivially_constructible(_Tp);
}}
# 510 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_trivially_destructible.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_trivially_destructible.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __attribute__((__type_visibility__("default"))) is_trivially_destructible
: public integral_constant<bool, __is_trivially_destructible(_Tp)> {};
# 39 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_trivially_destructible.h" 3
template <class _Tp>
inline constexpr bool is_trivially_destructible_v = is_trivially_destructible<_Tp>::value;
}}
# 511 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_trivially_move_assignable.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_trivially_move_assignable.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) is_trivially_move_assignable
: public integral_constant<
bool,
__is_trivially_assignable(__add_lvalue_reference_t<_Tp>, __add_rvalue_reference_t<_Tp>)> {};
template <class _Tp>
inline constexpr bool is_trivially_move_assignable_v = is_trivially_move_assignable<_Tp>::value;
}}
# 512 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_trivially_move_constructible.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_trivially_move_constructible.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) is_trivially_move_constructible
: public integral_constant<bool, __is_trivially_constructible(_Tp, __add_rvalue_reference_t<_Tp>)> {};
template <class _Tp>
inline constexpr bool is_trivially_move_constructible_v = is_trivially_move_constructible<_Tp>::value;
}}
# 513 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_unbounded_array.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_unbounded_array.h" 3
namespace std { inline namespace __1 {
template <class> struct __attribute__((__type_visibility__("default"))) __libcpp_is_unbounded_array : false_type {};
template <class _Tp> struct __attribute__((__type_visibility__("default"))) __libcpp_is_unbounded_array<_Tp[]> : true_type {};
# 35 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_unbounded_array.h" 3
}}
# 514 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_unsigned.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_unsigned.h" 3
namespace std { inline namespace __1 {
template<class _Tp>
struct __attribute__((__type_visibility__("default"))) is_unsigned : _BoolConstant<__is_unsigned(_Tp)> { };
template <class _Tp>
inline constexpr bool is_unsigned_v = __is_unsigned(_Tp);
# 55 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_unsigned.h" 3
}}
# 516 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/make_const_lvalue_ref.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/make_const_lvalue_ref.h" 3
namespace std { inline namespace __1 {
template<class _Tp>
using __make_const_lvalue_ref = const __libcpp_remove_reference_t<_Tp>&;
}}
# 519 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/make_signed.h" 1 3
# 22 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/make_signed.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
using __make_signed_t = __make_signed(_Tp);
# 75 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/make_signed.h" 3
template <class _Tp>
struct make_signed {
using type __attribute__((__nodebug__)) = __make_signed_t<_Tp>;
};
template <class _Tp> using make_signed_t = __make_signed_t<_Tp>;
}}
# 520 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/make_unsigned.h" 1 3
# 24 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/make_unsigned.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
using __make_unsigned_t = __make_unsigned(_Tp);
# 77 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/make_unsigned.h" 3
template <class _Tp>
struct make_unsigned {
using type __attribute__((__nodebug__)) = __make_unsigned_t<_Tp>;
};
template <class _Tp> using make_unsigned_t = __make_unsigned_t<_Tp>;
template <class _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
__make_unsigned_t<_Tp> __to_unsigned_like(_Tp __x) noexcept {
return static_cast<__make_unsigned_t<_Tp> >(__x);
}
template <class _Tp, class _Up>
using __copy_unsigned_t = __conditional_t<is_unsigned<_Tp>::value, __make_unsigned_t<_Up>, _Up>;
}}
# 521 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/maybe_const.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/maybe_const.h" 3
namespace std { inline namespace __1 {
template<bool _Const, class _Tp>
using __maybe_const = __conditional_t<_Const, const _Tp, _Tp>;
}}
# 522 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/negation.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/negation.h" 3
namespace std { inline namespace __1 {
template <class _Pred>
struct _Not : _BoolConstant<!_Pred::value> {};
template <class _Tp>
struct negation : _Not<_Tp> {};
template<class _Tp>
inline constexpr bool negation_v = !_Tp::value;
}}
# 523 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/rank.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/rank.h" 3
namespace std { inline namespace __1 {
# 30 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/rank.h" 3
template <class _Tp> struct __attribute__((__type_visibility__("default"))) rank
: public integral_constant<size_t, 0> {};
template <class _Tp> struct __attribute__((__type_visibility__("default"))) rank<_Tp[]>
: public integral_constant<size_t, rank<_Tp>::value + 1> {};
template <class _Tp, size_t _Np> struct __attribute__((__type_visibility__("default"))) rank<_Tp[_Np]>
: public integral_constant<size_t, rank<_Tp>::value + 1> {};
template <class _Tp>
inline constexpr size_t rank_v = rank<_Tp>::value;
}}
# 524 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_pointer.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_pointer.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct remove_pointer {
using type __attribute__((__nodebug__)) = __remove_pointer(_Tp);
};
template <class _Tp>
using __remove_pointer_t = __remove_pointer(_Tp);
# 40 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/remove_pointer.h" 3
template <class _Tp> using remove_pointer_t = __remove_pointer_t<_Tp>;
}}
# 530 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/result_of.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/result_of.h" 3
namespace std { inline namespace __1 {
template <class _Callable> class __attribute__((__deprecated__)) result_of;
template <class _Fp, class ..._Args>
class __attribute__((__type_visibility__("default"))) result_of<_Fp(_Args...)>
: public __invoke_of<_Fp, _Args...>
{
};
template <class _Tp> using result_of_t __attribute__((__deprecated__)) = typename result_of<_Tp>::type;
}}
# 533 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/type_identity.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/type_identity.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct __type_identity { typedef _Tp type; };
template <class _Tp>
using __type_identity_t __attribute__((__nodebug__)) = typename __type_identity<_Tp>::type;
}}
# 534 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cstdint" 1 3
# 146 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cstdint" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stdint.h" 1 3
# 110 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stdint.h" 3
# 124 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stdint.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build0/lib/clang/17/include/stdint.h" 1 3
# 52 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build0/lib/clang/17/include/stdint.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdint.h" 1 3
# 26 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdint.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/libc-header-start.h" 1 3
# 27 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdint.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types.h" 1 3
# 27 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/wordsize.h" 1 3
# 28 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/timesize.h" 1 3
# 29 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types.h" 2 3
typedef unsigned char __u_char;
typedef unsigned short int __u_short;
typedef unsigned int __u_int;
typedef unsigned long int __u_long;
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
typedef signed long int __int64_t;
typedef unsigned long int __uint64_t;
typedef __int8_t __int_least8_t;
typedef __uint8_t __uint_least8_t;
typedef __int16_t __int_least16_t;
typedef __uint16_t __uint_least16_t;
typedef __int32_t __int_least32_t;
typedef __uint32_t __uint_least32_t;
typedef __int64_t __int_least64_t;
typedef __uint64_t __uint_least64_t;
typedef long int __quad_t;
typedef unsigned long int __u_quad_t;
typedef long int __intmax_t;
typedef unsigned long int __uintmax_t;
# 141 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/typesizes.h" 1 3
# 142 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/time64.h" 1 3
# 143 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types.h" 2 3
typedef unsigned long int __dev_t;
typedef unsigned int __uid_t;
typedef unsigned int __gid_t;
typedef unsigned long int __ino_t;
typedef unsigned long int __ino64_t;
typedef unsigned int __mode_t;
typedef unsigned int __nlink_t;
typedef long int __off_t;
typedef long int __off64_t;
typedef int __pid_t;
typedef struct { int __val[2]; } __fsid_t;
typedef long int __clock_t;
typedef unsigned long int __rlim_t;
typedef unsigned long int __rlim64_t;
typedef unsigned int __id_t;
typedef long int __time_t;
typedef unsigned int __useconds_t;
typedef long int __suseconds_t;
typedef long int __suseconds64_t;
typedef int __daddr_t;
typedef int __key_t;
typedef int __clockid_t;
typedef void * __timer_t;
typedef int __blksize_t;
typedef long int __blkcnt_t;
typedef long int __blkcnt64_t;
typedef unsigned long int __fsblkcnt_t;
typedef unsigned long int __fsblkcnt64_t;
typedef unsigned long int __fsfilcnt_t;
typedef unsigned long int __fsfilcnt64_t;
typedef long int __fsword_t;
typedef long int __ssize_t;
typedef long int __syscall_slong_t;
typedef unsigned long int __syscall_ulong_t;
typedef __off64_t __loff_t;
typedef char *__caddr_t;
typedef long int __intptr_t;
typedef unsigned int __socklen_t;
typedef int __sig_atomic_t;
# 28 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdint.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/wchar.h" 1 3
# 29 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdint.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/wordsize.h" 1 3
# 30 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdint.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/stdint-intn.h" 1 3
# 24 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/stdint-intn.h" 3
typedef __int8_t int8_t;
typedef __int16_t int16_t;
typedef __int32_t int32_t;
typedef __int64_t int64_t;
# 35 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdint.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/stdint-uintn.h" 1 3
# 24 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/stdint-uintn.h" 3
typedef __uint8_t uint8_t;
typedef __uint16_t uint16_t;
typedef __uint32_t uint32_t;
typedef __uint64_t uint64_t;
# 38 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdint.h" 2 3
typedef __int_least8_t int_least8_t;
typedef __int_least16_t int_least16_t;
typedef __int_least32_t int_least32_t;
typedef __int_least64_t int_least64_t;
typedef __uint_least8_t uint_least8_t;
typedef __uint_least16_t uint_least16_t;
typedef __uint_least32_t uint_least32_t;
typedef __uint_least64_t uint_least64_t;
typedef signed char int_fast8_t;
typedef long int int_fast16_t;
typedef long int int_fast32_t;
typedef long int int_fast64_t;
# 71 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdint.h" 3
typedef unsigned char uint_fast8_t;
typedef unsigned long int uint_fast16_t;
typedef unsigned long int uint_fast32_t;
typedef unsigned long int uint_fast64_t;
# 87 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdint.h" 3
typedef long int intptr_t;
typedef unsigned long int uintptr_t;
# 101 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdint.h" 3
typedef __intmax_t intmax_t;
typedef __uintmax_t uintmax_t;
# 53 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build0/lib/clang/17/include/stdint.h" 2 3
# 125 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stdint.h" 2 3
# 147 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cstdint" 2 3
# 158 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cstdint" 3
namespace std { inline namespace __1 {
using ::int8_t __attribute__((__using_if_exists__));
using ::int16_t __attribute__((__using_if_exists__));
using ::int32_t __attribute__((__using_if_exists__));
using ::int64_t __attribute__((__using_if_exists__));
using ::uint8_t __attribute__((__using_if_exists__));
using ::uint16_t __attribute__((__using_if_exists__));
using ::uint32_t __attribute__((__using_if_exists__));
using ::uint64_t __attribute__((__using_if_exists__));
using ::int_least8_t __attribute__((__using_if_exists__));
using ::int_least16_t __attribute__((__using_if_exists__));
using ::int_least32_t __attribute__((__using_if_exists__));
using ::int_least64_t __attribute__((__using_if_exists__));
using ::uint_least8_t __attribute__((__using_if_exists__));
using ::uint_least16_t __attribute__((__using_if_exists__));
using ::uint_least32_t __attribute__((__using_if_exists__));
using ::uint_least64_t __attribute__((__using_if_exists__));
using ::int_fast8_t __attribute__((__using_if_exists__));
using ::int_fast16_t __attribute__((__using_if_exists__));
using ::int_fast32_t __attribute__((__using_if_exists__));
using ::int_fast64_t __attribute__((__using_if_exists__));
using ::uint_fast8_t __attribute__((__using_if_exists__));
using ::uint_fast16_t __attribute__((__using_if_exists__));
using ::uint_fast32_t __attribute__((__using_if_exists__));
using ::uint_fast64_t __attribute__((__using_if_exists__));
using ::intptr_t __attribute__((__using_if_exists__));
using ::uintptr_t __attribute__((__using_if_exists__));
using ::intmax_t __attribute__((__using_if_exists__));
using ::uintmax_t __attribute__((__using_if_exists__));
}}
# 539 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 2 3
# 543 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/type_traits" 3
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/ADT/BitmaskEnum.h" 2
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/utility" 1 3
# 242 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/utility" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/as_const.h" 1 3
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/as_const.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/move.h" 1 3
# 21 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/move.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr __libcpp_remove_reference_t<_Tp>&&
move([[_Clang::__lifetimebound__]] _Tp&& __t) noexcept {
typedef __attribute__((__nodebug__)) __libcpp_remove_reference_t<_Tp> _Up;
return static_cast<_Up&&>(__t);
}
template <class _Tp>
using __move_if_noexcept_result_t =
__conditional_t<!is_nothrow_move_constructible<_Tp>::value && is_copy_constructible<_Tp>::value, const _Tp&, _Tp&&>;
template <class _Tp>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr __move_if_noexcept_result_t<_Tp>
move_if_noexcept([[_Clang::__lifetimebound__]] _Tp& __x) noexcept {
return std::move(__x);
}
}}
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/as_const.h" 2 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/as_const.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr add_const_t<_Tp>& as_const(_Tp& __t) noexcept { return __t; }
template <class _Tp>
void as_const(const _Tp&&) = delete;
}}
# 243 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/utility" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/auto_cast.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/auto_cast.h" 3
# 244 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/utility" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/cmp.h" 1 3
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/cmp.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/limits" 1 3
# 113 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/limits" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__undef_macros" 1 3
# 117 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/limits" 2 3
namespace std { inline namespace __1 {
enum float_round_style
{
round_indeterminate = -1,
round_toward_zero = 0,
round_to_nearest = 1,
round_toward_infinity = 2,
round_toward_neg_infinity = 3
};
enum float_denorm_style
{
denorm_indeterminate = -1,
denorm_absent = 0,
denorm_present = 1
};
template <class _Tp, bool = is_arithmetic<_Tp>::value>
class __libcpp_numeric_limits
{
protected:
typedef _Tp type;
static constexpr const bool is_specialized = false;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type min() noexcept {return type();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type max() noexcept {return type();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type lowest() noexcept {return type();}
static constexpr const int digits = 0;
static constexpr const int digits10 = 0;
static constexpr const int max_digits10 = 0;
static constexpr const bool is_signed = false;
static constexpr const bool is_integer = false;
static constexpr const bool is_exact = false;
static constexpr const int radix = 0;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type epsilon() noexcept {return type();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type round_error() noexcept {return type();}
static constexpr const int min_exponent = 0;
static constexpr const int min_exponent10 = 0;
static constexpr const int max_exponent = 0;
static constexpr const int max_exponent10 = 0;
static constexpr const bool has_infinity = false;
static constexpr const bool has_quiet_NaN = false;
static constexpr const bool has_signaling_NaN = false;
static constexpr const float_denorm_style has_denorm = denorm_absent;
static constexpr const bool has_denorm_loss = false;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type infinity() noexcept {return type();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type quiet_NaN() noexcept {return type();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type signaling_NaN() noexcept {return type();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type denorm_min() noexcept {return type();}
static constexpr const bool is_iec559 = false;
static constexpr const bool is_bounded = false;
static constexpr const bool is_modulo = false;
static constexpr const bool traps = false;
static constexpr const bool tinyness_before = false;
static constexpr const float_round_style round_style = round_toward_zero;
};
template <class _Tp, int __digits, bool _IsSigned>
struct __libcpp_compute_min
{
static constexpr const _Tp value = _Tp(_Tp(1) << __digits);
};
template <class _Tp, int __digits>
struct __libcpp_compute_min<_Tp, __digits, false>
{
static constexpr const _Tp value = _Tp(0);
};
template <class _Tp>
class __libcpp_numeric_limits<_Tp, true>
{
protected:
typedef _Tp type;
static constexpr const bool is_specialized = true;
static constexpr const bool is_signed = type(-1) < type(0);
static constexpr const int digits = static_cast<int>(sizeof(type) * 8 - is_signed);
static constexpr const int digits10 = digits * 3 / 10;
static constexpr const int max_digits10 = 0;
static constexpr const type __min = __libcpp_compute_min<type, digits, is_signed>::value;
static constexpr const type __max = is_signed ? type(type(~0) ^ __min) : type(~0);
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type min() noexcept {return __min;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type max() noexcept {return __max;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type lowest() noexcept {return min();}
static constexpr const bool is_integer = true;
static constexpr const bool is_exact = true;
static constexpr const int radix = 2;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type epsilon() noexcept {return type(0);}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type round_error() noexcept {return type(0);}
static constexpr const int min_exponent = 0;
static constexpr const int min_exponent10 = 0;
static constexpr const int max_exponent = 0;
static constexpr const int max_exponent10 = 0;
static constexpr const bool has_infinity = false;
static constexpr const bool has_quiet_NaN = false;
static constexpr const bool has_signaling_NaN = false;
static constexpr const float_denorm_style has_denorm = denorm_absent;
static constexpr const bool has_denorm_loss = false;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type infinity() noexcept {return type(0);}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type quiet_NaN() noexcept {return type(0);}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type signaling_NaN() noexcept {return type(0);}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type denorm_min() noexcept {return type(0);}
static constexpr const bool is_iec559 = false;
static constexpr const bool is_bounded = true;
static constexpr const bool is_modulo = !std::is_signed<_Tp>::value;
static constexpr const bool traps = false;
static constexpr const bool tinyness_before = false;
static constexpr const float_round_style round_style = round_toward_zero;
};
template <>
class __libcpp_numeric_limits<bool, true>
{
protected:
typedef bool type;
static constexpr const bool is_specialized = true;
static constexpr const bool is_signed = false;
static constexpr const int digits = 1;
static constexpr const int digits10 = 0;
static constexpr const int max_digits10 = 0;
static constexpr const type __min = false;
static constexpr const type __max = true;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type min() noexcept {return __min;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type max() noexcept {return __max;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type lowest() noexcept {return min();}
static constexpr const bool is_integer = true;
static constexpr const bool is_exact = true;
static constexpr const int radix = 2;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type epsilon() noexcept {return type(0);}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type round_error() noexcept {return type(0);}
static constexpr const int min_exponent = 0;
static constexpr const int min_exponent10 = 0;
static constexpr const int max_exponent = 0;
static constexpr const int max_exponent10 = 0;
static constexpr const bool has_infinity = false;
static constexpr const bool has_quiet_NaN = false;
static constexpr const bool has_signaling_NaN = false;
static constexpr const float_denorm_style has_denorm = denorm_absent;
static constexpr const bool has_denorm_loss = false;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type infinity() noexcept {return type(0);}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type quiet_NaN() noexcept {return type(0);}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type signaling_NaN() noexcept {return type(0);}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type denorm_min() noexcept {return type(0);}
static constexpr const bool is_iec559 = false;
static constexpr const bool is_bounded = true;
static constexpr const bool is_modulo = false;
static constexpr const bool traps = false;
static constexpr const bool tinyness_before = false;
static constexpr const float_round_style round_style = round_toward_zero;
};
template <>
class __libcpp_numeric_limits<float, true>
{
protected:
typedef float type;
static constexpr const bool is_specialized = true;
static constexpr const bool is_signed = true;
static constexpr const int digits = 24;
static constexpr const int digits10 = 6;
static constexpr const int max_digits10 = 2+(digits * 30103l)/100000l;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type min() noexcept {return 1.17549435e-38F;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type max() noexcept {return 3.40282347e+38F;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type lowest() noexcept {return -max();}
static constexpr const bool is_integer = false;
static constexpr const bool is_exact = false;
static constexpr const int radix = 2;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type epsilon() noexcept {return 1.19209290e-7F;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type round_error() noexcept {return 0.5F;}
static constexpr const int min_exponent = (-125);
static constexpr const int min_exponent10 = (-37);
static constexpr const int max_exponent = 128;
static constexpr const int max_exponent10 = 38;
static constexpr const bool has_infinity = true;
static constexpr const bool has_quiet_NaN = true;
static constexpr const bool has_signaling_NaN = true;
static constexpr const float_denorm_style has_denorm = denorm_present;
static constexpr const bool has_denorm_loss = false;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type infinity() noexcept {return __builtin_huge_valf();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type quiet_NaN() noexcept {return __builtin_nanf("");}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type signaling_NaN() noexcept {return __builtin_nansf("");}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type denorm_min() noexcept {return 1.40129846e-45F;}
static constexpr const bool is_iec559 = true;
static constexpr const bool is_bounded = true;
static constexpr const bool is_modulo = false;
static constexpr const bool traps = false;
static constexpr const bool tinyness_before = true;
static constexpr const float_round_style round_style = round_to_nearest;
};
template <>
class __libcpp_numeric_limits<double, true>
{
protected:
typedef double type;
static constexpr const bool is_specialized = true;
static constexpr const bool is_signed = true;
static constexpr const int digits = 53;
static constexpr const int digits10 = 15;
static constexpr const int max_digits10 = 2+(digits * 30103l)/100000l;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type min() noexcept {return 2.2250738585072014e-308;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type max() noexcept {return 1.7976931348623157e+308;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type lowest() noexcept {return -max();}
static constexpr const bool is_integer = false;
static constexpr const bool is_exact = false;
static constexpr const int radix = 2;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type epsilon() noexcept {return 2.2204460492503131e-16;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type round_error() noexcept {return 0.5;}
static constexpr const int min_exponent = (-1021);
static constexpr const int min_exponent10 = (-307);
static constexpr const int max_exponent = 1024;
static constexpr const int max_exponent10 = 308;
static constexpr const bool has_infinity = true;
static constexpr const bool has_quiet_NaN = true;
static constexpr const bool has_signaling_NaN = true;
static constexpr const float_denorm_style has_denorm = denorm_present;
static constexpr const bool has_denorm_loss = false;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type infinity() noexcept {return __builtin_huge_val();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type quiet_NaN() noexcept {return __builtin_nan("");}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type signaling_NaN() noexcept {return __builtin_nans("");}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type denorm_min() noexcept {return 4.9406564584124654e-324;}
static constexpr const bool is_iec559 = true;
static constexpr const bool is_bounded = true;
static constexpr const bool is_modulo = false;
static constexpr const bool traps = false;
static constexpr const bool tinyness_before = true;
static constexpr const float_round_style round_style = round_to_nearest;
};
template <>
class __libcpp_numeric_limits<long double, true>
{
protected:
typedef long double type;
static constexpr const bool is_specialized = true;
static constexpr const bool is_signed = true;
static constexpr const int digits = 113;
static constexpr const int digits10 = 33;
static constexpr const int max_digits10 = 2+(digits * 30103l)/100000l;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type min() noexcept {return 3.36210314311209350626267781732175260e-4932L;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type max() noexcept {return 1.18973149535723176508575932662800702e+4932L;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type lowest() noexcept {return -max();}
static constexpr const bool is_integer = false;
static constexpr const bool is_exact = false;
static constexpr const int radix = 2;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type epsilon() noexcept {return 1.92592994438723585305597794258492732e-34L;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type round_error() noexcept {return 0.5L;}
static constexpr const int min_exponent = (-16381);
static constexpr const int min_exponent10 = (-4931);
static constexpr const int max_exponent = 16384;
static constexpr const int max_exponent10 = 4932;
static constexpr const bool has_infinity = true;
static constexpr const bool has_quiet_NaN = true;
static constexpr const bool has_signaling_NaN = true;
static constexpr const float_denorm_style has_denorm = denorm_present;
static constexpr const bool has_denorm_loss = false;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type infinity() noexcept {return __builtin_huge_vall();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type quiet_NaN() noexcept {return __builtin_nanl("");}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type signaling_NaN() noexcept {return __builtin_nansl("");}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type denorm_min() noexcept {return 6.47517511943802511092443895822764655e-4966L;}
static constexpr const bool is_iec559 = true;
static constexpr const bool is_bounded = true;
static constexpr const bool is_modulo = false;
static constexpr const bool traps = false;
static constexpr const bool tinyness_before = true;
static constexpr const float_round_style round_style = round_to_nearest;
};
template <class _Tp>
class __attribute__((__type_visibility__("default"))) numeric_limits
: private __libcpp_numeric_limits<__remove_cv_t<_Tp> >
{
typedef __libcpp_numeric_limits<__remove_cv_t<_Tp> > __base;
typedef typename __base::type type;
public:
static constexpr const bool is_specialized = __base::is_specialized;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type min() noexcept {return __base::min();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type max() noexcept {return __base::max();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type lowest() noexcept {return __base::lowest();}
static constexpr const int digits = __base::digits;
static constexpr const int digits10 = __base::digits10;
static constexpr const int max_digits10 = __base::max_digits10;
static constexpr const bool is_signed = __base::is_signed;
static constexpr const bool is_integer = __base::is_integer;
static constexpr const bool is_exact = __base::is_exact;
static constexpr const int radix = __base::radix;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type epsilon() noexcept {return __base::epsilon();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type round_error() noexcept {return __base::round_error();}
static constexpr const int min_exponent = __base::min_exponent;
static constexpr const int min_exponent10 = __base::min_exponent10;
static constexpr const int max_exponent = __base::max_exponent;
static constexpr const int max_exponent10 = __base::max_exponent10;
static constexpr const bool has_infinity = __base::has_infinity;
static constexpr const bool has_quiet_NaN = __base::has_quiet_NaN;
static constexpr const bool has_signaling_NaN = __base::has_signaling_NaN;
static constexpr const float_denorm_style has_denorm = __base::has_denorm;
static constexpr const bool has_denorm_loss = __base::has_denorm_loss;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type infinity() noexcept {return __base::infinity();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type quiet_NaN() noexcept {return __base::quiet_NaN();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type signaling_NaN() noexcept {return __base::signaling_NaN();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type denorm_min() noexcept {return __base::denorm_min();}
static constexpr const bool is_iec559 = __base::is_iec559;
static constexpr const bool is_bounded = __base::is_bounded;
static constexpr const bool is_modulo = __base::is_modulo;
static constexpr const bool traps = __base::traps;
static constexpr const bool tinyness_before = __base::tinyness_before;
static constexpr const float_round_style round_style = __base::round_style;
};
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::is_specialized;
template <class _Tp>
constexpr const int numeric_limits<_Tp>::digits;
template <class _Tp>
constexpr const int numeric_limits<_Tp>::digits10;
template <class _Tp>
constexpr const int numeric_limits<_Tp>::max_digits10;
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::is_signed;
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::is_integer;
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::is_exact;
template <class _Tp>
constexpr const int numeric_limits<_Tp>::radix;
template <class _Tp>
constexpr const int numeric_limits<_Tp>::min_exponent;
template <class _Tp>
constexpr const int numeric_limits<_Tp>::min_exponent10;
template <class _Tp>
constexpr const int numeric_limits<_Tp>::max_exponent;
template <class _Tp>
constexpr const int numeric_limits<_Tp>::max_exponent10;
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::has_infinity;
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::has_quiet_NaN;
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::has_signaling_NaN;
template <class _Tp>
constexpr const float_denorm_style numeric_limits<_Tp>::has_denorm;
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::has_denorm_loss;
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::is_iec559;
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::is_bounded;
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::is_modulo;
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::traps;
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::tinyness_before;
template <class _Tp>
constexpr const float_round_style numeric_limits<_Tp>::round_style;
template <class _Tp>
class __attribute__((__type_visibility__("default"))) numeric_limits<const _Tp>
: private numeric_limits<_Tp>
{
typedef numeric_limits<_Tp> __base;
typedef _Tp type;
public:
static constexpr const bool is_specialized = __base::is_specialized;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type min() noexcept {return __base::min();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type max() noexcept {return __base::max();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type lowest() noexcept {return __base::lowest();}
static constexpr const int digits = __base::digits;
static constexpr const int digits10 = __base::digits10;
static constexpr const int max_digits10 = __base::max_digits10;
static constexpr const bool is_signed = __base::is_signed;
static constexpr const bool is_integer = __base::is_integer;
static constexpr const bool is_exact = __base::is_exact;
static constexpr const int radix = __base::radix;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type epsilon() noexcept {return __base::epsilon();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type round_error() noexcept {return __base::round_error();}
static constexpr const int min_exponent = __base::min_exponent;
static constexpr const int min_exponent10 = __base::min_exponent10;
static constexpr const int max_exponent = __base::max_exponent;
static constexpr const int max_exponent10 = __base::max_exponent10;
static constexpr const bool has_infinity = __base::has_infinity;
static constexpr const bool has_quiet_NaN = __base::has_quiet_NaN;
static constexpr const bool has_signaling_NaN = __base::has_signaling_NaN;
static constexpr const float_denorm_style has_denorm = __base::has_denorm;
static constexpr const bool has_denorm_loss = __base::has_denorm_loss;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type infinity() noexcept {return __base::infinity();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type quiet_NaN() noexcept {return __base::quiet_NaN();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type signaling_NaN() noexcept {return __base::signaling_NaN();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type denorm_min() noexcept {return __base::denorm_min();}
static constexpr const bool is_iec559 = __base::is_iec559;
static constexpr const bool is_bounded = __base::is_bounded;
static constexpr const bool is_modulo = __base::is_modulo;
static constexpr const bool traps = __base::traps;
static constexpr const bool tinyness_before = __base::tinyness_before;
static constexpr const float_round_style round_style = __base::round_style;
};
template <class _Tp>
constexpr const bool numeric_limits<const _Tp>::is_specialized;
template <class _Tp>
constexpr const int numeric_limits<const _Tp>::digits;
template <class _Tp>
constexpr const int numeric_limits<const _Tp>::digits10;
template <class _Tp>
constexpr const int numeric_limits<const _Tp>::max_digits10;
template <class _Tp>
constexpr const bool numeric_limits<const _Tp>::is_signed;
template <class _Tp>
constexpr const bool numeric_limits<const _Tp>::is_integer;
template <class _Tp>
constexpr const bool numeric_limits<const _Tp>::is_exact;
template <class _Tp>
constexpr const int numeric_limits<const _Tp>::radix;
template <class _Tp>
constexpr const int numeric_limits<const _Tp>::min_exponent;
template <class _Tp>
constexpr const int numeric_limits<const _Tp>::min_exponent10;
template <class _Tp>
constexpr const int numeric_limits<const _Tp>::max_exponent;
template <class _Tp>
constexpr const int numeric_limits<const _Tp>::max_exponent10;
template <class _Tp>
constexpr const bool numeric_limits<const _Tp>::has_infinity;
template <class _Tp>
constexpr const bool numeric_limits<const _Tp>::has_quiet_NaN;
template <class _Tp>
constexpr const bool numeric_limits<const _Tp>::has_signaling_NaN;
template <class _Tp>
constexpr const float_denorm_style numeric_limits<const _Tp>::has_denorm;
template <class _Tp>
constexpr const bool numeric_limits<const _Tp>::has_denorm_loss;
template <class _Tp>
constexpr const bool numeric_limits<const _Tp>::is_iec559;
template <class _Tp>
constexpr const bool numeric_limits<const _Tp>::is_bounded;
template <class _Tp>
constexpr const bool numeric_limits<const _Tp>::is_modulo;
template <class _Tp>
constexpr const bool numeric_limits<const _Tp>::traps;
template <class _Tp>
constexpr const bool numeric_limits<const _Tp>::tinyness_before;
template <class _Tp>
constexpr const float_round_style numeric_limits<const _Tp>::round_style;
template <class _Tp>
class __attribute__((__type_visibility__("default"))) numeric_limits<volatile _Tp>
: private numeric_limits<_Tp>
{
typedef numeric_limits<_Tp> __base;
typedef _Tp type;
public:
static constexpr const bool is_specialized = __base::is_specialized;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type min() noexcept {return __base::min();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type max() noexcept {return __base::max();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type lowest() noexcept {return __base::lowest();}
static constexpr const int digits = __base::digits;
static constexpr const int digits10 = __base::digits10;
static constexpr const int max_digits10 = __base::max_digits10;
static constexpr const bool is_signed = __base::is_signed;
static constexpr const bool is_integer = __base::is_integer;
static constexpr const bool is_exact = __base::is_exact;
static constexpr const int radix = __base::radix;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type epsilon() noexcept {return __base::epsilon();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type round_error() noexcept {return __base::round_error();}
static constexpr const int min_exponent = __base::min_exponent;
static constexpr const int min_exponent10 = __base::min_exponent10;
static constexpr const int max_exponent = __base::max_exponent;
static constexpr const int max_exponent10 = __base::max_exponent10;
static constexpr const bool has_infinity = __base::has_infinity;
static constexpr const bool has_quiet_NaN = __base::has_quiet_NaN;
static constexpr const bool has_signaling_NaN = __base::has_signaling_NaN;
static constexpr const float_denorm_style has_denorm = __base::has_denorm;
static constexpr const bool has_denorm_loss = __base::has_denorm_loss;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type infinity() noexcept {return __base::infinity();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type quiet_NaN() noexcept {return __base::quiet_NaN();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type signaling_NaN() noexcept {return __base::signaling_NaN();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type denorm_min() noexcept {return __base::denorm_min();}
static constexpr const bool is_iec559 = __base::is_iec559;
static constexpr const bool is_bounded = __base::is_bounded;
static constexpr const bool is_modulo = __base::is_modulo;
static constexpr const bool traps = __base::traps;
static constexpr const bool tinyness_before = __base::tinyness_before;
static constexpr const float_round_style round_style = __base::round_style;
};
template <class _Tp>
constexpr const bool numeric_limits<volatile _Tp>::is_specialized;
template <class _Tp>
constexpr const int numeric_limits<volatile _Tp>::digits;
template <class _Tp>
constexpr const int numeric_limits<volatile _Tp>::digits10;
template <class _Tp>
constexpr const int numeric_limits<volatile _Tp>::max_digits10;
template <class _Tp>
constexpr const bool numeric_limits<volatile _Tp>::is_signed;
template <class _Tp>
constexpr const bool numeric_limits<volatile _Tp>::is_integer;
template <class _Tp>
constexpr const bool numeric_limits<volatile _Tp>::is_exact;
template <class _Tp>
constexpr const int numeric_limits<volatile _Tp>::radix;
template <class _Tp>
constexpr const int numeric_limits<volatile _Tp>::min_exponent;
template <class _Tp>
constexpr const int numeric_limits<volatile _Tp>::min_exponent10;
template <class _Tp>
constexpr const int numeric_limits<volatile _Tp>::max_exponent;
template <class _Tp>
constexpr const int numeric_limits<volatile _Tp>::max_exponent10;
template <class _Tp>
constexpr const bool numeric_limits<volatile _Tp>::has_infinity;
template <class _Tp>
constexpr const bool numeric_limits<volatile _Tp>::has_quiet_NaN;
template <class _Tp>
constexpr const bool numeric_limits<volatile _Tp>::has_signaling_NaN;
template <class _Tp>
constexpr const float_denorm_style numeric_limits<volatile _Tp>::has_denorm;
template <class _Tp>
constexpr const bool numeric_limits<volatile _Tp>::has_denorm_loss;
template <class _Tp>
constexpr const bool numeric_limits<volatile _Tp>::is_iec559;
template <class _Tp>
constexpr const bool numeric_limits<volatile _Tp>::is_bounded;
template <class _Tp>
constexpr const bool numeric_limits<volatile _Tp>::is_modulo;
template <class _Tp>
constexpr const bool numeric_limits<volatile _Tp>::traps;
template <class _Tp>
constexpr const bool numeric_limits<volatile _Tp>::tinyness_before;
template <class _Tp>
constexpr const float_round_style numeric_limits<volatile _Tp>::round_style;
template <class _Tp>
class __attribute__((__type_visibility__("default"))) numeric_limits<const volatile _Tp>
: private numeric_limits<_Tp>
{
typedef numeric_limits<_Tp> __base;
typedef _Tp type;
public:
static constexpr const bool is_specialized = __base::is_specialized;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type min() noexcept {return __base::min();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type max() noexcept {return __base::max();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type lowest() noexcept {return __base::lowest();}
static constexpr const int digits = __base::digits;
static constexpr const int digits10 = __base::digits10;
static constexpr const int max_digits10 = __base::max_digits10;
static constexpr const bool is_signed = __base::is_signed;
static constexpr const bool is_integer = __base::is_integer;
static constexpr const bool is_exact = __base::is_exact;
static constexpr const int radix = __base::radix;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type epsilon() noexcept {return __base::epsilon();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type round_error() noexcept {return __base::round_error();}
static constexpr const int min_exponent = __base::min_exponent;
static constexpr const int min_exponent10 = __base::min_exponent10;
static constexpr const int max_exponent = __base::max_exponent;
static constexpr const int max_exponent10 = __base::max_exponent10;
static constexpr const bool has_infinity = __base::has_infinity;
static constexpr const bool has_quiet_NaN = __base::has_quiet_NaN;
static constexpr const bool has_signaling_NaN = __base::has_signaling_NaN;
static constexpr const float_denorm_style has_denorm = __base::has_denorm;
static constexpr const bool has_denorm_loss = __base::has_denorm_loss;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type infinity() noexcept {return __base::infinity();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type quiet_NaN() noexcept {return __base::quiet_NaN();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type signaling_NaN() noexcept {return __base::signaling_NaN();}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr type denorm_min() noexcept {return __base::denorm_min();}
static constexpr const bool is_iec559 = __base::is_iec559;
static constexpr const bool is_bounded = __base::is_bounded;
static constexpr const bool is_modulo = __base::is_modulo;
static constexpr const bool traps = __base::traps;
static constexpr const bool tinyness_before = __base::tinyness_before;
static constexpr const float_round_style round_style = __base::round_style;
};
template <class _Tp>
constexpr const bool numeric_limits<const volatile _Tp>::is_specialized;
template <class _Tp>
constexpr const int numeric_limits<const volatile _Tp>::digits;
template <class _Tp>
constexpr const int numeric_limits<const volatile _Tp>::digits10;
template <class _Tp>
constexpr const int numeric_limits<const volatile _Tp>::max_digits10;
template <class _Tp>
constexpr const bool numeric_limits<const volatile _Tp>::is_signed;
template <class _Tp>
constexpr const bool numeric_limits<const volatile _Tp>::is_integer;
template <class _Tp>
constexpr const bool numeric_limits<const volatile _Tp>::is_exact;
template <class _Tp>
constexpr const int numeric_limits<const volatile _Tp>::radix;
template <class _Tp>
constexpr const int numeric_limits<const volatile _Tp>::min_exponent;
template <class _Tp>
constexpr const int numeric_limits<const volatile _Tp>::min_exponent10;
template <class _Tp>
constexpr const int numeric_limits<const volatile _Tp>::max_exponent;
template <class _Tp>
constexpr const int numeric_limits<const volatile _Tp>::max_exponent10;
template <class _Tp>
constexpr const bool numeric_limits<const volatile _Tp>::has_infinity;
template <class _Tp>
constexpr const bool numeric_limits<const volatile _Tp>::has_quiet_NaN;
template <class _Tp>
constexpr const bool numeric_limits<const volatile _Tp>::has_signaling_NaN;
template <class _Tp>
constexpr const float_denorm_style numeric_limits<const volatile _Tp>::has_denorm;
template <class _Tp>
constexpr const bool numeric_limits<const volatile _Tp>::has_denorm_loss;
template <class _Tp>
constexpr const bool numeric_limits<const volatile _Tp>::is_iec559;
template <class _Tp>
constexpr const bool numeric_limits<const volatile _Tp>::is_bounded;
template <class _Tp>
constexpr const bool numeric_limits<const volatile _Tp>::is_modulo;
template <class _Tp>
constexpr const bool numeric_limits<const volatile _Tp>::traps;
template <class _Tp>
constexpr const bool numeric_limits<const volatile _Tp>::tinyness_before;
template <class _Tp>
constexpr const float_round_style numeric_limits<const volatile _Tp>::round_style;
}}
# 21 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/cmp.h" 2 3
# 24 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/cmp.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__undef_macros" 1 3
# 28 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/cmp.h" 2 3
namespace std { inline namespace __1 {
# 107 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/cmp.h" 3
}}
# 245 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/utility" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/exception_guard.h" 1 3
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/exception_guard.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/exchange.h" 1 3
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/exchange.h" 3
namespace std { inline namespace __1 {
template<class _T1, class _T2 = _T1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_T1 exchange(_T1& __obj, _T2&& __new_value)
noexcept(is_nothrow_move_constructible<_T1>::value && is_nothrow_assignable<_T1&, _T2>::value)
{
_T1 __old_value = std::move(__obj);
__obj = std::forward<_T2>(__new_value);
return __old_value;
}
}}
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/exception_guard.h" 2 3
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/exception_guard.h" 3
namespace std { inline namespace __1 {
# 61 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/exception_guard.h" 3
template <class _Rollback>
struct __exception_guard_exceptions {
__exception_guard_exceptions() = delete;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) explicit __exception_guard_exceptions(_Rollback __rollback)
: __rollback_(std::move(__rollback)), __completed_(false) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
__exception_guard_exceptions(__exception_guard_exceptions&& __other)
noexcept(is_nothrow_move_constructible<_Rollback>::value)
: __rollback_(std::move(__other.__rollback_)), __completed_(__other.__completed_) {
__other.__completed_ = true;
}
__exception_guard_exceptions(__exception_guard_exceptions const&) = delete;
__exception_guard_exceptions& operator=(__exception_guard_exceptions const&) = delete;
__exception_guard_exceptions& operator=(__exception_guard_exceptions&&) = delete;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) void __complete() noexcept { __completed_ = true; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) ~__exception_guard_exceptions() {
if (!__completed_)
__rollback_();
}
private:
_Rollback __rollback_;
bool __completed_;
};
template <class ..._Tag> __exception_guard_exceptions(typename _Tag::__allow_ctad...) -> __exception_guard_exceptions<_Tag...>;
template <class _Rollback>
struct __exception_guard_noexceptions {
__exception_guard_noexceptions() = delete;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
__attribute__((__nodebug__)) explicit __exception_guard_noexceptions(_Rollback) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) __attribute__((__nodebug__))
__exception_guard_noexceptions(__exception_guard_noexceptions&& __other)
noexcept(is_nothrow_move_constructible<_Rollback>::value)
: __completed_(__other.__completed_) {
__other.__completed_ = true;
}
__exception_guard_noexceptions(__exception_guard_noexceptions const&) = delete;
__exception_guard_noexceptions& operator=(__exception_guard_noexceptions const&) = delete;
__exception_guard_noexceptions& operator=(__exception_guard_noexceptions&&) = delete;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) __attribute__((__nodebug__)) void __complete() noexcept {
__completed_ = true;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) __attribute__((__nodebug__)) ~__exception_guard_noexceptions() {
(__builtin_expect(static_cast<bool>(__completed_), 1) ? (void)0 : ::std::__libcpp_verbose_abort("%s:%d: assertion %s failed: %s", __builtin_FILE(), __builtin_LINE(), "__completed_", "__exception_guard not completed with exceptions disabled"));
}
private:
bool __completed_ = false;
};
template <class ..._Tag> __exception_guard_noexceptions(typename _Tag::__allow_ctad...) -> __exception_guard_noexceptions<_Tag...>;
template <class _Rollback>
using __exception_guard = __exception_guard_noexceptions<_Rollback>;
template <class _Rollback>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr __exception_guard<_Rollback> __make_exception_guard(_Rollback __rollback) {
return __exception_guard<_Rollback>(std::move(__rollback));
}
}}
# 247 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/utility" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/forward_like.h" 1 3
# 21 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/forward_like.h" 3
namespace std { inline namespace __1 {
# 44 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/forward_like.h" 3
}}
# 250 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/utility" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/in_place.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/in_place.h" 3
namespace std { inline namespace __1 {
struct __attribute__((__visibility__("default"))) in_place_t {
explicit in_place_t() = default;
};
inline constexpr in_place_t in_place{};
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) in_place_type_t {
explicit in_place_type_t() = default;
};
template <class _Tp>
inline constexpr in_place_type_t<_Tp> in_place_type{};
template <size_t _Idx>
struct __attribute__((__type_visibility__("default"))) in_place_index_t {
explicit in_place_index_t() = default;
};
template <size_t _Idx>
inline constexpr in_place_index_t<_Idx> in_place_index{};
template <class _Tp> struct __is_inplace_type_imp : false_type {};
template <class _Tp> struct __is_inplace_type_imp<in_place_type_t<_Tp>> : true_type {};
template <class _Tp>
using __is_inplace_type = __is_inplace_type_imp<__remove_cvref_t<_Tp>>;
template <class _Tp> struct __is_inplace_index_imp : false_type {};
template <size_t _Idx> struct __is_inplace_index_imp<in_place_index_t<_Idx>> : true_type {};
template <class _Tp>
using __is_inplace_index = __is_inplace_index_imp<__remove_cvref_t<_Tp>>;
}}
# 251 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/utility" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/integer_sequence.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/integer_sequence.h" 3
namespace std { inline namespace __1 {
template <size_t...> struct __tuple_indices;
template <class _IdxType, _IdxType... _Values>
struct __integer_sequence {
template <template <class _OIdxType, _OIdxType...> class _ToIndexSeq, class _ToIndexType>
using __convert = _ToIndexSeq<_ToIndexType, _Values...>;
template <size_t _Sp>
using __to_tuple_indices = __tuple_indices<(_Values + _Sp)...>;
};
# 77 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/integer_sequence.h" 3
template <size_t _Ep, size_t _Sp>
using __make_indices_imp =
typename __make_integer_seq<__integer_sequence, size_t, _Ep - _Sp>::template
__to_tuple_indices<_Sp>;
# 90 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/integer_sequence.h" 3
template<class _Tp, _Tp... _Ip>
struct __attribute__((__type_visibility__("default"))) integer_sequence
{
typedef _Tp value_type;
static_assert( is_integral<_Tp>::value,
"std::integer_sequence can only be instantiated with an integral type" );
static
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr
size_t
size() noexcept { return sizeof...(_Ip); }
};
template<size_t... _Ip>
using index_sequence = integer_sequence<size_t, _Ip...>;
template <class _Tp, _Tp _Ep>
using __make_integer_sequence __attribute__((__nodebug__)) = __make_integer_seq<integer_sequence, _Tp, _Ep>;
# 132 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/integer_sequence.h" 3
template<class _Tp, _Tp _Np>
using make_integer_sequence = __make_integer_sequence<_Tp, _Np>;
template<size_t _Np>
using make_index_sequence = make_integer_sequence<size_t, _Np>;
template<class... _Tp>
using index_sequence_for = make_index_sequence<sizeof...(_Tp)>;
# 151 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/integer_sequence.h" 3
}}
# 252 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/utility" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/pair.h" 1 3
# 12 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/pair.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/common_comparison_category.h" 1 3
# 12 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/common_comparison_category.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/ordering.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/ordering.h" 3
namespace std { inline namespace __1 {
# 324 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/ordering.h" 3
}}
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/common_comparison_category.h" 2 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/common_comparison_category.h" 3
namespace std { inline namespace __1 {
# 93 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/common_comparison_category.h" 3
}}
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/pair.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/synth_three_way.h" 1 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/synth_three_way.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/three_way_comparable.h" 1 3
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/three_way_comparable.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/common_reference_with.h" 1 3
# 12 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/common_reference_with.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/convertible_to.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/convertible_to.h" 3
namespace std { inline namespace __1 {
# 35 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/convertible_to.h" 3
}}
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/common_reference_with.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/same_as.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/same_as.h" 3
namespace std { inline namespace __1 {
# 33 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/same_as.h" 3
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/common_reference_with.h" 2 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/common_reference_with.h" 3
namespace std { inline namespace __1 {
# 35 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/common_reference_with.h" 3
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/three_way_comparable.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/equality_comparable.h" 1 3
# 12 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/equality_comparable.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/boolean_testable.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/boolean_testable.h" 3
namespace std { inline namespace __1 {
# 36 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/boolean_testable.h" 3
}}
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/equality_comparable.h" 2 3
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/equality_comparable.h" 3
namespace std { inline namespace __1 {
# 52 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/equality_comparable.h" 3
}}
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/three_way_comparable.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/totally_ordered.h" 1 3
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/totally_ordered.h" 3
namespace std { inline namespace __1 {
# 56 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/totally_ordered.h" 3
}}
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/three_way_comparable.h" 2 3
# 24 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/three_way_comparable.h" 3
namespace std { inline namespace __1 {
# 57 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/three_way_comparable.h" 3
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/synth_three_way.h" 2 3
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/synth_three_way.h" 3
namespace std { inline namespace __1 {
# 49 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/synth_three_way.h" 3
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/pair.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/unwrap_ref.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/unwrap_ref.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct __unwrap_reference { typedef __attribute__((__nodebug__)) _Tp type; };
template <class _Tp>
class reference_wrapper;
template <class _Tp>
struct __unwrap_reference<reference_wrapper<_Tp> > { typedef __attribute__((__nodebug__)) _Tp& type; };
template <class _Tp>
struct decay;
# 47 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/unwrap_ref.h" 3
template <class _Tp>
struct __unwrap_ref_decay
: __unwrap_reference<typename decay<_Tp>::type>
{ };
}}
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/pair.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/get.h" 1 3
# 12 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/get.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/copyable.h" 1 3
# 12 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/copyable.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/assignable.h" 1 3
# 21 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/assignable.h" 3
namespace std { inline namespace __1 {
# 39 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/assignable.h" 3
}}
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/copyable.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/constructible.h" 1 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/constructible.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/destructible.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/destructible.h" 3
namespace std { inline namespace __1 {
# 30 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/destructible.h" 3
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/constructible.h" 2 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/constructible.h" 3
namespace std { inline namespace __1 {
# 54 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/constructible.h" 3
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/copyable.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/movable.h" 1 3
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/movable.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/swappable.h" 1 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/swappable.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/class_or_enum.h" 1 3
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/class_or_enum.h" 3
namespace std { inline namespace __1 {
# 38 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/class_or_enum.h" 3
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/swappable.h" 2 3
# 24 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/swappable.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/swap.h" 1 3
# 24 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/swap.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
using __swap_result_t = typename enable_if<is_move_constructible<_Tp>::value && is_move_assignable<_Tp>::value>::type;
template <class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) __swap_result_t<_Tp> swap(_Tp& __x, _Tp& __y)
noexcept(is_nothrow_move_constructible<_Tp>::value&& is_nothrow_move_assignable<_Tp>::value) {
_Tp __t(std::move(__x));
__x = std::move(__y);
__y = std::move(__t);
}
template <class _Tp, size_t _Np>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) typename enable_if<__is_swappable<_Tp>::value>::type
swap(_Tp (&__a)[_Np], _Tp (&__b)[_Np]) noexcept(__is_nothrow_swappable<_Tp>::value) {
for (size_t __i = 0; __i != _Np; ++__i) {
swap(__a[__i], __b[__i]);
}
}
}}
# 25 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/swappable.h" 2 3
# 29 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/swappable.h" 3
namespace std { inline namespace __1 {
# 119 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/swappable.h" 3
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/movable.h" 2 3
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/movable.h" 3
namespace std { inline namespace __1 {
# 37 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/movable.h" 3
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/copyable.h" 2 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/copyable.h" 3
namespace std { inline namespace __1 {
# 37 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/copyable.h" 3
}}
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/get.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/array.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/array.h" 3
namespace std { inline namespace __1 {
template <class _Tp, size_t _Size>
struct __attribute__((__type_visibility__("default"))) array;
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/get.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/subrange.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/subrange.h" 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/get.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/tuple.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/tuple.h" 3
namespace std { inline namespace __1 {
template <class...>
class __attribute__((__type_visibility__("default"))) tuple;
}}
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/get.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/tuple_element.h" 1 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/tuple_element.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/tuple_indices.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/tuple_indices.h" 3
namespace std { inline namespace __1 {
template <size_t...> struct __tuple_indices {};
template <size_t _Ep, size_t _Sp = 0>
struct __make_tuple_indices
{
static_assert(_Sp <= _Ep, "__make_tuple_indices input error");
typedef __make_indices_imp<_Ep, _Sp> type;
};
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/tuple_element.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/tuple_types.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/tuple_types.h" 3
namespace std { inline namespace __1 {
template <class ..._Tp> struct __tuple_types {};
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/tuple_element.h" 2 3
# 22 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/tuple_element.h" 3
namespace std { inline namespace __1 {
template <size_t _Ip, class _Tp> struct __attribute__((__type_visibility__("default"))) tuple_element;
template <size_t _Ip, class _Tp>
struct __attribute__((__type_visibility__("default"))) tuple_element<_Ip, const _Tp>
{
typedef __attribute__((__nodebug__)) typename add_const<typename tuple_element<_Ip, _Tp>::type>::type type;
};
template <size_t _Ip, class _Tp>
struct __attribute__((__type_visibility__("default"))) tuple_element<_Ip, volatile _Tp>
{
typedef __attribute__((__nodebug__)) typename add_volatile<typename tuple_element<_Ip, _Tp>::type>::type type;
};
template <size_t _Ip, class _Tp>
struct __attribute__((__type_visibility__("default"))) tuple_element<_Ip, const volatile _Tp>
{
typedef __attribute__((__nodebug__)) typename add_cv<typename tuple_element<_Ip, _Tp>::type>::type type;
};
# 77 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/tuple_element.h" 3
template <size_t _Ip, class ..._Types>
struct __attribute__((__type_visibility__("default"))) tuple_element<_Ip, __tuple_types<_Types...> >
{
static_assert(_Ip < sizeof...(_Types), "tuple_element index out of range");
typedef __attribute__((__nodebug__)) __type_pack_element<_Ip, _Types...> type;
};
template <size_t _Ip, class ..._Tp>
using tuple_element_t __attribute__((__nodebug__)) = typename tuple_element <_Ip, _Tp...>::type;
}}
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/get.h" 2 3
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/get.h" 3
namespace std { inline namespace __1 {
template <size_t _Ip, class ..._Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
typename tuple_element<_Ip, tuple<_Tp...> >::type&
get(tuple<_Tp...>&) noexcept;
template <size_t _Ip, class ..._Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
const typename tuple_element<_Ip, tuple<_Tp...> >::type&
get(const tuple<_Tp...>&) noexcept;
template <size_t _Ip, class ..._Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
typename tuple_element<_Ip, tuple<_Tp...> >::type&&
get(tuple<_Tp...>&&) noexcept;
template <size_t _Ip, class ..._Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
const typename tuple_element<_Ip, tuple<_Tp...> >::type&&
get(const tuple<_Tp...>&&) noexcept;
template <size_t _Ip, class _T1, class _T2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
typename tuple_element<_Ip, pair<_T1, _T2> >::type&
get(pair<_T1, _T2>&) noexcept;
template <size_t _Ip, class _T1, class _T2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
const typename tuple_element<_Ip, pair<_T1, _T2> >::type&
get(const pair<_T1, _T2>&) noexcept;
template <size_t _Ip, class _T1, class _T2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
typename tuple_element<_Ip, pair<_T1, _T2> >::type&&
get(pair<_T1, _T2>&&) noexcept;
template <size_t _Ip, class _T1, class _T2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
const typename tuple_element<_Ip, pair<_T1, _T2> >::type&&
get(const pair<_T1, _T2>&&) noexcept;
template <size_t _Ip, class _Tp, size_t _Size>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
_Tp&
get(array<_Tp, _Size>&) noexcept;
template <size_t _Ip, class _Tp, size_t _Size>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
const _Tp&
get(const array<_Tp, _Size>&) noexcept;
template <size_t _Ip, class _Tp, size_t _Size>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
_Tp&&
get(array<_Tp, _Size>&&) noexcept;
template <size_t _Ip, class _Tp, size_t _Size>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
const _Tp&&
get(const array<_Tp, _Size>&&) noexcept;
# 113 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/get.h" 3
}}
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/pair.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/sfinae_helpers.h" 1 3
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/sfinae_helpers.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/make_tuple_types.h" 1 3
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/make_tuple_types.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/apply_cv.h" 1 3
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/apply_cv.h" 3
namespace std { inline namespace __1 {
template <bool _ApplyLV, bool _ApplyConst, bool _ApplyVolatile>
struct __apply_cv_mf;
template <>
struct __apply_cv_mf<false, false, false> {
template <class _Tp> using __apply = _Tp;
};
template <>
struct __apply_cv_mf<false, true, false> {
template <class _Tp> using __apply __attribute__((__nodebug__)) = const _Tp;
};
template <>
struct __apply_cv_mf<false, false, true> {
template <class _Tp> using __apply __attribute__((__nodebug__)) = volatile _Tp;
};
template <>
struct __apply_cv_mf<false, true, true> {
template <class _Tp> using __apply __attribute__((__nodebug__)) = const volatile _Tp;
};
template <>
struct __apply_cv_mf<true, false, false> {
template <class _Tp> using __apply __attribute__((__nodebug__)) = _Tp&;
};
template <>
struct __apply_cv_mf<true, true, false> {
template <class _Tp> using __apply __attribute__((__nodebug__)) = const _Tp&;
};
template <>
struct __apply_cv_mf<true, false, true> {
template <class _Tp> using __apply __attribute__((__nodebug__)) = volatile _Tp&;
};
template <>
struct __apply_cv_mf<true, true, true> {
template <class _Tp> using __apply __attribute__((__nodebug__)) = const volatile _Tp&;
};
template <class _Tp, class _RawTp = __libcpp_remove_reference_t<_Tp> >
using __apply_cv_t __attribute__((__nodebug__)) = __apply_cv_mf<
is_lvalue_reference<_Tp>::value,
is_const<_RawTp>::value,
is_volatile<_RawTp>::value>;
}}
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/make_tuple_types.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/tuple_size.h" 1 3
# 21 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/tuple_size.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __attribute__((__type_visibility__("default"))) tuple_size;
template <class _Tp, class...>
using __enable_if_tuple_size_imp = _Tp;
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) tuple_size<__enable_if_tuple_size_imp<
const _Tp,
__enable_if_t<!is_volatile<_Tp>::value>,
integral_constant<size_t, sizeof(tuple_size<_Tp>)>>>
: public integral_constant<size_t, tuple_size<_Tp>::value> {};
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) tuple_size<__enable_if_tuple_size_imp<
volatile _Tp,
__enable_if_t<!is_const<_Tp>::value>,
integral_constant<size_t, sizeof(tuple_size<_Tp>)>>>
: public integral_constant<size_t, tuple_size<_Tp>::value> {};
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) tuple_size<__enable_if_tuple_size_imp<
const volatile _Tp,
integral_constant<size_t, sizeof(tuple_size<_Tp>)>>>
: public integral_constant<size_t, tuple_size<_Tp>::value> {};
# 59 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/tuple_size.h" 3
template <class ..._Tp>
struct __attribute__((__type_visibility__("default"))) tuple_size<tuple<_Tp...> >
: public integral_constant<size_t, sizeof...(_Tp)>
{
};
template <class ..._Tp>
struct __attribute__((__type_visibility__("default"))) tuple_size<__tuple_types<_Tp...> >
: public integral_constant<size_t, sizeof...(_Tp)>
{
};
}}
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/make_tuple_types.h" 2 3
# 26 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/make_tuple_types.h" 3
namespace std { inline namespace __1 {
template <class _TupleTypes, class _TupleIndices>
struct __make_tuple_types_flat;
template <template <class...> class _Tuple, class ..._Types, size_t ..._Idx>
struct __make_tuple_types_flat<_Tuple<_Types...>, __tuple_indices<_Idx...>> {
template <class _Tp, class _ApplyFn = __apply_cv_t<_Tp>>
using __apply_quals __attribute__((__nodebug__)) = __tuple_types<
typename _ApplyFn::template __apply<__type_pack_element<_Idx, _Types...>>...
>;
};
template <class _Vt, size_t _Np, size_t ..._Idx>
struct __make_tuple_types_flat<array<_Vt, _Np>, __tuple_indices<_Idx...>> {
template <size_t>
using __value_type = _Vt;
template <class _Tp, class _ApplyFn = __apply_cv_t<_Tp>>
using __apply_quals = __tuple_types<
typename _ApplyFn::template __apply<__value_type<_Idx>>...
>;
};
template <class _Tp, size_t _Ep = tuple_size<__libcpp_remove_reference_t<_Tp> >::value,
size_t _Sp = 0,
bool _SameSize = (_Ep == tuple_size<__libcpp_remove_reference_t<_Tp> >::value)>
struct __make_tuple_types
{
static_assert(_Sp <= _Ep, "__make_tuple_types input error");
using _RawTp = __remove_cv_t<__libcpp_remove_reference_t<_Tp> >;
using _Maker = __make_tuple_types_flat<_RawTp, typename __make_tuple_indices<_Ep, _Sp>::type>;
using type = typename _Maker::template __apply_quals<_Tp>;
};
template <class ..._Types, size_t _Ep>
struct __make_tuple_types<tuple<_Types...>, _Ep, 0, true> {
typedef __attribute__((__nodebug__)) __tuple_types<_Types...> type;
};
template <class ..._Types, size_t _Ep>
struct __make_tuple_types<__tuple_types<_Types...>, _Ep, 0, true> {
typedef __attribute__((__nodebug__)) __tuple_types<_Types...> type;
};
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/sfinae_helpers.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/tuple_like_ext.h" 1 3
# 22 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/tuple_like_ext.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __tuple_like_ext : false_type {};
template <class _Tp> struct __tuple_like_ext<const _Tp> : public __tuple_like_ext<_Tp> {};
template <class _Tp> struct __tuple_like_ext<volatile _Tp> : public __tuple_like_ext<_Tp> {};
template <class _Tp> struct __tuple_like_ext<const volatile _Tp> : public __tuple_like_ext<_Tp> {};
template <class... _Tp> struct __tuple_like_ext<tuple<_Tp...> > : true_type {};
template <class _T1, class _T2> struct __tuple_like_ext<pair<_T1, _T2> > : true_type {};
template <class _Tp, size_t _Size> struct __tuple_like_ext<array<_Tp, _Size> > : true_type {};
template <class... _Tp> struct __tuple_like_ext<__tuple_types<_Tp...> > : true_type {};
}}
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/sfinae_helpers.h" 2 3
# 31 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/sfinae_helpers.h" 3
namespace std { inline namespace __1 {
template <bool ..._Preds>
struct __all_dummy;
template <bool ..._Pred>
struct __all : _IsSame<__all_dummy<_Pred...>, __all_dummy<((void)_Pred, true)...>> {};
struct __tuple_sfinae_base {
template <template <class, class...> class _Trait,
class ..._LArgs, class ..._RArgs>
static auto __do_test(__tuple_types<_LArgs...>, __tuple_types<_RArgs...>)
-> __all<__enable_if_t<_Trait<_LArgs, _RArgs>::value, bool>{true}...>;
template <template <class...> class>
static auto __do_test(...) -> false_type;
template <class _FromArgs, class _ToArgs>
using __constructible = decltype(__do_test<is_constructible>(_ToArgs{}, _FromArgs{}));
template <class _FromArgs, class _ToArgs>
using __convertible = decltype(__do_test<is_convertible>(_FromArgs{}, _ToArgs{}));
template <class _FromArgs, class _ToArgs>
using __assignable = decltype(__do_test<is_assignable>(_ToArgs{}, _FromArgs{}));
};
template <class _Tp, class _Up, bool = __tuple_like_ext<__libcpp_remove_reference_t<_Tp> >::value,
bool = __tuple_like_ext<_Up>::value>
struct __tuple_convertible
: public false_type {};
template <class _Tp, class _Up>
struct __tuple_convertible<_Tp, _Up, true, true>
: public __tuple_sfinae_base::__convertible<
typename __make_tuple_types<_Tp>::type
, typename __make_tuple_types<_Up>::type
>
{};
template <class _Tp, class _Up, bool = __tuple_like_ext<__libcpp_remove_reference_t<_Tp> >::value,
bool = __tuple_like_ext<_Up>::value>
struct __tuple_constructible
: public false_type {};
template <class _Tp, class _Up>
struct __tuple_constructible<_Tp, _Up, true, true>
: public __tuple_sfinae_base::__constructible<
typename __make_tuple_types<_Tp>::type
, typename __make_tuple_types<_Up>::type
>
{};
template <class _Tp, class _Up, bool = __tuple_like_ext<__libcpp_remove_reference_t<_Tp> >::value,
bool = __tuple_like_ext<_Up>::value>
struct __tuple_assignable
: public false_type {};
template <class _Tp, class _Up>
struct __tuple_assignable<_Tp, _Up, true, true>
: public __tuple_sfinae_base::__assignable<
typename __make_tuple_types<_Tp>::type
, typename __make_tuple_types<_Up&>::type
>
{};
template <size_t _Ip, class ..._Tp>
struct __attribute__((__type_visibility__("default"))) tuple_element<_Ip, tuple<_Tp...> >
{
typedef __attribute__((__nodebug__)) typename tuple_element<_Ip, __tuple_types<_Tp...> >::type type;
};
template <bool _IsTuple, class _SizeTrait, size_t _Expected>
struct __tuple_like_with_size_imp : false_type {};
template <class _SizeTrait, size_t _Expected>
struct __tuple_like_with_size_imp<true, _SizeTrait, _Expected>
: integral_constant<bool, _SizeTrait::value == _Expected> {};
template <class _Tuple, size_t _ExpectedSize, class _RawTuple = __libcpp_remove_reference_t<_Tuple> >
using __tuple_like_with_size __attribute__((__nodebug__)) = __tuple_like_with_size_imp<
__tuple_like_ext<_RawTuple>::value,
tuple_size<_RawTuple>, _ExpectedSize
>;
struct __attribute__((__visibility__("default"))) __check_tuple_constructor_fail {
static constexpr bool __enable_explicit_default() { return false; }
static constexpr bool __enable_implicit_default() { return false; }
template <class ...>
static constexpr bool __enable_explicit() { return false; }
template <class ...>
static constexpr bool __enable_implicit() { return false; }
template <class ...>
static constexpr bool __enable_assign() { return false; }
};
template <bool _CanCopy, bool _CanMove>
struct __sfinae_ctor_base {};
template <>
struct __sfinae_ctor_base<false, false> {
__sfinae_ctor_base() = default;
__sfinae_ctor_base(__sfinae_ctor_base const&) = delete;
__sfinae_ctor_base(__sfinae_ctor_base &&) = delete;
__sfinae_ctor_base& operator=(__sfinae_ctor_base const&) = default;
__sfinae_ctor_base& operator=(__sfinae_ctor_base&&) = default;
};
template <>
struct __sfinae_ctor_base<true, false> {
__sfinae_ctor_base() = default;
__sfinae_ctor_base(__sfinae_ctor_base const&) = default;
__sfinae_ctor_base(__sfinae_ctor_base &&) = delete;
__sfinae_ctor_base& operator=(__sfinae_ctor_base const&) = default;
__sfinae_ctor_base& operator=(__sfinae_ctor_base&&) = default;
};
template <>
struct __sfinae_ctor_base<false, true> {
__sfinae_ctor_base() = default;
__sfinae_ctor_base(__sfinae_ctor_base const&) = delete;
__sfinae_ctor_base(__sfinae_ctor_base &&) = default;
__sfinae_ctor_base& operator=(__sfinae_ctor_base const&) = default;
__sfinae_ctor_base& operator=(__sfinae_ctor_base&&) = default;
};
template <bool _CanCopy, bool _CanMove>
struct __sfinae_assign_base {};
template <>
struct __sfinae_assign_base<false, false> {
__sfinae_assign_base() = default;
__sfinae_assign_base(__sfinae_assign_base const&) = default;
__sfinae_assign_base(__sfinae_assign_base &&) = default;
__sfinae_assign_base& operator=(__sfinae_assign_base const&) = delete;
__sfinae_assign_base& operator=(__sfinae_assign_base&&) = delete;
};
template <>
struct __sfinae_assign_base<true, false> {
__sfinae_assign_base() = default;
__sfinae_assign_base(__sfinae_assign_base const&) = default;
__sfinae_assign_base(__sfinae_assign_base &&) = default;
__sfinae_assign_base& operator=(__sfinae_assign_base const&) = default;
__sfinae_assign_base& operator=(__sfinae_assign_base&&) = delete;
};
template <>
struct __sfinae_assign_base<false, true> {
__sfinae_assign_base() = default;
__sfinae_assign_base(__sfinae_assign_base const&) = default;
__sfinae_assign_base(__sfinae_assign_base &&) = default;
__sfinae_assign_base& operator=(__sfinae_assign_base const&) = delete;
__sfinae_assign_base& operator=(__sfinae_assign_base&&) = default;
};
}}
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/pair.h" 2 3
# 43 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/pair.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/piecewise_construct.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/piecewise_construct.h" 3
namespace std { inline namespace __1 {
struct __attribute__((__type_visibility__("default"))) piecewise_construct_t { explicit piecewise_construct_t() = default; };
constexpr piecewise_construct_t piecewise_construct = piecewise_construct_t();
}}
# 44 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/pair.h" 2 3
# 48 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/pair.h" 3
namespace std { inline namespace __1 {
template <class, class>
struct __non_trivially_copyable_base {
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
__non_trivially_copyable_base() noexcept {}
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
__non_trivially_copyable_base(__non_trivially_copyable_base const&) noexcept {}
};
template <class _T1, class _T2>
struct __attribute__((__type_visibility__("default"))) pair
{
using first_type = _T1;
using second_type = _T2;
_T1 first;
_T2 second;
pair(pair const&) = default;
pair(pair&&) = default;
# 93 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/pair.h" 3
struct _CheckArgs {
template <int&...>
static constexpr bool __enable_explicit_default() {
return is_default_constructible<_T1>::value
&& is_default_constructible<_T2>::value
&& !__enable_implicit_default<>();
}
template <int&...>
static constexpr bool __enable_implicit_default() {
return __is_implicitly_default_constructible<_T1>::value
&& __is_implicitly_default_constructible<_T2>::value;
}
template <class _U1, class _U2>
static constexpr bool __is_pair_constructible() {
return is_constructible<first_type, _U1>::value
&& is_constructible<second_type, _U2>::value;
}
template <class _U1, class _U2>
static constexpr bool __is_implicit() {
return is_convertible<_U1, first_type>::value
&& is_convertible<_U2, second_type>::value;
}
template <class _U1, class _U2>
static constexpr bool __enable_explicit() {
return __is_pair_constructible<_U1, _U2>() && !__is_implicit<_U1, _U2>();
}
template <class _U1, class _U2>
static constexpr bool __enable_implicit() {
return __is_pair_constructible<_U1, _U2>() && __is_implicit<_U1, _U2>();
}
};
template <bool _MaybeEnable>
using _CheckArgsDep __attribute__((__nodebug__)) = typename conditional<
_MaybeEnable, _CheckArgs, __check_tuple_constructor_fail>::type;
struct _CheckTupleLikeConstructor {
template <class _Tuple>
static constexpr bool __enable_implicit() {
return __tuple_convertible<_Tuple, pair>::value;
}
template <class _Tuple>
static constexpr bool __enable_explicit() {
return __tuple_constructible<_Tuple, pair>::value
&& !__tuple_convertible<_Tuple, pair>::value;
}
template <class _Tuple>
static constexpr bool __enable_assign() {
return __tuple_assignable<_Tuple, pair>::value;
}
};
template <class _Tuple>
using _CheckTLC __attribute__((__nodebug__)) = __conditional_t<
__tuple_like_with_size<_Tuple, 2>::value
&& !is_same<typename decay<_Tuple>::type, pair>::value,
_CheckTupleLikeConstructor,
__check_tuple_constructor_fail
>;
template<bool _Dummy = true, typename enable_if<
_CheckArgsDep<_Dummy>::__enable_explicit_default()
>::type* = nullptr>
explicit __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
pair() noexcept(is_nothrow_default_constructible<first_type>::value && is_nothrow_default_constructible<second_type>::value)
: first(), second() {}
template<bool _Dummy = true, typename enable_if<
_CheckArgsDep<_Dummy>::__enable_implicit_default()
>::type* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
pair() noexcept(is_nothrow_default_constructible<first_type>::value && is_nothrow_default_constructible<second_type>::value)
: first(), second() {}
template <bool _Dummy = true, typename enable_if<
_CheckArgsDep<_Dummy>::template __enable_explicit<_T1 const&, _T2 const&>()
>::type* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
explicit pair(_T1 const& __t1, _T2 const& __t2)
noexcept(is_nothrow_copy_constructible<first_type>::value && is_nothrow_copy_constructible<second_type>::value)
: first(__t1), second(__t2) {}
template<bool _Dummy = true, typename enable_if<
_CheckArgsDep<_Dummy>::template __enable_implicit<_T1 const&, _T2 const&>()
>::type* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
pair(_T1 const& __t1, _T2 const& __t2)
noexcept(is_nothrow_copy_constructible<first_type>::value && is_nothrow_copy_constructible<second_type>::value)
: first(__t1), second(__t2) {}
template <
class _U1, class _U2,
typename enable_if<_CheckArgs::template __enable_explicit<_U1, _U2>()>::type* = nullptr
>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
explicit pair(_U1&& __u1, _U2&& __u2)
noexcept((is_nothrow_constructible<first_type, _U1>::value && is_nothrow_constructible<second_type, _U2>::value))
: first(std::forward<_U1>(__u1)), second(std::forward<_U2>(__u2)) {}
template <
class _U1, class _U2,
typename enable_if<_CheckArgs::template __enable_implicit<_U1, _U2>()>::type* = nullptr
>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
pair(_U1&& __u1, _U2&& __u2)
noexcept((is_nothrow_constructible<first_type, _U1>::value && is_nothrow_constructible<second_type, _U2>::value))
: first(std::forward<_U1>(__u1)), second(std::forward<_U2>(__u2)) {}
# 233 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/pair.h" 3
template<class _U1, class _U2, typename enable_if<
_CheckArgs::template __enable_explicit<_U1 const&, _U2 const&>()
>::type* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
explicit pair(pair<_U1, _U2> const& __p)
noexcept((is_nothrow_constructible<first_type, _U1 const&>::value && is_nothrow_constructible<second_type, _U2 const&>::value))
: first(__p.first), second(__p.second) {}
template<class _U1, class _U2, typename enable_if<
_CheckArgs::template __enable_implicit<_U1 const&, _U2 const&>()
>::type* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
pair(pair<_U1, _U2> const& __p)
noexcept((is_nothrow_constructible<first_type, _U1 const&>::value && is_nothrow_constructible<second_type, _U2 const&>::value))
: first(__p.first), second(__p.second) {}
template<class _U1, class _U2, typename enable_if<
_CheckArgs::template __enable_explicit<_U1, _U2>()
>::type* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
explicit pair(pair<_U1, _U2>&&__p)
noexcept((is_nothrow_constructible<first_type, _U1&&>::value && is_nothrow_constructible<second_type, _U2&&>::value))
: first(std::forward<_U1>(__p.first)), second(std::forward<_U2>(__p.second)) {}
template<class _U1, class _U2, typename enable_if<
_CheckArgs::template __enable_implicit<_U1, _U2>()
>::type* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
pair(pair<_U1, _U2>&& __p)
noexcept((is_nothrow_constructible<first_type, _U1&&>::value && is_nothrow_constructible<second_type, _U2&&>::value))
: first(std::forward<_U1>(__p.first)), second(std::forward<_U2>(__p.second)) {}
# 281 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/pair.h" 3
template<class _Tuple, typename enable_if<
_CheckTLC<_Tuple>::template __enable_explicit<_Tuple>()
>::type* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
explicit pair(_Tuple&& __p)
: first(std::get<0>(std::forward<_Tuple>(__p))),
second(std::get<1>(std::forward<_Tuple>(__p))) {}
template<class _Tuple, typename enable_if<
_CheckTLC<_Tuple>::template __enable_implicit<_Tuple>()
>::type* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
pair(_Tuple&& __p)
: first(std::get<0>(std::forward<_Tuple>(__p))),
second(std::get<1>(std::forward<_Tuple>(__p))) {}
template <class... _Args1, class... _Args2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
pair(piecewise_construct_t __pc,
tuple<_Args1...> __first_args, tuple<_Args2...> __second_args)
noexcept((is_nothrow_constructible<first_type, _Args1...>::value && is_nothrow_constructible<second_type, _Args2...>::value))
: pair(__pc, __first_args, __second_args,
typename __make_tuple_indices<sizeof...(_Args1)>::type(),
typename __make_tuple_indices<sizeof...(_Args2) >::type()) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
pair& operator=(__conditional_t<
is_copy_assignable<first_type>::value &&
is_copy_assignable<second_type>::value,
pair, __nat> const& __p)
noexcept(is_nothrow_copy_assignable<first_type>::value && is_nothrow_copy_assignable<second_type>::value)
{
first = __p.first;
second = __p.second;
return *this;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
pair& operator=(__conditional_t<
is_move_assignable<first_type>::value &&
is_move_assignable<second_type>::value,
pair, __nat>&& __p)
noexcept(is_nothrow_move_assignable<first_type>::value && is_nothrow_move_assignable<second_type>::value)
{
first = std::forward<first_type>(__p.first);
second = std::forward<second_type>(__p.second);
return *this;
}
# 377 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/pair.h" 3
template <class _Tuple, typename enable_if<
_CheckTLC<_Tuple>::template __enable_assign<_Tuple>()
>::type* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
pair& operator=(_Tuple&& __p) {
first = std::get<0>(std::forward<_Tuple>(__p));
second = std::get<1>(std::forward<_Tuple>(__p));
return *this;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void
swap(pair& __p) noexcept(__is_nothrow_swappable<first_type>::value && __is_nothrow_swappable<second_type>::value)
{
using std::swap;
swap(first, __p.first);
swap(second, __p.second);
}
# 409 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/pair.h" 3
private:
template <class... _Args1, class... _Args2, size_t... _I1, size_t... _I2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
pair(piecewise_construct_t,
tuple<_Args1...>& __first_args, tuple<_Args2...>& __second_args,
__tuple_indices<_I1...>, __tuple_indices<_I2...>);
};
template<class _T1, class _T2>
pair(_T1, _T2) -> pair<_T1, _T2>;
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
bool
operator==(const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y)
{
return __x.first == __y.first && __x.second == __y.second;
}
# 452 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/pair.h" 3
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
bool
operator!=(const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y)
{
return !(__x == __y);
}
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
bool
operator< (const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y)
{
return __x.first < __y.first || (!(__y.first < __x.first) && __x.second < __y.second);
}
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
bool
operator> (const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y)
{
return __y < __x;
}
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
bool
operator>=(const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y)
{
return !(__x < __y);
}
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
bool
operator<=(const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y)
{
return !(__y < __x);
}
# 510 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/pair.h" 3
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename enable_if
<
__is_swappable<_T1>::value &&
__is_swappable<_T2>::value,
void
>::type
swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y)
noexcept((__is_nothrow_swappable<_T1>::value && __is_nothrow_swappable<_T2>::value))
{
__x.swap(__y);
}
# 537 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/pair.h" 3
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
pair<typename __unwrap_ref_decay<_T1>::type, typename __unwrap_ref_decay<_T2>::type>
make_pair(_T1&& __t1, _T2&& __t2)
{
return pair<typename __unwrap_ref_decay<_T1>::type, typename __unwrap_ref_decay<_T2>::type>
(std::forward<_T1>(__t1), std::forward<_T2>(__t2));
}
template <class _T1, class _T2>
struct __attribute__((__type_visibility__("default"))) tuple_size<pair<_T1, _T2> >
: public integral_constant<size_t, 2> {};
template <size_t _Ip, class _T1, class _T2>
struct __attribute__((__type_visibility__("default"))) tuple_element<_Ip, pair<_T1, _T2> >
{
static_assert(_Ip < 2, "Index out of bounds in std::tuple_element<std::pair<T1, T2>>");
};
template <class _T1, class _T2>
struct __attribute__((__type_visibility__("default"))) tuple_element<0, pair<_T1, _T2> >
{
using type __attribute__((__nodebug__)) = _T1;
};
template <class _T1, class _T2>
struct __attribute__((__type_visibility__("default"))) tuple_element<1, pair<_T1, _T2> >
{
using type __attribute__((__nodebug__)) = _T2;
};
template <size_t _Ip> struct __get_pair;
template <>
struct __get_pair<0>
{
template <class _T1, class _T2>
static
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
_T1&
get(pair<_T1, _T2>& __p) noexcept {return __p.first;}
template <class _T1, class _T2>
static
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
const _T1&
get(const pair<_T1, _T2>& __p) noexcept {return __p.first;}
template <class _T1, class _T2>
static
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
_T1&&
get(pair<_T1, _T2>&& __p) noexcept {return std::forward<_T1>(__p.first);}
template <class _T1, class _T2>
static
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
const _T1&&
get(const pair<_T1, _T2>&& __p) noexcept {return std::forward<const _T1>(__p.first);}
};
template <>
struct __get_pair<1>
{
template <class _T1, class _T2>
static
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
_T2&
get(pair<_T1, _T2>& __p) noexcept {return __p.second;}
template <class _T1, class _T2>
static
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
const _T2&
get(const pair<_T1, _T2>& __p) noexcept {return __p.second;}
template <class _T1, class _T2>
static
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
_T2&&
get(pair<_T1, _T2>&& __p) noexcept {return std::forward<_T2>(__p.second);}
template <class _T1, class _T2>
static
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
const _T2&&
get(const pair<_T1, _T2>&& __p) noexcept {return std::forward<const _T2>(__p.second);}
};
template <size_t _Ip, class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
typename tuple_element<_Ip, pair<_T1, _T2> >::type&
get(pair<_T1, _T2>& __p) noexcept
{
return __get_pair<_Ip>::get(__p);
}
template <size_t _Ip, class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
const typename tuple_element<_Ip, pair<_T1, _T2> >::type&
get(const pair<_T1, _T2>& __p) noexcept
{
return __get_pair<_Ip>::get(__p);
}
template <size_t _Ip, class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
typename tuple_element<_Ip, pair<_T1, _T2> >::type&&
get(pair<_T1, _T2>&& __p) noexcept
{
return __get_pair<_Ip>::get(std::move(__p));
}
template <size_t _Ip, class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
const typename tuple_element<_Ip, pair<_T1, _T2> >::type&&
get(const pair<_T1, _T2>&& __p) noexcept
{
return __get_pair<_Ip>::get(std::move(__p));
}
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr _T1 & get(pair<_T1, _T2>& __p) noexcept
{
return __get_pair<0>::get(__p);
}
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr _T1 const & get(pair<_T1, _T2> const& __p) noexcept
{
return __get_pair<0>::get(__p);
}
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr _T1 && get(pair<_T1, _T2>&& __p) noexcept
{
return __get_pair<0>::get(std::move(__p));
}
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr _T1 const && get(pair<_T1, _T2> const&& __p) noexcept
{
return __get_pair<0>::get(std::move(__p));
}
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr _T1 & get(pair<_T2, _T1>& __p) noexcept
{
return __get_pair<1>::get(__p);
}
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr _T1 const & get(pair<_T2, _T1> const& __p) noexcept
{
return __get_pair<1>::get(__p);
}
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr _T1 && get(pair<_T2, _T1>&& __p) noexcept
{
return __get_pair<1>::get(std::move(__p));
}
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr _T1 const && get(pair<_T2, _T1> const&& __p) noexcept
{
return __get_pair<1>::get(std::move(__p));
}
}}
# 254 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/utility" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/priority_tag.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/priority_tag.h" 3
namespace std { inline namespace __1 {
template<size_t _Ip> struct __priority_tag : __priority_tag<_Ip - 1> {};
template<> struct __priority_tag<0> {};
}}
# 256 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/utility" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/rel_ops.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/rel_ops.h" 3
namespace std { inline namespace __1 {
namespace rel_ops
{
template<class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
bool
operator!=(const _Tp& __x, const _Tp& __y)
{
return !(__x == __y);
}
template<class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
bool
operator> (const _Tp& __x, const _Tp& __y)
{
return __y < __x;
}
template<class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
bool
operator<=(const _Tp& __x, const _Tp& __y)
{
return !(__y < __x);
}
template<class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
bool
operator>=(const _Tp& __x, const _Tp& __y)
{
return !(__x < __y);
}
}
}}
# 257 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/utility" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/to_underlying.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/to_underlying.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr typename underlying_type<_Tp>::type
__to_underlying(_Tp __val) noexcept {
return static_cast<typename underlying_type<_Tp>::type>(__val);
}
# 38 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/to_underlying.h" 3
}}
# 259 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/utility" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/unreachable.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/unreachable.h" 3
namespace std { inline namespace __1 {
[[noreturn]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) inline void __libcpp_unreachable() {
(__builtin_expect(static_cast<bool>(false), 1) ? (void)0 : ::std::__libcpp_verbose_abort("%s:%d: assertion %s failed: %s", __builtin_FILE(), __builtin_LINE(), "false", "std::unreachable() was reached"));
__builtin_unreachable();
}
}}
# 260 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/utility" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/compare" 1 3
# 145 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/compare" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/compare_partial_order_fallback.h" 1 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/compare_partial_order_fallback.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/partial_order.h" 1 3
# 12 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/partial_order.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/compare_three_way.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/compare_three_way.h" 3
namespace std { inline namespace __1 {
# 39 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/compare_three_way.h" 3
}}
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/partial_order.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/weak_order.h" 1 3
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/weak_order.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/strong_order.h" 1 3
# 12 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/strong_order.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__bit/bit_cast.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__bit/bit_cast.h" 3
namespace std { inline namespace __1 {
# 34 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__bit/bit_cast.h" 3
}}
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/strong_order.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cmath" 1 3
# 314 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cmath" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/promote.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/promote.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct __numeric_type
{
static void __test(...);
static float __test(float);
static double __test(char);
static double __test(int);
static double __test(unsigned);
static double __test(long);
static double __test(unsigned long);
static double __test(long long);
static double __test(unsigned long long);
static double __test(__int128_t);
static double __test(__uint128_t);
static double __test(double);
static long double __test(long double);
typedef decltype(__test(std::declval<_Tp>())) type;
static const bool value = _IsNotSame<type, void>::value;
};
template <>
struct __numeric_type<void>
{
static const bool value = true;
};
template <class _A1, class _A2 = void, class _A3 = void,
bool = __numeric_type<_A1>::value &&
__numeric_type<_A2>::value &&
__numeric_type<_A3>::value>
class __promote_imp
{
public:
static const bool value = false;
};
template <class _A1, class _A2, class _A3>
class __promote_imp<_A1, _A2, _A3, true>
{
private:
typedef typename __promote_imp<_A1>::type __type1;
typedef typename __promote_imp<_A2>::type __type2;
typedef typename __promote_imp<_A3>::type __type3;
public:
typedef decltype(__type1() + __type2() + __type3()) type;
static const bool value = true;
};
template <class _A1, class _A2>
class __promote_imp<_A1, _A2, void, true>
{
private:
typedef typename __promote_imp<_A1>::type __type1;
typedef typename __promote_imp<_A2>::type __type2;
public:
typedef decltype(__type1() + __type2()) type;
static const bool value = true;
};
template <class _A1>
class __promote_imp<_A1, void, void, true>
{
public:
typedef typename __numeric_type<_A1>::type type;
static const bool value = true;
};
template <class _A1, class _A2 = void, class _A3 = void>
class __promote : public __promote_imp<_A1, _A2, _A3> {};
}}
# 315 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cmath" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/math.h" 1 3
# 298 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 1 3
# 27 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/libc-header-start.h" 1 3
# 28 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
extern "C" {
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/math-vector.h" 1 3
# 27 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/math-vector.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/libm-simd-decl-stubs.h" 1 3
# 28 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/math-vector.h" 2 3
# 41 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/floatn.h" 1 3
# 23 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/floatn.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/long-double.h" 1 3
# 24 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/floatn.h" 2 3
# 80 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/floatn.h" 3
typedef long double _Float128;
# 95 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/floatn.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/floatn-common.h" 1 3
# 24 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/floatn-common.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/long-double.h" 1 3
# 25 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/floatn-common.h" 2 3
# 214 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/floatn-common.h" 3
typedef float _Float32;
# 251 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/floatn-common.h" 3
typedef double _Float64;
# 268 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/floatn-common.h" 3
typedef double _Float32x;
# 285 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/floatn-common.h" 3
typedef long double _Float64x;
# 96 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/floatn.h" 2 3
# 44 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 152 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/flt-eval-method.h" 1 3
# 153 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 163 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
typedef float float_t;
typedef double double_t;
# 204 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/fp-logb.h" 1 3
# 205 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 247 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/fp-fast.h" 1 3
# 248 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
enum
{
FP_INT_UPWARD =
0,
FP_INT_DOWNWARD =
1,
FP_INT_TOWARDZERO =
2,
FP_INT_TONEARESTFROMZERO =
3,
FP_INT_TONEAREST =
4,
};
# 312 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-helper-functions.h" 1 3
# 20 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-helper-functions.h" 3
extern int __fpclassify (double __value) noexcept (true)
__attribute__ ((__const__));
extern int __signbit (double __value) noexcept (true)
__attribute__ ((__const__));
extern int __isinf (double __value) noexcept (true)
__attribute__ ((__const__));
extern int __finite (double __value) noexcept (true)
__attribute__ ((__const__));
extern int __isnan (double __value) noexcept (true)
__attribute__ ((__const__));
extern int __iseqsig (double __x, double __y) noexcept (true);
extern int __issignaling (double __value) noexcept (true)
__attribute__ ((__const__));
# 313 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 1 3
# 53 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern double acos (double __x) noexcept (true); extern double __acos (double __x) noexcept (true);
extern double asin (double __x) noexcept (true); extern double __asin (double __x) noexcept (true);
extern double atan (double __x) noexcept (true); extern double __atan (double __x) noexcept (true);
extern double atan2 (double __y, double __x) noexcept (true); extern double __atan2 (double __y, double __x) noexcept (true);
extern double cos (double __x) noexcept (true); extern double __cos (double __x) noexcept (true);
extern double sin (double __x) noexcept (true); extern double __sin (double __x) noexcept (true);
extern double tan (double __x) noexcept (true); extern double __tan (double __x) noexcept (true);
extern double cosh (double __x) noexcept (true); extern double __cosh (double __x) noexcept (true);
extern double sinh (double __x) noexcept (true); extern double __sinh (double __x) noexcept (true);
extern double tanh (double __x) noexcept (true); extern double __tanh (double __x) noexcept (true);
extern void sincos (double __x, double *__sinx, double *__cosx) noexcept (true); extern void __sincos (double __x, double *__sinx, double *__cosx) noexcept (true);
extern double acosh (double __x) noexcept (true); extern double __acosh (double __x) noexcept (true);
extern double asinh (double __x) noexcept (true); extern double __asinh (double __x) noexcept (true);
extern double atanh (double __x) noexcept (true); extern double __atanh (double __x) noexcept (true);
extern double exp (double __x) noexcept (true); extern double __exp (double __x) noexcept (true);
extern double frexp (double __x, int *__exponent) noexcept (true); extern double __frexp (double __x, int *__exponent) noexcept (true);
extern double ldexp (double __x, int __exponent) noexcept (true); extern double __ldexp (double __x, int __exponent) noexcept (true);
extern double log (double __x) noexcept (true); extern double __log (double __x) noexcept (true);
extern double log10 (double __x) noexcept (true); extern double __log10 (double __x) noexcept (true);
extern double modf (double __x, double *__iptr) noexcept (true); extern double __modf (double __x, double *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2)));
extern double exp10 (double __x) noexcept (true); extern double __exp10 (double __x) noexcept (true);
extern double expm1 (double __x) noexcept (true); extern double __expm1 (double __x) noexcept (true);
extern double log1p (double __x) noexcept (true); extern double __log1p (double __x) noexcept (true);
extern double logb (double __x) noexcept (true); extern double __logb (double __x) noexcept (true);
extern double exp2 (double __x) noexcept (true); extern double __exp2 (double __x) noexcept (true);
extern double log2 (double __x) noexcept (true); extern double __log2 (double __x) noexcept (true);
extern double pow (double __x, double __y) noexcept (true); extern double __pow (double __x, double __y) noexcept (true);
extern double sqrt (double __x) noexcept (true); extern double __sqrt (double __x) noexcept (true);
extern double hypot (double __x, double __y) noexcept (true); extern double __hypot (double __x, double __y) noexcept (true);
extern double cbrt (double __x) noexcept (true); extern double __cbrt (double __x) noexcept (true);
extern double ceil (double __x) noexcept (true) __attribute__ ((__const__)); extern double __ceil (double __x) noexcept (true) __attribute__ ((__const__));
extern double fabs (double __x) noexcept (true) __attribute__ ((__const__)); extern double __fabs (double __x) noexcept (true) __attribute__ ((__const__));
extern double floor (double __x) noexcept (true) __attribute__ ((__const__)); extern double __floor (double __x) noexcept (true) __attribute__ ((__const__));
extern double fmod (double __x, double __y) noexcept (true); extern double __fmod (double __x, double __y) noexcept (true);
# 183 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern int finite (double __value) noexcept (true)
__attribute__ ((__const__));
extern double drem (double __x, double __y) noexcept (true); extern double __drem (double __x, double __y) noexcept (true);
extern double significand (double __x) noexcept (true); extern double __significand (double __x) noexcept (true);
extern double copysign (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __copysign (double __x, double __y) noexcept (true) __attribute__ ((__const__));
extern double nan (const char *__tagb) noexcept (true); extern double __nan (const char *__tagb) noexcept (true);
# 220 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern double j0 (double) noexcept (true); extern double __j0 (double) noexcept (true);
extern double j1 (double) noexcept (true); extern double __j1 (double) noexcept (true);
extern double jn (int, double) noexcept (true); extern double __jn (int, double) noexcept (true);
extern double y0 (double) noexcept (true); extern double __y0 (double) noexcept (true);
extern double y1 (double) noexcept (true); extern double __y1 (double) noexcept (true);
extern double yn (int, double) noexcept (true); extern double __yn (int, double) noexcept (true);
extern double erf (double) noexcept (true); extern double __erf (double) noexcept (true);
extern double erfc (double) noexcept (true); extern double __erfc (double) noexcept (true);
extern double lgamma (double) noexcept (true); extern double __lgamma (double) noexcept (true);
extern double tgamma (double) noexcept (true); extern double __tgamma (double) noexcept (true);
extern double gamma (double) noexcept (true); extern double __gamma (double) noexcept (true);
extern double lgamma_r (double, int *__signgamp) noexcept (true); extern double __lgamma_r (double, int *__signgamp) noexcept (true);
extern double rint (double __x) noexcept (true); extern double __rint (double __x) noexcept (true);
extern double nextafter (double __x, double __y) noexcept (true); extern double __nextafter (double __x, double __y) noexcept (true);
extern double nexttoward (double __x, long double __y) noexcept (true); extern double __nexttoward (double __x, long double __y) noexcept (true);
extern double nextdown (double __x) noexcept (true); extern double __nextdown (double __x) noexcept (true);
extern double nextup (double __x) noexcept (true); extern double __nextup (double __x) noexcept (true);
extern double remainder (double __x, double __y) noexcept (true); extern double __remainder (double __x, double __y) noexcept (true);
extern double scalbn (double __x, int __n) noexcept (true); extern double __scalbn (double __x, int __n) noexcept (true);
extern int ilogb (double __x) noexcept (true); extern int __ilogb (double __x) noexcept (true);
extern long int llogb (double __x) noexcept (true); extern long int __llogb (double __x) noexcept (true);
extern double scalbln (double __x, long int __n) noexcept (true); extern double __scalbln (double __x, long int __n) noexcept (true);
extern double nearbyint (double __x) noexcept (true); extern double __nearbyint (double __x) noexcept (true);
extern double round (double __x) noexcept (true) __attribute__ ((__const__)); extern double __round (double __x) noexcept (true) __attribute__ ((__const__));
extern double trunc (double __x) noexcept (true) __attribute__ ((__const__)); extern double __trunc (double __x) noexcept (true) __attribute__ ((__const__));
extern double remquo (double __x, double __y, int *__quo) noexcept (true); extern double __remquo (double __x, double __y, int *__quo) noexcept (true);
extern long int lrint (double __x) noexcept (true); extern long int __lrint (double __x) noexcept (true);
__extension__
extern long long int llrint (double __x) noexcept (true); extern long long int __llrint (double __x) noexcept (true);
extern long int lround (double __x) noexcept (true); extern long int __lround (double __x) noexcept (true);
__extension__
extern long long int llround (double __x) noexcept (true); extern long long int __llround (double __x) noexcept (true);
extern double fdim (double __x, double __y) noexcept (true); extern double __fdim (double __x, double __y) noexcept (true);
extern double fmax (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __fmax (double __x, double __y) noexcept (true) __attribute__ ((__const__));
extern double fmin (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __fmin (double __x, double __y) noexcept (true) __attribute__ ((__const__));
extern double fma (double __x, double __y, double __z) noexcept (true); extern double __fma (double __x, double __y, double __z) noexcept (true);
extern double roundeven (double __x) noexcept (true) __attribute__ ((__const__)); extern double __roundeven (double __x) noexcept (true) __attribute__ ((__const__));
extern __intmax_t fromfp (double __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfp (double __x, int __round, unsigned int __width) noexcept (true);
extern __uintmax_t ufromfp (double __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfp (double __x, int __round, unsigned int __width) noexcept (true);
extern __intmax_t fromfpx (double __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpx (double __x, int __round, unsigned int __width) noexcept (true);
extern __uintmax_t ufromfpx (double __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpx (double __x, int __round, unsigned int __width) noexcept (true);
extern int canonicalize (double *__cx, const double *__x) noexcept (true);
extern double fmaxmag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __fmaxmag (double __x, double __y) noexcept (true) __attribute__ ((__const__));
extern double fminmag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __fminmag (double __x, double __y) noexcept (true) __attribute__ ((__const__));
extern double fmaximum (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __fmaximum (double __x, double __y) noexcept (true) __attribute__ ((__const__));
extern double fminimum (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __fminimum (double __x, double __y) noexcept (true) __attribute__ ((__const__));
extern double fmaximum_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __fmaximum_num (double __x, double __y) noexcept (true) __attribute__ ((__const__));
extern double fminimum_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __fminimum_num (double __x, double __y) noexcept (true) __attribute__ ((__const__));
extern double fmaximum_mag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __fmaximum_mag (double __x, double __y) noexcept (true) __attribute__ ((__const__));
extern double fminimum_mag (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __fminimum_mag (double __x, double __y) noexcept (true) __attribute__ ((__const__));
extern double fmaximum_mag_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __fmaximum_mag_num (double __x, double __y) noexcept (true) __attribute__ ((__const__));
extern double fminimum_mag_num (double __x, double __y) noexcept (true) __attribute__ ((__const__)); extern double __fminimum_mag_num (double __x, double __y) noexcept (true) __attribute__ ((__const__));
extern int totalorder (const double *__x, const double *__y) noexcept (true)
__attribute__ ((__pure__));
extern int totalordermag (const double *__x, const double *__y) noexcept (true)
__attribute__ ((__pure__));
extern double getpayload (const double *__x) noexcept (true); extern double __getpayload (const double *__x) noexcept (true);
extern int setpayload (double *__x, double __payload) noexcept (true);
extern int setpayloadsig (double *__x, double __payload) noexcept (true);
extern double scalb (double __x, double __n) noexcept (true); extern double __scalb (double __x, double __n) noexcept (true);
# 314 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 329 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-helper-functions.h" 1 3
# 20 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-helper-functions.h" 3
extern int __fpclassifyf (float __value) noexcept (true)
__attribute__ ((__const__));
extern int __signbitf (float __value) noexcept (true)
__attribute__ ((__const__));
extern int __isinff (float __value) noexcept (true)
__attribute__ ((__const__));
extern int __finitef (float __value) noexcept (true)
__attribute__ ((__const__));
extern int __isnanf (float __value) noexcept (true)
__attribute__ ((__const__));
extern int __iseqsigf (float __x, float __y) noexcept (true);
extern int __issignalingf (float __value) noexcept (true)
__attribute__ ((__const__));
# 330 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 1 3
# 53 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern float acosf (float __x) noexcept (true); extern float __acosf (float __x) noexcept (true);
extern float asinf (float __x) noexcept (true); extern float __asinf (float __x) noexcept (true);
extern float atanf (float __x) noexcept (true); extern float __atanf (float __x) noexcept (true);
extern float atan2f (float __y, float __x) noexcept (true); extern float __atan2f (float __y, float __x) noexcept (true);
extern float cosf (float __x) noexcept (true); extern float __cosf (float __x) noexcept (true);
extern float sinf (float __x) noexcept (true); extern float __sinf (float __x) noexcept (true);
extern float tanf (float __x) noexcept (true); extern float __tanf (float __x) noexcept (true);
extern float coshf (float __x) noexcept (true); extern float __coshf (float __x) noexcept (true);
extern float sinhf (float __x) noexcept (true); extern float __sinhf (float __x) noexcept (true);
extern float tanhf (float __x) noexcept (true); extern float __tanhf (float __x) noexcept (true);
extern void sincosf (float __x, float *__sinx, float *__cosx) noexcept (true); extern void __sincosf (float __x, float *__sinx, float *__cosx) noexcept (true);
extern float acoshf (float __x) noexcept (true); extern float __acoshf (float __x) noexcept (true);
extern float asinhf (float __x) noexcept (true); extern float __asinhf (float __x) noexcept (true);
extern float atanhf (float __x) noexcept (true); extern float __atanhf (float __x) noexcept (true);
extern float expf (float __x) noexcept (true); extern float __expf (float __x) noexcept (true);
extern float frexpf (float __x, int *__exponent) noexcept (true); extern float __frexpf (float __x, int *__exponent) noexcept (true);
extern float ldexpf (float __x, int __exponent) noexcept (true); extern float __ldexpf (float __x, int __exponent) noexcept (true);
extern float logf (float __x) noexcept (true); extern float __logf (float __x) noexcept (true);
extern float log10f (float __x) noexcept (true); extern float __log10f (float __x) noexcept (true);
extern float modff (float __x, float *__iptr) noexcept (true); extern float __modff (float __x, float *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2)));
extern float exp10f (float __x) noexcept (true); extern float __exp10f (float __x) noexcept (true);
extern float expm1f (float __x) noexcept (true); extern float __expm1f (float __x) noexcept (true);
extern float log1pf (float __x) noexcept (true); extern float __log1pf (float __x) noexcept (true);
extern float logbf (float __x) noexcept (true); extern float __logbf (float __x) noexcept (true);
extern float exp2f (float __x) noexcept (true); extern float __exp2f (float __x) noexcept (true);
extern float log2f (float __x) noexcept (true); extern float __log2f (float __x) noexcept (true);
extern float powf (float __x, float __y) noexcept (true); extern float __powf (float __x, float __y) noexcept (true);
extern float sqrtf (float __x) noexcept (true); extern float __sqrtf (float __x) noexcept (true);
extern float hypotf (float __x, float __y) noexcept (true); extern float __hypotf (float __x, float __y) noexcept (true);
extern float cbrtf (float __x) noexcept (true); extern float __cbrtf (float __x) noexcept (true);
extern float ceilf (float __x) noexcept (true) __attribute__ ((__const__)); extern float __ceilf (float __x) noexcept (true) __attribute__ ((__const__));
extern float fabsf (float __x) noexcept (true) __attribute__ ((__const__)); extern float __fabsf (float __x) noexcept (true) __attribute__ ((__const__));
extern float floorf (float __x) noexcept (true) __attribute__ ((__const__)); extern float __floorf (float __x) noexcept (true) __attribute__ ((__const__));
extern float fmodf (float __x, float __y) noexcept (true); extern float __fmodf (float __x, float __y) noexcept (true);
# 177 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern int isinff (float __value) noexcept (true)
__attribute__ ((__const__));
extern int finitef (float __value) noexcept (true)
__attribute__ ((__const__));
extern float dremf (float __x, float __y) noexcept (true); extern float __dremf (float __x, float __y) noexcept (true);
extern float significandf (float __x) noexcept (true); extern float __significandf (float __x) noexcept (true);
extern float copysignf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) noexcept (true) __attribute__ ((__const__));
extern float nanf (const char *__tagb) noexcept (true); extern float __nanf (const char *__tagb) noexcept (true);
# 213 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern int isnanf (float __value) noexcept (true)
__attribute__ ((__const__));
extern float j0f (float) noexcept (true); extern float __j0f (float) noexcept (true);
extern float j1f (float) noexcept (true); extern float __j1f (float) noexcept (true);
extern float jnf (int, float) noexcept (true); extern float __jnf (int, float) noexcept (true);
extern float y0f (float) noexcept (true); extern float __y0f (float) noexcept (true);
extern float y1f (float) noexcept (true); extern float __y1f (float) noexcept (true);
extern float ynf (int, float) noexcept (true); extern float __ynf (int, float) noexcept (true);
extern float erff (float) noexcept (true); extern float __erff (float) noexcept (true);
extern float erfcf (float) noexcept (true); extern float __erfcf (float) noexcept (true);
extern float lgammaf (float) noexcept (true); extern float __lgammaf (float) noexcept (true);
extern float tgammaf (float) noexcept (true); extern float __tgammaf (float) noexcept (true);
extern float gammaf (float) noexcept (true); extern float __gammaf (float) noexcept (true);
extern float lgammaf_r (float, int *__signgamp) noexcept (true); extern float __lgammaf_r (float, int *__signgamp) noexcept (true);
extern float rintf (float __x) noexcept (true); extern float __rintf (float __x) noexcept (true);
extern float nextafterf (float __x, float __y) noexcept (true); extern float __nextafterf (float __x, float __y) noexcept (true);
extern float nexttowardf (float __x, long double __y) noexcept (true); extern float __nexttowardf (float __x, long double __y) noexcept (true);
extern float nextdownf (float __x) noexcept (true); extern float __nextdownf (float __x) noexcept (true);
extern float nextupf (float __x) noexcept (true); extern float __nextupf (float __x) noexcept (true);
extern float remainderf (float __x, float __y) noexcept (true); extern float __remainderf (float __x, float __y) noexcept (true);
extern float scalbnf (float __x, int __n) noexcept (true); extern float __scalbnf (float __x, int __n) noexcept (true);
extern int ilogbf (float __x) noexcept (true); extern int __ilogbf (float __x) noexcept (true);
extern long int llogbf (float __x) noexcept (true); extern long int __llogbf (float __x) noexcept (true);
extern float scalblnf (float __x, long int __n) noexcept (true); extern float __scalblnf (float __x, long int __n) noexcept (true);
extern float nearbyintf (float __x) noexcept (true); extern float __nearbyintf (float __x) noexcept (true);
extern float roundf (float __x) noexcept (true) __attribute__ ((__const__)); extern float __roundf (float __x) noexcept (true) __attribute__ ((__const__));
extern float truncf (float __x) noexcept (true) __attribute__ ((__const__)); extern float __truncf (float __x) noexcept (true) __attribute__ ((__const__));
extern float remquof (float __x, float __y, int *__quo) noexcept (true); extern float __remquof (float __x, float __y, int *__quo) noexcept (true);
extern long int lrintf (float __x) noexcept (true); extern long int __lrintf (float __x) noexcept (true);
__extension__
extern long long int llrintf (float __x) noexcept (true); extern long long int __llrintf (float __x) noexcept (true);
extern long int lroundf (float __x) noexcept (true); extern long int __lroundf (float __x) noexcept (true);
__extension__
extern long long int llroundf (float __x) noexcept (true); extern long long int __llroundf (float __x) noexcept (true);
extern float fdimf (float __x, float __y) noexcept (true); extern float __fdimf (float __x, float __y) noexcept (true);
extern float fmaxf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __fmaxf (float __x, float __y) noexcept (true) __attribute__ ((__const__));
extern float fminf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __fminf (float __x, float __y) noexcept (true) __attribute__ ((__const__));
extern float fmaf (float __x, float __y, float __z) noexcept (true); extern float __fmaf (float __x, float __y, float __z) noexcept (true);
extern float roundevenf (float __x) noexcept (true) __attribute__ ((__const__)); extern float __roundevenf (float __x) noexcept (true) __attribute__ ((__const__));
extern __intmax_t fromfpf (float __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf (float __x, int __round, unsigned int __width) noexcept (true);
extern __uintmax_t ufromfpf (float __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf (float __x, int __round, unsigned int __width) noexcept (true);
extern __intmax_t fromfpxf (float __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf (float __x, int __round, unsigned int __width) noexcept (true);
extern __uintmax_t ufromfpxf (float __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf (float __x, int __round, unsigned int __width) noexcept (true);
extern int canonicalizef (float *__cx, const float *__x) noexcept (true);
extern float fmaxmagf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __fmaxmagf (float __x, float __y) noexcept (true) __attribute__ ((__const__));
extern float fminmagf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __fminmagf (float __x, float __y) noexcept (true) __attribute__ ((__const__));
extern float fmaximumf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __fmaximumf (float __x, float __y) noexcept (true) __attribute__ ((__const__));
extern float fminimumf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __fminimumf (float __x, float __y) noexcept (true) __attribute__ ((__const__));
extern float fmaximum_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __fmaximum_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__));
extern float fminimum_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __fminimum_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__));
extern float fmaximum_magf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __fmaximum_magf (float __x, float __y) noexcept (true) __attribute__ ((__const__));
extern float fminimum_magf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __fminimum_magf (float __x, float __y) noexcept (true) __attribute__ ((__const__));
extern float fmaximum_mag_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __fmaximum_mag_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__));
extern float fminimum_mag_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__)); extern float __fminimum_mag_numf (float __x, float __y) noexcept (true) __attribute__ ((__const__));
extern int totalorderf (const float *__x, const float *__y) noexcept (true)
__attribute__ ((__pure__));
extern int totalordermagf (const float *__x, const float *__y) noexcept (true)
__attribute__ ((__pure__));
extern float getpayloadf (const float *__x) noexcept (true); extern float __getpayloadf (const float *__x) noexcept (true);
extern int setpayloadf (float *__x, float __payload) noexcept (true);
extern int setpayloadsigf (float *__x, float __payload) noexcept (true);
extern float scalbf (float __x, float __n) noexcept (true); extern float __scalbf (float __x, float __n) noexcept (true);
# 331 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 398 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-helper-functions.h" 1 3
# 20 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-helper-functions.h" 3
extern int __fpclassifyl (long double __value) noexcept (true)
__attribute__ ((__const__));
extern int __signbitl (long double __value) noexcept (true)
__attribute__ ((__const__));
extern int __isinfl (long double __value) noexcept (true)
__attribute__ ((__const__));
extern int __finitel (long double __value) noexcept (true)
__attribute__ ((__const__));
extern int __isnanl (long double __value) noexcept (true)
__attribute__ ((__const__));
extern int __iseqsigl (long double __x, long double __y) noexcept (true);
extern int __issignalingl (long double __value) noexcept (true)
__attribute__ ((__const__));
# 399 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 1 3
# 53 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern long double acosl (long double __x) noexcept (true); extern long double __acosl (long double __x) noexcept (true);
extern long double asinl (long double __x) noexcept (true); extern long double __asinl (long double __x) noexcept (true);
extern long double atanl (long double __x) noexcept (true); extern long double __atanl (long double __x) noexcept (true);
extern long double atan2l (long double __y, long double __x) noexcept (true); extern long double __atan2l (long double __y, long double __x) noexcept (true);
extern long double cosl (long double __x) noexcept (true); extern long double __cosl (long double __x) noexcept (true);
extern long double sinl (long double __x) noexcept (true); extern long double __sinl (long double __x) noexcept (true);
extern long double tanl (long double __x) noexcept (true); extern long double __tanl (long double __x) noexcept (true);
extern long double coshl (long double __x) noexcept (true); extern long double __coshl (long double __x) noexcept (true);
extern long double sinhl (long double __x) noexcept (true); extern long double __sinhl (long double __x) noexcept (true);
extern long double tanhl (long double __x) noexcept (true); extern long double __tanhl (long double __x) noexcept (true);
extern void sincosl (long double __x, long double *__sinx, long double *__cosx) noexcept (true); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) noexcept (true);
extern long double acoshl (long double __x) noexcept (true); extern long double __acoshl (long double __x) noexcept (true);
extern long double asinhl (long double __x) noexcept (true); extern long double __asinhl (long double __x) noexcept (true);
extern long double atanhl (long double __x) noexcept (true); extern long double __atanhl (long double __x) noexcept (true);
extern long double expl (long double __x) noexcept (true); extern long double __expl (long double __x) noexcept (true);
extern long double frexpl (long double __x, int *__exponent) noexcept (true); extern long double __frexpl (long double __x, int *__exponent) noexcept (true);
extern long double ldexpl (long double __x, int __exponent) noexcept (true); extern long double __ldexpl (long double __x, int __exponent) noexcept (true);
extern long double logl (long double __x) noexcept (true); extern long double __logl (long double __x) noexcept (true);
extern long double log10l (long double __x) noexcept (true); extern long double __log10l (long double __x) noexcept (true);
extern long double modfl (long double __x, long double *__iptr) noexcept (true); extern long double __modfl (long double __x, long double *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2)));
extern long double exp10l (long double __x) noexcept (true); extern long double __exp10l (long double __x) noexcept (true);
extern long double expm1l (long double __x) noexcept (true); extern long double __expm1l (long double __x) noexcept (true);
extern long double log1pl (long double __x) noexcept (true); extern long double __log1pl (long double __x) noexcept (true);
extern long double logbl (long double __x) noexcept (true); extern long double __logbl (long double __x) noexcept (true);
extern long double exp2l (long double __x) noexcept (true); extern long double __exp2l (long double __x) noexcept (true);
extern long double log2l (long double __x) noexcept (true); extern long double __log2l (long double __x) noexcept (true);
extern long double powl (long double __x, long double __y) noexcept (true); extern long double __powl (long double __x, long double __y) noexcept (true);
extern long double sqrtl (long double __x) noexcept (true); extern long double __sqrtl (long double __x) noexcept (true);
extern long double hypotl (long double __x, long double __y) noexcept (true); extern long double __hypotl (long double __x, long double __y) noexcept (true);
extern long double cbrtl (long double __x) noexcept (true); extern long double __cbrtl (long double __x) noexcept (true);
extern long double ceill (long double __x) noexcept (true) __attribute__ ((__const__)); extern long double __ceill (long double __x) noexcept (true) __attribute__ ((__const__));
extern long double fabsl (long double __x) noexcept (true) __attribute__ ((__const__)); extern long double __fabsl (long double __x) noexcept (true) __attribute__ ((__const__));
extern long double floorl (long double __x) noexcept (true) __attribute__ ((__const__)); extern long double __floorl (long double __x) noexcept (true) __attribute__ ((__const__));
extern long double fmodl (long double __x, long double __y) noexcept (true); extern long double __fmodl (long double __x, long double __y) noexcept (true);
# 177 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern int isinfl (long double __value) noexcept (true)
__attribute__ ((__const__));
extern int finitel (long double __value) noexcept (true)
__attribute__ ((__const__));
extern long double dreml (long double __x, long double __y) noexcept (true); extern long double __dreml (long double __x, long double __y) noexcept (true);
extern long double significandl (long double __x) noexcept (true); extern long double __significandl (long double __x) noexcept (true);
extern long double copysignl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__));
extern long double nanl (const char *__tagb) noexcept (true); extern long double __nanl (const char *__tagb) noexcept (true);
# 213 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern int isnanl (long double __value) noexcept (true)
__attribute__ ((__const__));
extern long double j0l (long double) noexcept (true); extern long double __j0l (long double) noexcept (true);
extern long double j1l (long double) noexcept (true); extern long double __j1l (long double) noexcept (true);
extern long double jnl (int, long double) noexcept (true); extern long double __jnl (int, long double) noexcept (true);
extern long double y0l (long double) noexcept (true); extern long double __y0l (long double) noexcept (true);
extern long double y1l (long double) noexcept (true); extern long double __y1l (long double) noexcept (true);
extern long double ynl (int, long double) noexcept (true); extern long double __ynl (int, long double) noexcept (true);
extern long double erfl (long double) noexcept (true); extern long double __erfl (long double) noexcept (true);
extern long double erfcl (long double) noexcept (true); extern long double __erfcl (long double) noexcept (true);
extern long double lgammal (long double) noexcept (true); extern long double __lgammal (long double) noexcept (true);
extern long double tgammal (long double) noexcept (true); extern long double __tgammal (long double) noexcept (true);
extern long double gammal (long double) noexcept (true); extern long double __gammal (long double) noexcept (true);
extern long double lgammal_r (long double, int *__signgamp) noexcept (true); extern long double __lgammal_r (long double, int *__signgamp) noexcept (true);
extern long double rintl (long double __x) noexcept (true); extern long double __rintl (long double __x) noexcept (true);
extern long double nextafterl (long double __x, long double __y) noexcept (true); extern long double __nextafterl (long double __x, long double __y) noexcept (true);
extern long double nexttowardl (long double __x, long double __y) noexcept (true); extern long double __nexttowardl (long double __x, long double __y) noexcept (true);
extern long double nextdownl (long double __x) noexcept (true); extern long double __nextdownl (long double __x) noexcept (true);
extern long double nextupl (long double __x) noexcept (true); extern long double __nextupl (long double __x) noexcept (true);
extern long double remainderl (long double __x, long double __y) noexcept (true); extern long double __remainderl (long double __x, long double __y) noexcept (true);
extern long double scalbnl (long double __x, int __n) noexcept (true); extern long double __scalbnl (long double __x, int __n) noexcept (true);
extern int ilogbl (long double __x) noexcept (true); extern int __ilogbl (long double __x) noexcept (true);
extern long int llogbl (long double __x) noexcept (true); extern long int __llogbl (long double __x) noexcept (true);
extern long double scalblnl (long double __x, long int __n) noexcept (true); extern long double __scalblnl (long double __x, long int __n) noexcept (true);
extern long double nearbyintl (long double __x) noexcept (true); extern long double __nearbyintl (long double __x) noexcept (true);
extern long double roundl (long double __x) noexcept (true) __attribute__ ((__const__)); extern long double __roundl (long double __x) noexcept (true) __attribute__ ((__const__));
extern long double truncl (long double __x) noexcept (true) __attribute__ ((__const__)); extern long double __truncl (long double __x) noexcept (true) __attribute__ ((__const__));
extern long double remquol (long double __x, long double __y, int *__quo) noexcept (true); extern long double __remquol (long double __x, long double __y, int *__quo) noexcept (true);
extern long int lrintl (long double __x) noexcept (true); extern long int __lrintl (long double __x) noexcept (true);
__extension__
extern long long int llrintl (long double __x) noexcept (true); extern long long int __llrintl (long double __x) noexcept (true);
extern long int lroundl (long double __x) noexcept (true); extern long int __lroundl (long double __x) noexcept (true);
__extension__
extern long long int llroundl (long double __x) noexcept (true); extern long long int __llroundl (long double __x) noexcept (true);
extern long double fdiml (long double __x, long double __y) noexcept (true); extern long double __fdiml (long double __x, long double __y) noexcept (true);
extern long double fmaxl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __fmaxl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__));
extern long double fminl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __fminl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__));
extern long double fmal (long double __x, long double __y, long double __z) noexcept (true); extern long double __fmal (long double __x, long double __y, long double __z) noexcept (true);
extern long double roundevenl (long double __x) noexcept (true) __attribute__ ((__const__)); extern long double __roundevenl (long double __x) noexcept (true) __attribute__ ((__const__));
extern __intmax_t fromfpl (long double __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpl (long double __x, int __round, unsigned int __width) noexcept (true);
extern __uintmax_t ufromfpl (long double __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpl (long double __x, int __round, unsigned int __width) noexcept (true);
extern __intmax_t fromfpxl (long double __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxl (long double __x, int __round, unsigned int __width) noexcept (true);
extern __uintmax_t ufromfpxl (long double __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxl (long double __x, int __round, unsigned int __width) noexcept (true);
extern int canonicalizel (long double *__cx, const long double *__x) noexcept (true);
extern long double fmaxmagl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __fmaxmagl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__));
extern long double fminmagl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __fminmagl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__));
extern long double fmaximuml (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __fmaximuml (long double __x, long double __y) noexcept (true) __attribute__ ((__const__));
extern long double fminimuml (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __fminimuml (long double __x, long double __y) noexcept (true) __attribute__ ((__const__));
extern long double fmaximum_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __fmaximum_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__));
extern long double fminimum_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __fminimum_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__));
extern long double fmaximum_magl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __fmaximum_magl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__));
extern long double fminimum_magl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __fminimum_magl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__));
extern long double fmaximum_mag_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __fmaximum_mag_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__));
extern long double fminimum_mag_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__)); extern long double __fminimum_mag_numl (long double __x, long double __y) noexcept (true) __attribute__ ((__const__));
extern int totalorderl (const long double *__x, const long double *__y) noexcept (true)
__attribute__ ((__pure__));
extern int totalordermagl (const long double *__x, const long double *__y) noexcept (true)
__attribute__ ((__pure__));
extern long double getpayloadl (const long double *__x) noexcept (true); extern long double __getpayloadl (const long double *__x) noexcept (true);
extern int setpayloadl (long double *__x, long double __payload) noexcept (true);
extern int setpayloadsigl (long double *__x, long double __payload) noexcept (true);
extern long double scalbl (long double __x, long double __n) noexcept (true); extern long double __scalbl (long double __x, long double __n) noexcept (true);
# 400 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 450 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 1 3
# 53 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern _Float32 acosf32 (_Float32 __x) noexcept (true); extern _Float32 __acosf32 (_Float32 __x) noexcept (true);
extern _Float32 asinf32 (_Float32 __x) noexcept (true); extern _Float32 __asinf32 (_Float32 __x) noexcept (true);
extern _Float32 atanf32 (_Float32 __x) noexcept (true); extern _Float32 __atanf32 (_Float32 __x) noexcept (true);
extern _Float32 atan2f32 (_Float32 __y, _Float32 __x) noexcept (true); extern _Float32 __atan2f32 (_Float32 __y, _Float32 __x) noexcept (true);
extern _Float32 cosf32 (_Float32 __x) noexcept (true); extern _Float32 __cosf32 (_Float32 __x) noexcept (true);
extern _Float32 sinf32 (_Float32 __x) noexcept (true); extern _Float32 __sinf32 (_Float32 __x) noexcept (true);
extern _Float32 tanf32 (_Float32 __x) noexcept (true); extern _Float32 __tanf32 (_Float32 __x) noexcept (true);
extern _Float32 coshf32 (_Float32 __x) noexcept (true); extern _Float32 __coshf32 (_Float32 __x) noexcept (true);
extern _Float32 sinhf32 (_Float32 __x) noexcept (true); extern _Float32 __sinhf32 (_Float32 __x) noexcept (true);
extern _Float32 tanhf32 (_Float32 __x) noexcept (true); extern _Float32 __tanhf32 (_Float32 __x) noexcept (true);
extern void sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) noexcept (true); extern void __sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) noexcept (true);
extern _Float32 acoshf32 (_Float32 __x) noexcept (true); extern _Float32 __acoshf32 (_Float32 __x) noexcept (true);
extern _Float32 asinhf32 (_Float32 __x) noexcept (true); extern _Float32 __asinhf32 (_Float32 __x) noexcept (true);
extern _Float32 atanhf32 (_Float32 __x) noexcept (true); extern _Float32 __atanhf32 (_Float32 __x) noexcept (true);
extern _Float32 expf32 (_Float32 __x) noexcept (true); extern _Float32 __expf32 (_Float32 __x) noexcept (true);
extern _Float32 frexpf32 (_Float32 __x, int *__exponent) noexcept (true); extern _Float32 __frexpf32 (_Float32 __x, int *__exponent) noexcept (true);
extern _Float32 ldexpf32 (_Float32 __x, int __exponent) noexcept (true); extern _Float32 __ldexpf32 (_Float32 __x, int __exponent) noexcept (true);
extern _Float32 logf32 (_Float32 __x) noexcept (true); extern _Float32 __logf32 (_Float32 __x) noexcept (true);
extern _Float32 log10f32 (_Float32 __x) noexcept (true); extern _Float32 __log10f32 (_Float32 __x) noexcept (true);
extern _Float32 modff32 (_Float32 __x, _Float32 *__iptr) noexcept (true); extern _Float32 __modff32 (_Float32 __x, _Float32 *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2)));
extern _Float32 exp10f32 (_Float32 __x) noexcept (true); extern _Float32 __exp10f32 (_Float32 __x) noexcept (true);
extern _Float32 expm1f32 (_Float32 __x) noexcept (true); extern _Float32 __expm1f32 (_Float32 __x) noexcept (true);
extern _Float32 log1pf32 (_Float32 __x) noexcept (true); extern _Float32 __log1pf32 (_Float32 __x) noexcept (true);
extern _Float32 logbf32 (_Float32 __x) noexcept (true); extern _Float32 __logbf32 (_Float32 __x) noexcept (true);
extern _Float32 exp2f32 (_Float32 __x) noexcept (true); extern _Float32 __exp2f32 (_Float32 __x) noexcept (true);
extern _Float32 log2f32 (_Float32 __x) noexcept (true); extern _Float32 __log2f32 (_Float32 __x) noexcept (true);
extern _Float32 powf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __powf32 (_Float32 __x, _Float32 __y) noexcept (true);
extern _Float32 sqrtf32 (_Float32 __x) noexcept (true); extern _Float32 __sqrtf32 (_Float32 __x) noexcept (true);
extern _Float32 hypotf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __hypotf32 (_Float32 __x, _Float32 __y) noexcept (true);
extern _Float32 cbrtf32 (_Float32 __x) noexcept (true); extern _Float32 __cbrtf32 (_Float32 __x) noexcept (true);
extern _Float32 ceilf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); extern _Float32 __ceilf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__));
extern _Float32 fabsf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fabsf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__));
extern _Float32 floorf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); extern _Float32 __floorf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__));
extern _Float32 fmodf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __fmodf32 (_Float32 __x, _Float32 __y) noexcept (true);
# 198 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern _Float32 copysignf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __copysignf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__));
extern _Float32 nanf32 (const char *__tagb) noexcept (true); extern _Float32 __nanf32 (const char *__tagb) noexcept (true);
# 220 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern _Float32 j0f32 (_Float32) noexcept (true); extern _Float32 __j0f32 (_Float32) noexcept (true);
extern _Float32 j1f32 (_Float32) noexcept (true); extern _Float32 __j1f32 (_Float32) noexcept (true);
extern _Float32 jnf32 (int, _Float32) noexcept (true); extern _Float32 __jnf32 (int, _Float32) noexcept (true);
extern _Float32 y0f32 (_Float32) noexcept (true); extern _Float32 __y0f32 (_Float32) noexcept (true);
extern _Float32 y1f32 (_Float32) noexcept (true); extern _Float32 __y1f32 (_Float32) noexcept (true);
extern _Float32 ynf32 (int, _Float32) noexcept (true); extern _Float32 __ynf32 (int, _Float32) noexcept (true);
extern _Float32 erff32 (_Float32) noexcept (true); extern _Float32 __erff32 (_Float32) noexcept (true);
extern _Float32 erfcf32 (_Float32) noexcept (true); extern _Float32 __erfcf32 (_Float32) noexcept (true);
extern _Float32 lgammaf32 (_Float32) noexcept (true); extern _Float32 __lgammaf32 (_Float32) noexcept (true);
extern _Float32 tgammaf32 (_Float32) noexcept (true); extern _Float32 __tgammaf32 (_Float32) noexcept (true);
# 252 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern _Float32 lgammaf32_r (_Float32, int *__signgamp) noexcept (true); extern _Float32 __lgammaf32_r (_Float32, int *__signgamp) noexcept (true);
extern _Float32 rintf32 (_Float32 __x) noexcept (true); extern _Float32 __rintf32 (_Float32 __x) noexcept (true);
extern _Float32 nextafterf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __nextafterf32 (_Float32 __x, _Float32 __y) noexcept (true);
extern _Float32 nextdownf32 (_Float32 __x) noexcept (true); extern _Float32 __nextdownf32 (_Float32 __x) noexcept (true);
extern _Float32 nextupf32 (_Float32 __x) noexcept (true); extern _Float32 __nextupf32 (_Float32 __x) noexcept (true);
extern _Float32 remainderf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __remainderf32 (_Float32 __x, _Float32 __y) noexcept (true);
extern _Float32 scalbnf32 (_Float32 __x, int __n) noexcept (true); extern _Float32 __scalbnf32 (_Float32 __x, int __n) noexcept (true);
extern int ilogbf32 (_Float32 __x) noexcept (true); extern int __ilogbf32 (_Float32 __x) noexcept (true);
extern long int llogbf32 (_Float32 __x) noexcept (true); extern long int __llogbf32 (_Float32 __x) noexcept (true);
extern _Float32 scalblnf32 (_Float32 __x, long int __n) noexcept (true); extern _Float32 __scalblnf32 (_Float32 __x, long int __n) noexcept (true);
extern _Float32 nearbyintf32 (_Float32 __x) noexcept (true); extern _Float32 __nearbyintf32 (_Float32 __x) noexcept (true);
extern _Float32 roundf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); extern _Float32 __roundf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__));
extern _Float32 truncf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); extern _Float32 __truncf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__));
extern _Float32 remquof32 (_Float32 __x, _Float32 __y, int *__quo) noexcept (true); extern _Float32 __remquof32 (_Float32 __x, _Float32 __y, int *__quo) noexcept (true);
extern long int lrintf32 (_Float32 __x) noexcept (true); extern long int __lrintf32 (_Float32 __x) noexcept (true);
__extension__
extern long long int llrintf32 (_Float32 __x) noexcept (true); extern long long int __llrintf32 (_Float32 __x) noexcept (true);
extern long int lroundf32 (_Float32 __x) noexcept (true); extern long int __lroundf32 (_Float32 __x) noexcept (true);
__extension__
extern long long int llroundf32 (_Float32 __x) noexcept (true); extern long long int __llroundf32 (_Float32 __x) noexcept (true);
extern _Float32 fdimf32 (_Float32 __x, _Float32 __y) noexcept (true); extern _Float32 __fdimf32 (_Float32 __x, _Float32 __y) noexcept (true);
extern _Float32 fmaxf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fmaxf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__));
extern _Float32 fminf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fminf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__));
extern _Float32 fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) noexcept (true); extern _Float32 __fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) noexcept (true);
extern _Float32 roundevenf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__)); extern _Float32 __roundevenf32 (_Float32 __x) noexcept (true) __attribute__ ((__const__));
extern __intmax_t fromfpf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true);
extern __uintmax_t ufromfpf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true);
extern __intmax_t fromfpxf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true);
extern __uintmax_t ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) noexcept (true);
extern int canonicalizef32 (_Float32 *__cx, const _Float32 *__x) noexcept (true);
extern _Float32 fmaxmagf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fmaxmagf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__));
extern _Float32 fminmagf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fminmagf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__));
extern _Float32 fmaximumf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fmaximumf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__));
extern _Float32 fminimumf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fminimumf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__));
extern _Float32 fmaximum_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fmaximum_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__));
extern _Float32 fminimum_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fminimum_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__));
extern _Float32 fmaximum_magf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fmaximum_magf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__));
extern _Float32 fminimum_magf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fminimum_magf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__));
extern _Float32 fmaximum_mag_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fmaximum_mag_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__));
extern _Float32 fminimum_mag_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__)); extern _Float32 __fminimum_mag_numf32 (_Float32 __x, _Float32 __y) noexcept (true) __attribute__ ((__const__));
extern int totalorderf32 (const _Float32 *__x, const _Float32 *__y) noexcept (true)
__attribute__ ((__pure__));
extern int totalordermagf32 (const _Float32 *__x, const _Float32 *__y) noexcept (true)
__attribute__ ((__pure__));
extern _Float32 getpayloadf32 (const _Float32 *__x) noexcept (true); extern _Float32 __getpayloadf32 (const _Float32 *__x) noexcept (true);
extern int setpayloadf32 (_Float32 *__x, _Float32 __payload) noexcept (true);
extern int setpayloadsigf32 (_Float32 *__x, _Float32 __payload) noexcept (true);
# 451 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 467 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 1 3
# 53 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern _Float64 acosf64 (_Float64 __x) noexcept (true); extern _Float64 __acosf64 (_Float64 __x) noexcept (true);
extern _Float64 asinf64 (_Float64 __x) noexcept (true); extern _Float64 __asinf64 (_Float64 __x) noexcept (true);
extern _Float64 atanf64 (_Float64 __x) noexcept (true); extern _Float64 __atanf64 (_Float64 __x) noexcept (true);
extern _Float64 atan2f64 (_Float64 __y, _Float64 __x) noexcept (true); extern _Float64 __atan2f64 (_Float64 __y, _Float64 __x) noexcept (true);
extern _Float64 cosf64 (_Float64 __x) noexcept (true); extern _Float64 __cosf64 (_Float64 __x) noexcept (true);
extern _Float64 sinf64 (_Float64 __x) noexcept (true); extern _Float64 __sinf64 (_Float64 __x) noexcept (true);
extern _Float64 tanf64 (_Float64 __x) noexcept (true); extern _Float64 __tanf64 (_Float64 __x) noexcept (true);
extern _Float64 coshf64 (_Float64 __x) noexcept (true); extern _Float64 __coshf64 (_Float64 __x) noexcept (true);
extern _Float64 sinhf64 (_Float64 __x) noexcept (true); extern _Float64 __sinhf64 (_Float64 __x) noexcept (true);
extern _Float64 tanhf64 (_Float64 __x) noexcept (true); extern _Float64 __tanhf64 (_Float64 __x) noexcept (true);
extern void sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) noexcept (true); extern void __sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) noexcept (true);
extern _Float64 acoshf64 (_Float64 __x) noexcept (true); extern _Float64 __acoshf64 (_Float64 __x) noexcept (true);
extern _Float64 asinhf64 (_Float64 __x) noexcept (true); extern _Float64 __asinhf64 (_Float64 __x) noexcept (true);
extern _Float64 atanhf64 (_Float64 __x) noexcept (true); extern _Float64 __atanhf64 (_Float64 __x) noexcept (true);
extern _Float64 expf64 (_Float64 __x) noexcept (true); extern _Float64 __expf64 (_Float64 __x) noexcept (true);
extern _Float64 frexpf64 (_Float64 __x, int *__exponent) noexcept (true); extern _Float64 __frexpf64 (_Float64 __x, int *__exponent) noexcept (true);
extern _Float64 ldexpf64 (_Float64 __x, int __exponent) noexcept (true); extern _Float64 __ldexpf64 (_Float64 __x, int __exponent) noexcept (true);
extern _Float64 logf64 (_Float64 __x) noexcept (true); extern _Float64 __logf64 (_Float64 __x) noexcept (true);
extern _Float64 log10f64 (_Float64 __x) noexcept (true); extern _Float64 __log10f64 (_Float64 __x) noexcept (true);
extern _Float64 modff64 (_Float64 __x, _Float64 *__iptr) noexcept (true); extern _Float64 __modff64 (_Float64 __x, _Float64 *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2)));
extern _Float64 exp10f64 (_Float64 __x) noexcept (true); extern _Float64 __exp10f64 (_Float64 __x) noexcept (true);
extern _Float64 expm1f64 (_Float64 __x) noexcept (true); extern _Float64 __expm1f64 (_Float64 __x) noexcept (true);
extern _Float64 log1pf64 (_Float64 __x) noexcept (true); extern _Float64 __log1pf64 (_Float64 __x) noexcept (true);
extern _Float64 logbf64 (_Float64 __x) noexcept (true); extern _Float64 __logbf64 (_Float64 __x) noexcept (true);
extern _Float64 exp2f64 (_Float64 __x) noexcept (true); extern _Float64 __exp2f64 (_Float64 __x) noexcept (true);
extern _Float64 log2f64 (_Float64 __x) noexcept (true); extern _Float64 __log2f64 (_Float64 __x) noexcept (true);
extern _Float64 powf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __powf64 (_Float64 __x, _Float64 __y) noexcept (true);
extern _Float64 sqrtf64 (_Float64 __x) noexcept (true); extern _Float64 __sqrtf64 (_Float64 __x) noexcept (true);
extern _Float64 hypotf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __hypotf64 (_Float64 __x, _Float64 __y) noexcept (true);
extern _Float64 cbrtf64 (_Float64 __x) noexcept (true); extern _Float64 __cbrtf64 (_Float64 __x) noexcept (true);
extern _Float64 ceilf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); extern _Float64 __ceilf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__));
extern _Float64 fabsf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fabsf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__));
extern _Float64 floorf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); extern _Float64 __floorf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__));
extern _Float64 fmodf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __fmodf64 (_Float64 __x, _Float64 __y) noexcept (true);
# 198 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern _Float64 copysignf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __copysignf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__));
extern _Float64 nanf64 (const char *__tagb) noexcept (true); extern _Float64 __nanf64 (const char *__tagb) noexcept (true);
# 220 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern _Float64 j0f64 (_Float64) noexcept (true); extern _Float64 __j0f64 (_Float64) noexcept (true);
extern _Float64 j1f64 (_Float64) noexcept (true); extern _Float64 __j1f64 (_Float64) noexcept (true);
extern _Float64 jnf64 (int, _Float64) noexcept (true); extern _Float64 __jnf64 (int, _Float64) noexcept (true);
extern _Float64 y0f64 (_Float64) noexcept (true); extern _Float64 __y0f64 (_Float64) noexcept (true);
extern _Float64 y1f64 (_Float64) noexcept (true); extern _Float64 __y1f64 (_Float64) noexcept (true);
extern _Float64 ynf64 (int, _Float64) noexcept (true); extern _Float64 __ynf64 (int, _Float64) noexcept (true);
extern _Float64 erff64 (_Float64) noexcept (true); extern _Float64 __erff64 (_Float64) noexcept (true);
extern _Float64 erfcf64 (_Float64) noexcept (true); extern _Float64 __erfcf64 (_Float64) noexcept (true);
extern _Float64 lgammaf64 (_Float64) noexcept (true); extern _Float64 __lgammaf64 (_Float64) noexcept (true);
extern _Float64 tgammaf64 (_Float64) noexcept (true); extern _Float64 __tgammaf64 (_Float64) noexcept (true);
# 252 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern _Float64 lgammaf64_r (_Float64, int *__signgamp) noexcept (true); extern _Float64 __lgammaf64_r (_Float64, int *__signgamp) noexcept (true);
extern _Float64 rintf64 (_Float64 __x) noexcept (true); extern _Float64 __rintf64 (_Float64 __x) noexcept (true);
extern _Float64 nextafterf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __nextafterf64 (_Float64 __x, _Float64 __y) noexcept (true);
extern _Float64 nextdownf64 (_Float64 __x) noexcept (true); extern _Float64 __nextdownf64 (_Float64 __x) noexcept (true);
extern _Float64 nextupf64 (_Float64 __x) noexcept (true); extern _Float64 __nextupf64 (_Float64 __x) noexcept (true);
extern _Float64 remainderf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __remainderf64 (_Float64 __x, _Float64 __y) noexcept (true);
extern _Float64 scalbnf64 (_Float64 __x, int __n) noexcept (true); extern _Float64 __scalbnf64 (_Float64 __x, int __n) noexcept (true);
extern int ilogbf64 (_Float64 __x) noexcept (true); extern int __ilogbf64 (_Float64 __x) noexcept (true);
extern long int llogbf64 (_Float64 __x) noexcept (true); extern long int __llogbf64 (_Float64 __x) noexcept (true);
extern _Float64 scalblnf64 (_Float64 __x, long int __n) noexcept (true); extern _Float64 __scalblnf64 (_Float64 __x, long int __n) noexcept (true);
extern _Float64 nearbyintf64 (_Float64 __x) noexcept (true); extern _Float64 __nearbyintf64 (_Float64 __x) noexcept (true);
extern _Float64 roundf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); extern _Float64 __roundf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__));
extern _Float64 truncf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); extern _Float64 __truncf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__));
extern _Float64 remquof64 (_Float64 __x, _Float64 __y, int *__quo) noexcept (true); extern _Float64 __remquof64 (_Float64 __x, _Float64 __y, int *__quo) noexcept (true);
extern long int lrintf64 (_Float64 __x) noexcept (true); extern long int __lrintf64 (_Float64 __x) noexcept (true);
__extension__
extern long long int llrintf64 (_Float64 __x) noexcept (true); extern long long int __llrintf64 (_Float64 __x) noexcept (true);
extern long int lroundf64 (_Float64 __x) noexcept (true); extern long int __lroundf64 (_Float64 __x) noexcept (true);
__extension__
extern long long int llroundf64 (_Float64 __x) noexcept (true); extern long long int __llroundf64 (_Float64 __x) noexcept (true);
extern _Float64 fdimf64 (_Float64 __x, _Float64 __y) noexcept (true); extern _Float64 __fdimf64 (_Float64 __x, _Float64 __y) noexcept (true);
extern _Float64 fmaxf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fmaxf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__));
extern _Float64 fminf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fminf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__));
extern _Float64 fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) noexcept (true); extern _Float64 __fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) noexcept (true);
extern _Float64 roundevenf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__)); extern _Float64 __roundevenf64 (_Float64 __x) noexcept (true) __attribute__ ((__const__));
extern __intmax_t fromfpf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true);
extern __uintmax_t ufromfpf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true);
extern __intmax_t fromfpxf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true);
extern __uintmax_t ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) noexcept (true);
extern int canonicalizef64 (_Float64 *__cx, const _Float64 *__x) noexcept (true);
extern _Float64 fmaxmagf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fmaxmagf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__));
extern _Float64 fminmagf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fminmagf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__));
extern _Float64 fmaximumf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fmaximumf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__));
extern _Float64 fminimumf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fminimumf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__));
extern _Float64 fmaximum_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fmaximum_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__));
extern _Float64 fminimum_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fminimum_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__));
extern _Float64 fmaximum_magf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fmaximum_magf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__));
extern _Float64 fminimum_magf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fminimum_magf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__));
extern _Float64 fmaximum_mag_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fmaximum_mag_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__));
extern _Float64 fminimum_mag_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__)); extern _Float64 __fminimum_mag_numf64 (_Float64 __x, _Float64 __y) noexcept (true) __attribute__ ((__const__));
extern int totalorderf64 (const _Float64 *__x, const _Float64 *__y) noexcept (true)
__attribute__ ((__pure__));
extern int totalordermagf64 (const _Float64 *__x, const _Float64 *__y) noexcept (true)
__attribute__ ((__pure__));
extern _Float64 getpayloadf64 (const _Float64 *__x) noexcept (true); extern _Float64 __getpayloadf64 (const _Float64 *__x) noexcept (true);
extern int setpayloadf64 (_Float64 *__x, _Float64 __payload) noexcept (true);
extern int setpayloadsigf64 (_Float64 *__x, _Float64 __payload) noexcept (true);
# 468 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 484 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 1 3
# 53 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern _Float128 acosf128 (_Float128 __x) noexcept (true); extern _Float128 __acosf128 (_Float128 __x) noexcept (true);
extern _Float128 asinf128 (_Float128 __x) noexcept (true); extern _Float128 __asinf128 (_Float128 __x) noexcept (true);
extern _Float128 atanf128 (_Float128 __x) noexcept (true); extern _Float128 __atanf128 (_Float128 __x) noexcept (true);
extern _Float128 atan2f128 (_Float128 __y, _Float128 __x) noexcept (true); extern _Float128 __atan2f128 (_Float128 __y, _Float128 __x) noexcept (true);
extern _Float128 cosf128 (_Float128 __x) noexcept (true); extern _Float128 __cosf128 (_Float128 __x) noexcept (true);
extern _Float128 sinf128 (_Float128 __x) noexcept (true); extern _Float128 __sinf128 (_Float128 __x) noexcept (true);
extern _Float128 tanf128 (_Float128 __x) noexcept (true); extern _Float128 __tanf128 (_Float128 __x) noexcept (true);
extern _Float128 coshf128 (_Float128 __x) noexcept (true); extern _Float128 __coshf128 (_Float128 __x) noexcept (true);
extern _Float128 sinhf128 (_Float128 __x) noexcept (true); extern _Float128 __sinhf128 (_Float128 __x) noexcept (true);
extern _Float128 tanhf128 (_Float128 __x) noexcept (true); extern _Float128 __tanhf128 (_Float128 __x) noexcept (true);
extern void sincosf128 (_Float128 __x, _Float128 *__sinx, _Float128 *__cosx) noexcept (true); extern void __sincosf128 (_Float128 __x, _Float128 *__sinx, _Float128 *__cosx) noexcept (true);
extern _Float128 acoshf128 (_Float128 __x) noexcept (true); extern _Float128 __acoshf128 (_Float128 __x) noexcept (true);
extern _Float128 asinhf128 (_Float128 __x) noexcept (true); extern _Float128 __asinhf128 (_Float128 __x) noexcept (true);
extern _Float128 atanhf128 (_Float128 __x) noexcept (true); extern _Float128 __atanhf128 (_Float128 __x) noexcept (true);
extern _Float128 expf128 (_Float128 __x) noexcept (true); extern _Float128 __expf128 (_Float128 __x) noexcept (true);
extern _Float128 frexpf128 (_Float128 __x, int *__exponent) noexcept (true); extern _Float128 __frexpf128 (_Float128 __x, int *__exponent) noexcept (true);
extern _Float128 ldexpf128 (_Float128 __x, int __exponent) noexcept (true); extern _Float128 __ldexpf128 (_Float128 __x, int __exponent) noexcept (true);
extern _Float128 logf128 (_Float128 __x) noexcept (true); extern _Float128 __logf128 (_Float128 __x) noexcept (true);
extern _Float128 log10f128 (_Float128 __x) noexcept (true); extern _Float128 __log10f128 (_Float128 __x) noexcept (true);
extern _Float128 modff128 (_Float128 __x, _Float128 *__iptr) noexcept (true); extern _Float128 __modff128 (_Float128 __x, _Float128 *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2)));
extern _Float128 exp10f128 (_Float128 __x) noexcept (true); extern _Float128 __exp10f128 (_Float128 __x) noexcept (true);
extern _Float128 expm1f128 (_Float128 __x) noexcept (true); extern _Float128 __expm1f128 (_Float128 __x) noexcept (true);
extern _Float128 log1pf128 (_Float128 __x) noexcept (true); extern _Float128 __log1pf128 (_Float128 __x) noexcept (true);
extern _Float128 logbf128 (_Float128 __x) noexcept (true); extern _Float128 __logbf128 (_Float128 __x) noexcept (true);
extern _Float128 exp2f128 (_Float128 __x) noexcept (true); extern _Float128 __exp2f128 (_Float128 __x) noexcept (true);
extern _Float128 log2f128 (_Float128 __x) noexcept (true); extern _Float128 __log2f128 (_Float128 __x) noexcept (true);
extern _Float128 powf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __powf128 (_Float128 __x, _Float128 __y) noexcept (true);
extern _Float128 sqrtf128 (_Float128 __x) noexcept (true); extern _Float128 __sqrtf128 (_Float128 __x) noexcept (true);
extern _Float128 hypotf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __hypotf128 (_Float128 __x, _Float128 __y) noexcept (true);
extern _Float128 cbrtf128 (_Float128 __x) noexcept (true); extern _Float128 __cbrtf128 (_Float128 __x) noexcept (true);
extern _Float128 ceilf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); extern _Float128 __ceilf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__));
extern _Float128 fabsf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fabsf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__));
extern _Float128 floorf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); extern _Float128 __floorf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__));
extern _Float128 fmodf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __fmodf128 (_Float128 __x, _Float128 __y) noexcept (true);
# 198 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern _Float128 copysignf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __copysignf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__));
extern _Float128 nanf128 (const char *__tagb) noexcept (true); extern _Float128 __nanf128 (const char *__tagb) noexcept (true);
# 220 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern _Float128 j0f128 (_Float128) noexcept (true); extern _Float128 __j0f128 (_Float128) noexcept (true);
extern _Float128 j1f128 (_Float128) noexcept (true); extern _Float128 __j1f128 (_Float128) noexcept (true);
extern _Float128 jnf128 (int, _Float128) noexcept (true); extern _Float128 __jnf128 (int, _Float128) noexcept (true);
extern _Float128 y0f128 (_Float128) noexcept (true); extern _Float128 __y0f128 (_Float128) noexcept (true);
extern _Float128 y1f128 (_Float128) noexcept (true); extern _Float128 __y1f128 (_Float128) noexcept (true);
extern _Float128 ynf128 (int, _Float128) noexcept (true); extern _Float128 __ynf128 (int, _Float128) noexcept (true);
extern _Float128 erff128 (_Float128) noexcept (true); extern _Float128 __erff128 (_Float128) noexcept (true);
extern _Float128 erfcf128 (_Float128) noexcept (true); extern _Float128 __erfcf128 (_Float128) noexcept (true);
extern _Float128 lgammaf128 (_Float128) noexcept (true); extern _Float128 __lgammaf128 (_Float128) noexcept (true);
extern _Float128 tgammaf128 (_Float128) noexcept (true); extern _Float128 __tgammaf128 (_Float128) noexcept (true);
# 252 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern _Float128 lgammaf128_r (_Float128, int *__signgamp) noexcept (true); extern _Float128 __lgammaf128_r (_Float128, int *__signgamp) noexcept (true);
extern _Float128 rintf128 (_Float128 __x) noexcept (true); extern _Float128 __rintf128 (_Float128 __x) noexcept (true);
extern _Float128 nextafterf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __nextafterf128 (_Float128 __x, _Float128 __y) noexcept (true);
extern _Float128 nextdownf128 (_Float128 __x) noexcept (true); extern _Float128 __nextdownf128 (_Float128 __x) noexcept (true);
extern _Float128 nextupf128 (_Float128 __x) noexcept (true); extern _Float128 __nextupf128 (_Float128 __x) noexcept (true);
extern _Float128 remainderf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __remainderf128 (_Float128 __x, _Float128 __y) noexcept (true);
extern _Float128 scalbnf128 (_Float128 __x, int __n) noexcept (true); extern _Float128 __scalbnf128 (_Float128 __x, int __n) noexcept (true);
extern int ilogbf128 (_Float128 __x) noexcept (true); extern int __ilogbf128 (_Float128 __x) noexcept (true);
extern long int llogbf128 (_Float128 __x) noexcept (true); extern long int __llogbf128 (_Float128 __x) noexcept (true);
extern _Float128 scalblnf128 (_Float128 __x, long int __n) noexcept (true); extern _Float128 __scalblnf128 (_Float128 __x, long int __n) noexcept (true);
extern _Float128 nearbyintf128 (_Float128 __x) noexcept (true); extern _Float128 __nearbyintf128 (_Float128 __x) noexcept (true);
extern _Float128 roundf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); extern _Float128 __roundf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__));
extern _Float128 truncf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); extern _Float128 __truncf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__));
extern _Float128 remquof128 (_Float128 __x, _Float128 __y, int *__quo) noexcept (true); extern _Float128 __remquof128 (_Float128 __x, _Float128 __y, int *__quo) noexcept (true);
extern long int lrintf128 (_Float128 __x) noexcept (true); extern long int __lrintf128 (_Float128 __x) noexcept (true);
__extension__
extern long long int llrintf128 (_Float128 __x) noexcept (true); extern long long int __llrintf128 (_Float128 __x) noexcept (true);
extern long int lroundf128 (_Float128 __x) noexcept (true); extern long int __lroundf128 (_Float128 __x) noexcept (true);
__extension__
extern long long int llroundf128 (_Float128 __x) noexcept (true); extern long long int __llroundf128 (_Float128 __x) noexcept (true);
extern _Float128 fdimf128 (_Float128 __x, _Float128 __y) noexcept (true); extern _Float128 __fdimf128 (_Float128 __x, _Float128 __y) noexcept (true);
extern _Float128 fmaxf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fmaxf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__));
extern _Float128 fminf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fminf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__));
extern _Float128 fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true); extern _Float128 __fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true);
extern _Float128 roundevenf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__)); extern _Float128 __roundevenf128 (_Float128 __x) noexcept (true) __attribute__ ((__const__));
extern __intmax_t fromfpf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true);
extern __uintmax_t ufromfpf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true);
extern __intmax_t fromfpxf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true);
extern __uintmax_t ufromfpxf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf128 (_Float128 __x, int __round, unsigned int __width) noexcept (true);
extern int canonicalizef128 (_Float128 *__cx, const _Float128 *__x) noexcept (true);
extern _Float128 fmaxmagf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fmaxmagf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__));
extern _Float128 fminmagf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fminmagf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__));
extern _Float128 fmaximumf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fmaximumf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__));
extern _Float128 fminimumf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fminimumf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__));
extern _Float128 fmaximum_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fmaximum_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__));
extern _Float128 fminimum_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fminimum_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__));
extern _Float128 fmaximum_magf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fmaximum_magf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__));
extern _Float128 fminimum_magf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fminimum_magf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__));
extern _Float128 fmaximum_mag_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fmaximum_mag_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__));
extern _Float128 fminimum_mag_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__)); extern _Float128 __fminimum_mag_numf128 (_Float128 __x, _Float128 __y) noexcept (true) __attribute__ ((__const__));
extern int totalorderf128 (const _Float128 *__x, const _Float128 *__y) noexcept (true)
__attribute__ ((__pure__));
extern int totalordermagf128 (const _Float128 *__x, const _Float128 *__y) noexcept (true)
__attribute__ ((__pure__));
extern _Float128 getpayloadf128 (const _Float128 *__x) noexcept (true); extern _Float128 __getpayloadf128 (const _Float128 *__x) noexcept (true);
extern int setpayloadf128 (_Float128 *__x, _Float128 __payload) noexcept (true);
extern int setpayloadsigf128 (_Float128 *__x, _Float128 __payload) noexcept (true);
# 485 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 501 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 1 3
# 53 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern _Float32x acosf32x (_Float32x __x) noexcept (true); extern _Float32x __acosf32x (_Float32x __x) noexcept (true);
extern _Float32x asinf32x (_Float32x __x) noexcept (true); extern _Float32x __asinf32x (_Float32x __x) noexcept (true);
extern _Float32x atanf32x (_Float32x __x) noexcept (true); extern _Float32x __atanf32x (_Float32x __x) noexcept (true);
extern _Float32x atan2f32x (_Float32x __y, _Float32x __x) noexcept (true); extern _Float32x __atan2f32x (_Float32x __y, _Float32x __x) noexcept (true);
extern _Float32x cosf32x (_Float32x __x) noexcept (true); extern _Float32x __cosf32x (_Float32x __x) noexcept (true);
extern _Float32x sinf32x (_Float32x __x) noexcept (true); extern _Float32x __sinf32x (_Float32x __x) noexcept (true);
extern _Float32x tanf32x (_Float32x __x) noexcept (true); extern _Float32x __tanf32x (_Float32x __x) noexcept (true);
extern _Float32x coshf32x (_Float32x __x) noexcept (true); extern _Float32x __coshf32x (_Float32x __x) noexcept (true);
extern _Float32x sinhf32x (_Float32x __x) noexcept (true); extern _Float32x __sinhf32x (_Float32x __x) noexcept (true);
extern _Float32x tanhf32x (_Float32x __x) noexcept (true); extern _Float32x __tanhf32x (_Float32x __x) noexcept (true);
extern void sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) noexcept (true); extern void __sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) noexcept (true);
extern _Float32x acoshf32x (_Float32x __x) noexcept (true); extern _Float32x __acoshf32x (_Float32x __x) noexcept (true);
extern _Float32x asinhf32x (_Float32x __x) noexcept (true); extern _Float32x __asinhf32x (_Float32x __x) noexcept (true);
extern _Float32x atanhf32x (_Float32x __x) noexcept (true); extern _Float32x __atanhf32x (_Float32x __x) noexcept (true);
extern _Float32x expf32x (_Float32x __x) noexcept (true); extern _Float32x __expf32x (_Float32x __x) noexcept (true);
extern _Float32x frexpf32x (_Float32x __x, int *__exponent) noexcept (true); extern _Float32x __frexpf32x (_Float32x __x, int *__exponent) noexcept (true);
extern _Float32x ldexpf32x (_Float32x __x, int __exponent) noexcept (true); extern _Float32x __ldexpf32x (_Float32x __x, int __exponent) noexcept (true);
extern _Float32x logf32x (_Float32x __x) noexcept (true); extern _Float32x __logf32x (_Float32x __x) noexcept (true);
extern _Float32x log10f32x (_Float32x __x) noexcept (true); extern _Float32x __log10f32x (_Float32x __x) noexcept (true);
extern _Float32x modff32x (_Float32x __x, _Float32x *__iptr) noexcept (true); extern _Float32x __modff32x (_Float32x __x, _Float32x *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2)));
extern _Float32x exp10f32x (_Float32x __x) noexcept (true); extern _Float32x __exp10f32x (_Float32x __x) noexcept (true);
extern _Float32x expm1f32x (_Float32x __x) noexcept (true); extern _Float32x __expm1f32x (_Float32x __x) noexcept (true);
extern _Float32x log1pf32x (_Float32x __x) noexcept (true); extern _Float32x __log1pf32x (_Float32x __x) noexcept (true);
extern _Float32x logbf32x (_Float32x __x) noexcept (true); extern _Float32x __logbf32x (_Float32x __x) noexcept (true);
extern _Float32x exp2f32x (_Float32x __x) noexcept (true); extern _Float32x __exp2f32x (_Float32x __x) noexcept (true);
extern _Float32x log2f32x (_Float32x __x) noexcept (true); extern _Float32x __log2f32x (_Float32x __x) noexcept (true);
extern _Float32x powf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __powf32x (_Float32x __x, _Float32x __y) noexcept (true);
extern _Float32x sqrtf32x (_Float32x __x) noexcept (true); extern _Float32x __sqrtf32x (_Float32x __x) noexcept (true);
extern _Float32x hypotf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __hypotf32x (_Float32x __x, _Float32x __y) noexcept (true);
extern _Float32x cbrtf32x (_Float32x __x) noexcept (true); extern _Float32x __cbrtf32x (_Float32x __x) noexcept (true);
extern _Float32x ceilf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); extern _Float32x __ceilf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__));
extern _Float32x fabsf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fabsf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__));
extern _Float32x floorf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); extern _Float32x __floorf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__));
extern _Float32x fmodf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __fmodf32x (_Float32x __x, _Float32x __y) noexcept (true);
# 198 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern _Float32x copysignf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __copysignf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__));
extern _Float32x nanf32x (const char *__tagb) noexcept (true); extern _Float32x __nanf32x (const char *__tagb) noexcept (true);
# 220 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern _Float32x j0f32x (_Float32x) noexcept (true); extern _Float32x __j0f32x (_Float32x) noexcept (true);
extern _Float32x j1f32x (_Float32x) noexcept (true); extern _Float32x __j1f32x (_Float32x) noexcept (true);
extern _Float32x jnf32x (int, _Float32x) noexcept (true); extern _Float32x __jnf32x (int, _Float32x) noexcept (true);
extern _Float32x y0f32x (_Float32x) noexcept (true); extern _Float32x __y0f32x (_Float32x) noexcept (true);
extern _Float32x y1f32x (_Float32x) noexcept (true); extern _Float32x __y1f32x (_Float32x) noexcept (true);
extern _Float32x ynf32x (int, _Float32x) noexcept (true); extern _Float32x __ynf32x (int, _Float32x) noexcept (true);
extern _Float32x erff32x (_Float32x) noexcept (true); extern _Float32x __erff32x (_Float32x) noexcept (true);
extern _Float32x erfcf32x (_Float32x) noexcept (true); extern _Float32x __erfcf32x (_Float32x) noexcept (true);
extern _Float32x lgammaf32x (_Float32x) noexcept (true); extern _Float32x __lgammaf32x (_Float32x) noexcept (true);
extern _Float32x tgammaf32x (_Float32x) noexcept (true); extern _Float32x __tgammaf32x (_Float32x) noexcept (true);
# 252 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern _Float32x lgammaf32x_r (_Float32x, int *__signgamp) noexcept (true); extern _Float32x __lgammaf32x_r (_Float32x, int *__signgamp) noexcept (true);
extern _Float32x rintf32x (_Float32x __x) noexcept (true); extern _Float32x __rintf32x (_Float32x __x) noexcept (true);
extern _Float32x nextafterf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __nextafterf32x (_Float32x __x, _Float32x __y) noexcept (true);
extern _Float32x nextdownf32x (_Float32x __x) noexcept (true); extern _Float32x __nextdownf32x (_Float32x __x) noexcept (true);
extern _Float32x nextupf32x (_Float32x __x) noexcept (true); extern _Float32x __nextupf32x (_Float32x __x) noexcept (true);
extern _Float32x remainderf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __remainderf32x (_Float32x __x, _Float32x __y) noexcept (true);
extern _Float32x scalbnf32x (_Float32x __x, int __n) noexcept (true); extern _Float32x __scalbnf32x (_Float32x __x, int __n) noexcept (true);
extern int ilogbf32x (_Float32x __x) noexcept (true); extern int __ilogbf32x (_Float32x __x) noexcept (true);
extern long int llogbf32x (_Float32x __x) noexcept (true); extern long int __llogbf32x (_Float32x __x) noexcept (true);
extern _Float32x scalblnf32x (_Float32x __x, long int __n) noexcept (true); extern _Float32x __scalblnf32x (_Float32x __x, long int __n) noexcept (true);
extern _Float32x nearbyintf32x (_Float32x __x) noexcept (true); extern _Float32x __nearbyintf32x (_Float32x __x) noexcept (true);
extern _Float32x roundf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); extern _Float32x __roundf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__));
extern _Float32x truncf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); extern _Float32x __truncf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__));
extern _Float32x remquof32x (_Float32x __x, _Float32x __y, int *__quo) noexcept (true); extern _Float32x __remquof32x (_Float32x __x, _Float32x __y, int *__quo) noexcept (true);
extern long int lrintf32x (_Float32x __x) noexcept (true); extern long int __lrintf32x (_Float32x __x) noexcept (true);
__extension__
extern long long int llrintf32x (_Float32x __x) noexcept (true); extern long long int __llrintf32x (_Float32x __x) noexcept (true);
extern long int lroundf32x (_Float32x __x) noexcept (true); extern long int __lroundf32x (_Float32x __x) noexcept (true);
__extension__
extern long long int llroundf32x (_Float32x __x) noexcept (true); extern long long int __llroundf32x (_Float32x __x) noexcept (true);
extern _Float32x fdimf32x (_Float32x __x, _Float32x __y) noexcept (true); extern _Float32x __fdimf32x (_Float32x __x, _Float32x __y) noexcept (true);
extern _Float32x fmaxf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fmaxf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__));
extern _Float32x fminf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fminf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__));
extern _Float32x fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) noexcept (true); extern _Float32x __fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) noexcept (true);
extern _Float32x roundevenf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__)); extern _Float32x __roundevenf32x (_Float32x __x) noexcept (true) __attribute__ ((__const__));
extern __intmax_t fromfpf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true);
extern __uintmax_t ufromfpf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true);
extern __intmax_t fromfpxf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true);
extern __uintmax_t ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) noexcept (true);
extern int canonicalizef32x (_Float32x *__cx, const _Float32x *__x) noexcept (true);
extern _Float32x fmaxmagf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fmaxmagf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__));
extern _Float32x fminmagf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fminmagf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__));
extern _Float32x fmaximumf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fmaximumf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__));
extern _Float32x fminimumf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fminimumf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__));
extern _Float32x fmaximum_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fmaximum_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__));
extern _Float32x fminimum_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fminimum_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__));
extern _Float32x fmaximum_magf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fmaximum_magf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__));
extern _Float32x fminimum_magf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fminimum_magf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__));
extern _Float32x fmaximum_mag_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fmaximum_mag_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__));
extern _Float32x fminimum_mag_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__)); extern _Float32x __fminimum_mag_numf32x (_Float32x __x, _Float32x __y) noexcept (true) __attribute__ ((__const__));
extern int totalorderf32x (const _Float32x *__x, const _Float32x *__y) noexcept (true)
__attribute__ ((__pure__));
extern int totalordermagf32x (const _Float32x *__x, const _Float32x *__y) noexcept (true)
__attribute__ ((__pure__));
extern _Float32x getpayloadf32x (const _Float32x *__x) noexcept (true); extern _Float32x __getpayloadf32x (const _Float32x *__x) noexcept (true);
extern int setpayloadf32x (_Float32x *__x, _Float32x __payload) noexcept (true);
extern int setpayloadsigf32x (_Float32x *__x, _Float32x __payload) noexcept (true);
# 502 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 518 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 1 3
# 53 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern _Float64x acosf64x (_Float64x __x) noexcept (true); extern _Float64x __acosf64x (_Float64x __x) noexcept (true);
extern _Float64x asinf64x (_Float64x __x) noexcept (true); extern _Float64x __asinf64x (_Float64x __x) noexcept (true);
extern _Float64x atanf64x (_Float64x __x) noexcept (true); extern _Float64x __atanf64x (_Float64x __x) noexcept (true);
extern _Float64x atan2f64x (_Float64x __y, _Float64x __x) noexcept (true); extern _Float64x __atan2f64x (_Float64x __y, _Float64x __x) noexcept (true);
extern _Float64x cosf64x (_Float64x __x) noexcept (true); extern _Float64x __cosf64x (_Float64x __x) noexcept (true);
extern _Float64x sinf64x (_Float64x __x) noexcept (true); extern _Float64x __sinf64x (_Float64x __x) noexcept (true);
extern _Float64x tanf64x (_Float64x __x) noexcept (true); extern _Float64x __tanf64x (_Float64x __x) noexcept (true);
extern _Float64x coshf64x (_Float64x __x) noexcept (true); extern _Float64x __coshf64x (_Float64x __x) noexcept (true);
extern _Float64x sinhf64x (_Float64x __x) noexcept (true); extern _Float64x __sinhf64x (_Float64x __x) noexcept (true);
extern _Float64x tanhf64x (_Float64x __x) noexcept (true); extern _Float64x __tanhf64x (_Float64x __x) noexcept (true);
extern void sincosf64x (_Float64x __x, _Float64x *__sinx, _Float64x *__cosx) noexcept (true); extern void __sincosf64x (_Float64x __x, _Float64x *__sinx, _Float64x *__cosx) noexcept (true);
extern _Float64x acoshf64x (_Float64x __x) noexcept (true); extern _Float64x __acoshf64x (_Float64x __x) noexcept (true);
extern _Float64x asinhf64x (_Float64x __x) noexcept (true); extern _Float64x __asinhf64x (_Float64x __x) noexcept (true);
extern _Float64x atanhf64x (_Float64x __x) noexcept (true); extern _Float64x __atanhf64x (_Float64x __x) noexcept (true);
extern _Float64x expf64x (_Float64x __x) noexcept (true); extern _Float64x __expf64x (_Float64x __x) noexcept (true);
extern _Float64x frexpf64x (_Float64x __x, int *__exponent) noexcept (true); extern _Float64x __frexpf64x (_Float64x __x, int *__exponent) noexcept (true);
extern _Float64x ldexpf64x (_Float64x __x, int __exponent) noexcept (true); extern _Float64x __ldexpf64x (_Float64x __x, int __exponent) noexcept (true);
extern _Float64x logf64x (_Float64x __x) noexcept (true); extern _Float64x __logf64x (_Float64x __x) noexcept (true);
extern _Float64x log10f64x (_Float64x __x) noexcept (true); extern _Float64x __log10f64x (_Float64x __x) noexcept (true);
extern _Float64x modff64x (_Float64x __x, _Float64x *__iptr) noexcept (true); extern _Float64x __modff64x (_Float64x __x, _Float64x *__iptr) noexcept (true) __attribute__ ((__nonnull__ (2)));
extern _Float64x exp10f64x (_Float64x __x) noexcept (true); extern _Float64x __exp10f64x (_Float64x __x) noexcept (true);
extern _Float64x expm1f64x (_Float64x __x) noexcept (true); extern _Float64x __expm1f64x (_Float64x __x) noexcept (true);
extern _Float64x log1pf64x (_Float64x __x) noexcept (true); extern _Float64x __log1pf64x (_Float64x __x) noexcept (true);
extern _Float64x logbf64x (_Float64x __x) noexcept (true); extern _Float64x __logbf64x (_Float64x __x) noexcept (true);
extern _Float64x exp2f64x (_Float64x __x) noexcept (true); extern _Float64x __exp2f64x (_Float64x __x) noexcept (true);
extern _Float64x log2f64x (_Float64x __x) noexcept (true); extern _Float64x __log2f64x (_Float64x __x) noexcept (true);
extern _Float64x powf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __powf64x (_Float64x __x, _Float64x __y) noexcept (true);
extern _Float64x sqrtf64x (_Float64x __x) noexcept (true); extern _Float64x __sqrtf64x (_Float64x __x) noexcept (true);
extern _Float64x hypotf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __hypotf64x (_Float64x __x, _Float64x __y) noexcept (true);
extern _Float64x cbrtf64x (_Float64x __x) noexcept (true); extern _Float64x __cbrtf64x (_Float64x __x) noexcept (true);
extern _Float64x ceilf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); extern _Float64x __ceilf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__));
extern _Float64x fabsf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fabsf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__));
extern _Float64x floorf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); extern _Float64x __floorf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__));
extern _Float64x fmodf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __fmodf64x (_Float64x __x, _Float64x __y) noexcept (true);
# 198 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern _Float64x copysignf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __copysignf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__));
extern _Float64x nanf64x (const char *__tagb) noexcept (true); extern _Float64x __nanf64x (const char *__tagb) noexcept (true);
# 220 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern _Float64x j0f64x (_Float64x) noexcept (true); extern _Float64x __j0f64x (_Float64x) noexcept (true);
extern _Float64x j1f64x (_Float64x) noexcept (true); extern _Float64x __j1f64x (_Float64x) noexcept (true);
extern _Float64x jnf64x (int, _Float64x) noexcept (true); extern _Float64x __jnf64x (int, _Float64x) noexcept (true);
extern _Float64x y0f64x (_Float64x) noexcept (true); extern _Float64x __y0f64x (_Float64x) noexcept (true);
extern _Float64x y1f64x (_Float64x) noexcept (true); extern _Float64x __y1f64x (_Float64x) noexcept (true);
extern _Float64x ynf64x (int, _Float64x) noexcept (true); extern _Float64x __ynf64x (int, _Float64x) noexcept (true);
extern _Float64x erff64x (_Float64x) noexcept (true); extern _Float64x __erff64x (_Float64x) noexcept (true);
extern _Float64x erfcf64x (_Float64x) noexcept (true); extern _Float64x __erfcf64x (_Float64x) noexcept (true);
extern _Float64x lgammaf64x (_Float64x) noexcept (true); extern _Float64x __lgammaf64x (_Float64x) noexcept (true);
extern _Float64x tgammaf64x (_Float64x) noexcept (true); extern _Float64x __tgammaf64x (_Float64x) noexcept (true);
# 252 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls.h" 3
extern _Float64x lgammaf64x_r (_Float64x, int *__signgamp) noexcept (true); extern _Float64x __lgammaf64x_r (_Float64x, int *__signgamp) noexcept (true);
extern _Float64x rintf64x (_Float64x __x) noexcept (true); extern _Float64x __rintf64x (_Float64x __x) noexcept (true);
extern _Float64x nextafterf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __nextafterf64x (_Float64x __x, _Float64x __y) noexcept (true);
extern _Float64x nextdownf64x (_Float64x __x) noexcept (true); extern _Float64x __nextdownf64x (_Float64x __x) noexcept (true);
extern _Float64x nextupf64x (_Float64x __x) noexcept (true); extern _Float64x __nextupf64x (_Float64x __x) noexcept (true);
extern _Float64x remainderf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __remainderf64x (_Float64x __x, _Float64x __y) noexcept (true);
extern _Float64x scalbnf64x (_Float64x __x, int __n) noexcept (true); extern _Float64x __scalbnf64x (_Float64x __x, int __n) noexcept (true);
extern int ilogbf64x (_Float64x __x) noexcept (true); extern int __ilogbf64x (_Float64x __x) noexcept (true);
extern long int llogbf64x (_Float64x __x) noexcept (true); extern long int __llogbf64x (_Float64x __x) noexcept (true);
extern _Float64x scalblnf64x (_Float64x __x, long int __n) noexcept (true); extern _Float64x __scalblnf64x (_Float64x __x, long int __n) noexcept (true);
extern _Float64x nearbyintf64x (_Float64x __x) noexcept (true); extern _Float64x __nearbyintf64x (_Float64x __x) noexcept (true);
extern _Float64x roundf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); extern _Float64x __roundf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__));
extern _Float64x truncf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); extern _Float64x __truncf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__));
extern _Float64x remquof64x (_Float64x __x, _Float64x __y, int *__quo) noexcept (true); extern _Float64x __remquof64x (_Float64x __x, _Float64x __y, int *__quo) noexcept (true);
extern long int lrintf64x (_Float64x __x) noexcept (true); extern long int __lrintf64x (_Float64x __x) noexcept (true);
__extension__
extern long long int llrintf64x (_Float64x __x) noexcept (true); extern long long int __llrintf64x (_Float64x __x) noexcept (true);
extern long int lroundf64x (_Float64x __x) noexcept (true); extern long int __lroundf64x (_Float64x __x) noexcept (true);
__extension__
extern long long int llroundf64x (_Float64x __x) noexcept (true); extern long long int __llroundf64x (_Float64x __x) noexcept (true);
extern _Float64x fdimf64x (_Float64x __x, _Float64x __y) noexcept (true); extern _Float64x __fdimf64x (_Float64x __x, _Float64x __y) noexcept (true);
extern _Float64x fmaxf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fmaxf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__));
extern _Float64x fminf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fminf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__));
extern _Float64x fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true); extern _Float64x __fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true);
extern _Float64x roundevenf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__)); extern _Float64x __roundevenf64x (_Float64x __x) noexcept (true) __attribute__ ((__const__));
extern __intmax_t fromfpf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true);
extern __uintmax_t ufromfpf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true);
extern __intmax_t fromfpxf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true); extern __intmax_t __fromfpxf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true);
extern __uintmax_t ufromfpxf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true); extern __uintmax_t __ufromfpxf64x (_Float64x __x, int __round, unsigned int __width) noexcept (true);
extern int canonicalizef64x (_Float64x *__cx, const _Float64x *__x) noexcept (true);
extern _Float64x fmaxmagf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fmaxmagf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__));
extern _Float64x fminmagf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fminmagf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__));
extern _Float64x fmaximumf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fmaximumf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__));
extern _Float64x fminimumf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fminimumf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__));
extern _Float64x fmaximum_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fmaximum_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__));
extern _Float64x fminimum_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fminimum_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__));
extern _Float64x fmaximum_magf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fmaximum_magf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__));
extern _Float64x fminimum_magf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fminimum_magf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__));
extern _Float64x fmaximum_mag_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fmaximum_mag_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__));
extern _Float64x fminimum_mag_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__)); extern _Float64x __fminimum_mag_numf64x (_Float64x __x, _Float64x __y) noexcept (true) __attribute__ ((__const__));
extern int totalorderf64x (const _Float64x *__x, const _Float64x *__y) noexcept (true)
__attribute__ ((__pure__));
extern int totalordermagf64x (const _Float64x *__x, const _Float64x *__y) noexcept (true)
__attribute__ ((__pure__));
extern _Float64x getpayloadf64x (const _Float64x *__x) noexcept (true); extern _Float64x __getpayloadf64x (const _Float64x *__x) noexcept (true);
extern int setpayloadf64x (_Float64x *__x, _Float64x __payload) noexcept (true);
extern int setpayloadsigf64x (_Float64x *__x, _Float64x __payload) noexcept (true);
# 519 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 566 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3
# 24 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 3
extern float fadd (double __x, double __y) noexcept (true);
extern float fdiv (double __x, double __y) noexcept (true);
extern float ffma (double __x, double __y, double __z) noexcept (true);
extern float fmul (double __x, double __y) noexcept (true);
extern float fsqrt (double __x) noexcept (true);
extern float fsub (double __x, double __y) noexcept (true);
# 567 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 587 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3
# 24 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 3
extern float faddl (long double __x, long double __y) noexcept (true);
extern float fdivl (long double __x, long double __y) noexcept (true);
extern float ffmal (long double __x, long double __y, long double __z) noexcept (true);
extern float fmull (long double __x, long double __y) noexcept (true);
extern float fsqrtl (long double __x) noexcept (true);
extern float fsubl (long double __x, long double __y) noexcept (true);
# 588 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 616 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3
# 24 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 3
extern double daddl (long double __x, long double __y) noexcept (true);
extern double ddivl (long double __x, long double __y) noexcept (true);
extern double dfmal (long double __x, long double __y, long double __z) noexcept (true);
extern double dmull (long double __x, long double __y) noexcept (true);
extern double dsqrtl (long double __x) noexcept (true);
extern double dsubl (long double __x, long double __y) noexcept (true);
# 617 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 697 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3
# 24 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 3
extern _Float32 f32addf32x (_Float32x __x, _Float32x __y) noexcept (true);
extern _Float32 f32divf32x (_Float32x __x, _Float32x __y) noexcept (true);
extern _Float32 f32fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) noexcept (true);
extern _Float32 f32mulf32x (_Float32x __x, _Float32x __y) noexcept (true);
extern _Float32 f32sqrtf32x (_Float32x __x) noexcept (true);
extern _Float32 f32subf32x (_Float32x __x, _Float32x __y) noexcept (true);
# 698 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 707 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3
# 24 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 3
extern _Float32 f32addf64 (_Float64 __x, _Float64 __y) noexcept (true);
extern _Float32 f32divf64 (_Float64 __x, _Float64 __y) noexcept (true);
extern _Float32 f32fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) noexcept (true);
extern _Float32 f32mulf64 (_Float64 __x, _Float64 __y) noexcept (true);
extern _Float32 f32sqrtf64 (_Float64 __x) noexcept (true);
extern _Float32 f32subf64 (_Float64 __x, _Float64 __y) noexcept (true);
# 708 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 717 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3
# 24 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 3
extern _Float32 f32addf64x (_Float64x __x, _Float64x __y) noexcept (true);
extern _Float32 f32divf64x (_Float64x __x, _Float64x __y) noexcept (true);
extern _Float32 f32fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true);
extern _Float32 f32mulf64x (_Float64x __x, _Float64x __y) noexcept (true);
extern _Float32 f32sqrtf64x (_Float64x __x) noexcept (true);
extern _Float32 f32subf64x (_Float64x __x, _Float64x __y) noexcept (true);
# 718 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 727 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3
# 24 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 3
extern _Float32 f32addf128 (_Float128 __x, _Float128 __y) noexcept (true);
extern _Float32 f32divf128 (_Float128 __x, _Float128 __y) noexcept (true);
extern _Float32 f32fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true);
extern _Float32 f32mulf128 (_Float128 __x, _Float128 __y) noexcept (true);
extern _Float32 f32sqrtf128 (_Float128 __x) noexcept (true);
extern _Float32 f32subf128 (_Float128 __x, _Float128 __y) noexcept (true);
# 728 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 747 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3
# 24 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 3
extern _Float32x f32xaddf64 (_Float64 __x, _Float64 __y) noexcept (true);
extern _Float32x f32xdivf64 (_Float64 __x, _Float64 __y) noexcept (true);
extern _Float32x f32xfmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) noexcept (true);
extern _Float32x f32xmulf64 (_Float64 __x, _Float64 __y) noexcept (true);
extern _Float32x f32xsqrtf64 (_Float64 __x) noexcept (true);
extern _Float32x f32xsubf64 (_Float64 __x, _Float64 __y) noexcept (true);
# 748 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 757 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3
# 24 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 3
extern _Float32x f32xaddf64x (_Float64x __x, _Float64x __y) noexcept (true);
extern _Float32x f32xdivf64x (_Float64x __x, _Float64x __y) noexcept (true);
extern _Float32x f32xfmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true);
extern _Float32x f32xmulf64x (_Float64x __x, _Float64x __y) noexcept (true);
extern _Float32x f32xsqrtf64x (_Float64x __x) noexcept (true);
extern _Float32x f32xsubf64x (_Float64x __x, _Float64x __y) noexcept (true);
# 758 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 767 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3
# 24 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 3
extern _Float32x f32xaddf128 (_Float128 __x, _Float128 __y) noexcept (true);
extern _Float32x f32xdivf128 (_Float128 __x, _Float128 __y) noexcept (true);
extern _Float32x f32xfmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true);
extern _Float32x f32xmulf128 (_Float128 __x, _Float128 __y) noexcept (true);
extern _Float32x f32xsqrtf128 (_Float128 __x) noexcept (true);
extern _Float32x f32xsubf128 (_Float128 __x, _Float128 __y) noexcept (true);
# 768 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 787 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3
# 24 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 3
extern _Float64 f64addf64x (_Float64x __x, _Float64x __y) noexcept (true);
extern _Float64 f64divf64x (_Float64x __x, _Float64x __y) noexcept (true);
extern _Float64 f64fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) noexcept (true);
extern _Float64 f64mulf64x (_Float64x __x, _Float64x __y) noexcept (true);
extern _Float64 f64sqrtf64x (_Float64x __x) noexcept (true);
extern _Float64 f64subf64x (_Float64x __x, _Float64x __y) noexcept (true);
# 788 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 797 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3
# 24 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 3
extern _Float64 f64addf128 (_Float128 __x, _Float128 __y) noexcept (true);
extern _Float64 f64divf128 (_Float128 __x, _Float128 __y) noexcept (true);
extern _Float64 f64fmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true);
extern _Float64 f64mulf128 (_Float128 __x, _Float128 __y) noexcept (true);
extern _Float64 f64sqrtf128 (_Float128 __x) noexcept (true);
extern _Float64 f64subf128 (_Float128 __x, _Float128 __y) noexcept (true);
# 798 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 817 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 1 3
# 24 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/mathcalls-narrow.h" 3
extern _Float64x f64xaddf128 (_Float128 __x, _Float128 __y) noexcept (true);
extern _Float64x f64xdivf128 (_Float128 __x, _Float128 __y) noexcept (true);
extern _Float64x f64xfmaf128 (_Float128 __x, _Float128 __y, _Float128 __z) noexcept (true);
extern _Float64x f64xmulf128 (_Float128 __x, _Float128 __y) noexcept (true);
extern _Float64x f64xsqrtf128 (_Float128 __x) noexcept (true);
extern _Float64x f64xsubf128 (_Float128 __x, _Float128 __y) noexcept (true);
# 818 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 854 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
extern int signgam;
# 934 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
enum
{
FP_NAN =
0,
FP_INFINITE =
1,
FP_ZERO =
2,
FP_SUBNORMAL =
3,
FP_NORMAL =
4
};
# 1054 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/iscanonical.h" 1 3
# 1055 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 2 3
# 1066 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
extern "C++" {
inline int issignaling (float __val) { return __issignalingf (__val); }
inline int issignaling (double __val) { return __issignaling (__val); }
inline int
issignaling (long double __val)
{
return __issignalingl (__val);
}
}
# 1097 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
extern "C++" {
# 1128 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
template <class __T> inline bool
iszero (__T __val)
{
return __val == 0;
}
}
# 1363 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
extern "C++" {
template<typename> struct __iseqsig_type;
template<> struct __iseqsig_type<float>
{
static int __call (float __x, float __y) throw ()
{
return __iseqsigf (__x, __y);
}
};
template<> struct __iseqsig_type<double>
{
static int __call (double __x, double __y) throw ()
{
return __iseqsig (__x, __y);
}
};
template<> struct __iseqsig_type<long double>
{
static int __call (long double __x, long double __y) throw ()
{
return __iseqsigl (__x, __y);
}
};
# 1406 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/math.h" 3
template<typename _T1, typename _T2>
inline int
iseqsig (_T1 __x, _T2 __y) throw ()
{
typedef decltype (((__x) + (__y) + 0.0f)) _T3;
return __iseqsig_type<_T3>::__call (__x, __y);
}
}
}
# 302 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/math.h" 2 3
extern "C++" {
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stdlib.h" 1 3
# 91 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stdlib.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 1 3
# 26 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/libc-header-start.h" 1 3
# 27 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stddef.h" 1 3
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stddef.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build0/lib/clang/17/include/stddef.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stddef.h" 2 3
# 33 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 2 3
extern "C" {
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/waitflags.h" 1 3
# 41 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/waitstatus.h" 1 3
# 42 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 2 3
# 59 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
typedef struct
{
int quot;
int rem;
} div_t;
typedef struct
{
long int quot;
long int rem;
} ldiv_t;
__extension__ typedef struct
{
long long int quot;
long long int rem;
} lldiv_t;
# 98 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
extern size_t __ctype_get_mb_cur_max (void) noexcept (true) ;
extern double atof (const char *__nptr)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
extern int atoi (const char *__nptr)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
extern long int atol (const char *__nptr)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
__extension__ extern long long int atoll (const char *__nptr)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
extern double strtod (const char *__restrict __nptr,
char **__restrict __endptr)
noexcept (true) __attribute__ ((__nonnull__ (1)));
extern float strtof (const char *__restrict __nptr,
char **__restrict __endptr) noexcept (true) __attribute__ ((__nonnull__ (1)));
extern long double strtold (const char *__restrict __nptr,
char **__restrict __endptr)
noexcept (true) __attribute__ ((__nonnull__ (1)));
# 141 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
extern _Float32 strtof32 (const char *__restrict __nptr,
char **__restrict __endptr)
noexcept (true) __attribute__ ((__nonnull__ (1)));
extern _Float64 strtof64 (const char *__restrict __nptr,
char **__restrict __endptr)
noexcept (true) __attribute__ ((__nonnull__ (1)));
extern _Float128 strtof128 (const char *__restrict __nptr,
char **__restrict __endptr)
noexcept (true) __attribute__ ((__nonnull__ (1)));
extern _Float32x strtof32x (const char *__restrict __nptr,
char **__restrict __endptr)
noexcept (true) __attribute__ ((__nonnull__ (1)));
extern _Float64x strtof64x (const char *__restrict __nptr,
char **__restrict __endptr)
noexcept (true) __attribute__ ((__nonnull__ (1)));
# 177 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
extern long int strtol (const char *__restrict __nptr,
char **__restrict __endptr, int __base)
noexcept (true) __attribute__ ((__nonnull__ (1)));
extern unsigned long int strtoul (const char *__restrict __nptr,
char **__restrict __endptr, int __base)
noexcept (true) __attribute__ ((__nonnull__ (1)));
__extension__
extern long long int strtoq (const char *__restrict __nptr,
char **__restrict __endptr, int __base)
noexcept (true) __attribute__ ((__nonnull__ (1)));
__extension__
extern unsigned long long int strtouq (const char *__restrict __nptr,
char **__restrict __endptr, int __base)
noexcept (true) __attribute__ ((__nonnull__ (1)));
__extension__
extern long long int strtoll (const char *__restrict __nptr,
char **__restrict __endptr, int __base)
noexcept (true) __attribute__ ((__nonnull__ (1)));
__extension__
extern unsigned long long int strtoull (const char *__restrict __nptr,
char **__restrict __endptr, int __base)
noexcept (true) __attribute__ ((__nonnull__ (1)));
extern int strfromd (char *__dest, size_t __size, const char *__format,
double __f)
noexcept (true) __attribute__ ((__nonnull__ (3)));
extern int strfromf (char *__dest, size_t __size, const char *__format,
float __f)
noexcept (true) __attribute__ ((__nonnull__ (3)));
extern int strfroml (char *__dest, size_t __size, const char *__format,
long double __f)
noexcept (true) __attribute__ ((__nonnull__ (3)));
# 233 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
extern int strfromf32 (char *__dest, size_t __size, const char * __format,
_Float32 __f)
noexcept (true) __attribute__ ((__nonnull__ (3)));
extern int strfromf64 (char *__dest, size_t __size, const char * __format,
_Float64 __f)
noexcept (true) __attribute__ ((__nonnull__ (3)));
extern int strfromf128 (char *__dest, size_t __size, const char * __format,
_Float128 __f)
noexcept (true) __attribute__ ((__nonnull__ (3)));
extern int strfromf32x (char *__dest, size_t __size, const char * __format,
_Float32x __f)
noexcept (true) __attribute__ ((__nonnull__ (3)));
extern int strfromf64x (char *__dest, size_t __size, const char * __format,
_Float64x __f)
noexcept (true) __attribute__ ((__nonnull__ (3)));
# 273 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/locale_t.h" 1 3
# 22 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/locale_t.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/__locale_t.h" 1 3
# 27 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/__locale_t.h" 3
struct __locale_struct
{
struct __locale_data *__locales[13];
const unsigned short int *__ctype_b;
const int *__ctype_tolower;
const int *__ctype_toupper;
const char *__names[13];
};
typedef struct __locale_struct *__locale_t;
# 23 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/locale_t.h" 2 3
typedef __locale_t locale_t;
# 274 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 2 3
extern long int strtol_l (const char *__restrict __nptr,
char **__restrict __endptr, int __base,
locale_t __loc) noexcept (true) __attribute__ ((__nonnull__ (1, 4)));
extern unsigned long int strtoul_l (const char *__restrict __nptr,
char **__restrict __endptr,
int __base, locale_t __loc)
noexcept (true) __attribute__ ((__nonnull__ (1, 4)));
__extension__
extern long long int strtoll_l (const char *__restrict __nptr,
char **__restrict __endptr, int __base,
locale_t __loc)
noexcept (true) __attribute__ ((__nonnull__ (1, 4)));
__extension__
extern unsigned long long int strtoull_l (const char *__restrict __nptr,
char **__restrict __endptr,
int __base, locale_t __loc)
noexcept (true) __attribute__ ((__nonnull__ (1, 4)));
extern double strtod_l (const char *__restrict __nptr,
char **__restrict __endptr, locale_t __loc)
noexcept (true) __attribute__ ((__nonnull__ (1, 3)));
extern float strtof_l (const char *__restrict __nptr,
char **__restrict __endptr, locale_t __loc)
noexcept (true) __attribute__ ((__nonnull__ (1, 3)));
extern long double strtold_l (const char *__restrict __nptr,
char **__restrict __endptr,
locale_t __loc)
noexcept (true) __attribute__ ((__nonnull__ (1, 3)));
# 317 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
extern _Float32 strtof32_l (const char *__restrict __nptr,
char **__restrict __endptr,
locale_t __loc)
noexcept (true) __attribute__ ((__nonnull__ (1, 3)));
extern _Float64 strtof64_l (const char *__restrict __nptr,
char **__restrict __endptr,
locale_t __loc)
noexcept (true) __attribute__ ((__nonnull__ (1, 3)));
extern _Float128 strtof128_l (const char *__restrict __nptr,
char **__restrict __endptr,
locale_t __loc)
noexcept (true) __attribute__ ((__nonnull__ (1, 3)));
extern _Float32x strtof32x_l (const char *__restrict __nptr,
char **__restrict __endptr,
locale_t __loc)
noexcept (true) __attribute__ ((__nonnull__ (1, 3)));
extern _Float64x strtof64x_l (const char *__restrict __nptr,
char **__restrict __endptr,
locale_t __loc)
noexcept (true) __attribute__ ((__nonnull__ (1, 3)));
# 361 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
extern __inline __attribute__ ((__gnu_inline__)) int
atoi (const char *__nptr) noexcept (true)
{
return (int) strtol (__nptr, (char **) __null, 10);
}
extern __inline __attribute__ ((__gnu_inline__)) long int
atol (const char *__nptr) noexcept (true)
{
return strtol (__nptr, (char **) __null, 10);
}
__extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int
atoll (const char *__nptr) noexcept (true)
{
return strtoll (__nptr, (char **) __null, 10);
}
# 386 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
extern char *l64a (long int __n) noexcept (true) ;
extern long int a64l (const char *__s)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/types.h" 1 3
# 27 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/types.h" 3
extern "C" {
typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;
typedef __loff_t loff_t;
typedef __ino_t ino_t;
typedef __ino64_t ino64_t;
typedef __dev_t dev_t;
typedef __gid_t gid_t;
typedef __mode_t mode_t;
typedef __nlink_t nlink_t;
typedef __uid_t uid_t;
typedef __off_t off_t;
typedef __off64_t off64_t;
typedef __pid_t pid_t;
typedef __id_t id_t;
typedef __ssize_t ssize_t;
typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;
typedef __key_t key_t;
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/clock_t.h" 1 3
typedef __clock_t clock_t;
# 127 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/types.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/clockid_t.h" 1 3
typedef __clockid_t clockid_t;
# 129 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/types.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/time_t.h" 1 3
# 10 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/time_t.h" 3
typedef __time_t time_t;
# 130 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/types.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/timer_t.h" 1 3
typedef __timer_t timer_t;
# 131 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/types.h" 2 3
typedef __useconds_t useconds_t;
typedef __suseconds_t suseconds_t;
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stddef.h" 1 3
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stddef.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build0/lib/clang/17/include/stddef.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stddef.h" 2 3
# 145 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/types.h" 2 3
typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;
typedef __uint8_t u_int8_t;
typedef __uint16_t u_int16_t;
typedef __uint32_t u_int32_t;
typedef __uint64_t u_int64_t;
typedef int register_t __attribute__ ((__mode__ (__word__)));
# 176 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/types.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/endian.h" 1 3
# 24 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/endian.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/endian.h" 1 3
# 35 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/endian.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/endianness.h" 1 3
# 36 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/endian.h" 2 3
# 25 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/endian.h" 2 3
# 35 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/endian.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/byteswap.h" 1 3
# 33 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/byteswap.h" 3
static __inline __uint16_t
__bswap_16 (__uint16_t __bsx)
{
return ((__uint16_t) ((((__bsx) >> 8) & 0xff) | (((__bsx) & 0xff) << 8)));
}
static __inline __uint32_t
__bswap_32 (__uint32_t __bsx)
{
return ((((__bsx) & 0xff000000u) >> 24) | (((__bsx) & 0x00ff0000u) >> 8) | (((__bsx) & 0x0000ff00u) << 8) | (((__bsx) & 0x000000ffu) << 24));
}
# 69 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/byteswap.h" 3
__extension__ static __inline __uint64_t
__bswap_64 (__uint64_t __bsx)
{
return ((((__bsx) & 0xff00000000000000ull) >> 56) | (((__bsx) & 0x00ff000000000000ull) >> 40) | (((__bsx) & 0x0000ff0000000000ull) >> 24) | (((__bsx) & 0x000000ff00000000ull) >> 8) | (((__bsx) & 0x00000000ff000000ull) << 8) | (((__bsx) & 0x0000000000ff0000ull) << 24) | (((__bsx) & 0x000000000000ff00ull) << 40) | (((__bsx) & 0x00000000000000ffull) << 56));
}
# 36 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/endian.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/uintn-identity.h" 1 3
# 32 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/uintn-identity.h" 3
static __inline __uint16_t
__uint16_identity (__uint16_t __x)
{
return __x;
}
static __inline __uint32_t
__uint32_identity (__uint32_t __x)
{
return __x;
}
static __inline __uint64_t
__uint64_identity (__uint64_t __x)
{
return __x;
}
# 37 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/endian.h" 2 3
# 177 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/types.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/select.h" 1 3
# 30 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/select.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/select.h" 1 3
# 31 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/select.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/sigset_t.h" 1 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/__sigset_t.h" 1 3
typedef struct
{
unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
} __sigset_t;
# 5 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/sigset_t.h" 2 3
typedef __sigset_t sigset_t;
# 34 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/select.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/struct_timeval.h" 1 3
struct timeval
{
__time_t tv_sec;
__suseconds_t tv_usec;
};
# 38 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/select.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/struct_timespec.h" 1 3
# 11 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/struct_timespec.h" 3
struct timespec
{
__time_t tv_sec;
__syscall_slong_t tv_nsec;
# 31 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/struct_timespec.h" 3
};
# 40 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/select.h" 2 3
# 49 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/select.h" 3
typedef long int __fd_mask;
# 59 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/select.h" 3
typedef struct
{
__fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
} fd_set;
typedef __fd_mask fd_mask;
# 91 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/select.h" 3
extern "C" {
# 102 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/select.h" 3
extern int select (int __nfds, fd_set *__restrict __readfds,
fd_set *__restrict __writefds,
fd_set *__restrict __exceptfds,
struct timeval *__restrict __timeout);
# 127 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/select.h" 3
extern int pselect (int __nfds, fd_set *__restrict __readfds,
fd_set *__restrict __writefds,
fd_set *__restrict __exceptfds,
const struct timespec *__restrict __timeout,
const __sigset_t *__restrict __sigmask);
# 153 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/select.h" 3
}
# 180 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/types.h" 2 3
typedef __blksize_t blksize_t;
typedef __blkcnt_t blkcnt_t;
typedef __fsblkcnt_t fsblkcnt_t;
typedef __fsfilcnt_t fsfilcnt_t;
# 219 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/types.h" 3
typedef __blkcnt64_t blkcnt64_t;
typedef __fsblkcnt64_t fsblkcnt64_t;
typedef __fsfilcnt64_t fsfilcnt64_t;
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/pthreadtypes.h" 1 3
# 23 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/pthreadtypes.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/thread-shared-types.h" 1 3
# 44 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/thread-shared-types.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/pthreadtypes-arch.h" 1 3
# 45 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/thread-shared-types.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/atomic_wide_counter.h" 1 3
# 25 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/atomic_wide_counter.h" 3
typedef union
{
__extension__ unsigned long long int __value64;
struct
{
unsigned int __low;
unsigned int __high;
} __value32;
} __atomic_wide_counter;
# 47 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/thread-shared-types.h" 2 3
typedef struct __pthread_internal_list
{
struct __pthread_internal_list *__prev;
struct __pthread_internal_list *__next;
} __pthread_list_t;
typedef struct __pthread_internal_slist
{
struct __pthread_internal_slist *__next;
} __pthread_slist_t;
# 76 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/thread-shared-types.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/struct_mutex.h" 1 3
# 27 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/struct_mutex.h" 3
struct __pthread_mutex_s
{
int __lock ;
unsigned int __count;
int __owner;
unsigned int __nusers;
# 58 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/struct_mutex.h" 3
int __kind;
int __spins;
__pthread_list_t __list;
# 74 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/struct_mutex.h" 3
};
# 77 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/thread-shared-types.h" 2 3
# 89 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/thread-shared-types.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/struct_rwlock.h" 1 3
# 23 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/struct_rwlock.h" 3
struct __pthread_rwlock_arch_t
{
unsigned int __readers;
unsigned int __writers;
unsigned int __wrphase_futex;
unsigned int __writers_futex;
unsigned int __pad3;
unsigned int __pad4;
int __cur_writer;
int __shared;
unsigned long int __pad1;
unsigned long int __pad2;
unsigned int __flags;
};
# 90 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/thread-shared-types.h" 2 3
struct __pthread_cond_s
{
__atomic_wide_counter __wseq;
__atomic_wide_counter __g1_start;
unsigned int __g_refs[2] ;
unsigned int __g_size[2];
unsigned int __g1_orig_size;
unsigned int __wrefs;
unsigned int __g_signals[2];
};
typedef unsigned int __tss_t;
typedef unsigned long int __thrd_t;
typedef struct
{
int __data ;
} __once_flag;
# 24 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/pthreadtypes.h" 2 3
typedef unsigned long int pthread_t;
typedef union
{
char __size[8];
int __align;
} pthread_mutexattr_t;
typedef union
{
char __size[8];
int __align;
} pthread_condattr_t;
typedef unsigned int pthread_key_t;
typedef int pthread_once_t;
union pthread_attr_t
{
char __size[64];
long int __align;
};
typedef union pthread_attr_t pthread_attr_t;
typedef union
{
struct __pthread_mutex_s __data;
char __size[48];
long int __align;
} pthread_mutex_t;
typedef union
{
struct __pthread_cond_s __data;
char __size[48];
__extension__ long long int __align;
} pthread_cond_t;
typedef union
{
struct __pthread_rwlock_arch_t __data;
char __size[56];
long int __align;
} pthread_rwlock_t;
typedef union
{
char __size[8];
long int __align;
} pthread_rwlockattr_t;
typedef volatile int pthread_spinlock_t;
typedef union
{
char __size[32];
long int __align;
} pthread_barrier_t;
typedef union
{
char __size[8];
int __align;
} pthread_barrierattr_t;
# 228 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/sys/types.h" 2 3
}
# 396 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 2 3
extern long int random (void) noexcept (true);
extern void srandom (unsigned int __seed) noexcept (true);
extern char *initstate (unsigned int __seed, char *__statebuf,
size_t __statelen) noexcept (true) __attribute__ ((__nonnull__ (2)));
extern char *setstate (char *__statebuf) noexcept (true) __attribute__ ((__nonnull__ (1)));
struct random_data
{
int32_t *fptr;
int32_t *rptr;
int32_t *state;
int rand_type;
int rand_deg;
int rand_sep;
int32_t *end_ptr;
};
extern int random_r (struct random_data *__restrict __buf,
int32_t *__restrict __result) noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern int srandom_r (unsigned int __seed, struct random_data *__buf)
noexcept (true) __attribute__ ((__nonnull__ (2)));
extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
size_t __statelen,
struct random_data *__restrict __buf)
noexcept (true) __attribute__ ((__nonnull__ (2, 4)));
extern int setstate_r (char *__restrict __statebuf,
struct random_data *__restrict __buf)
noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern int rand (void) noexcept (true);
extern void srand (unsigned int __seed) noexcept (true);
extern int rand_r (unsigned int *__seed) noexcept (true);
extern double drand48 (void) noexcept (true);
extern double erand48 (unsigned short int __xsubi[3]) noexcept (true) __attribute__ ((__nonnull__ (1)));
extern long int lrand48 (void) noexcept (true);
extern long int nrand48 (unsigned short int __xsubi[3])
noexcept (true) __attribute__ ((__nonnull__ (1)));
extern long int mrand48 (void) noexcept (true);
extern long int jrand48 (unsigned short int __xsubi[3])
noexcept (true) __attribute__ ((__nonnull__ (1)));
extern void srand48 (long int __seedval) noexcept (true);
extern unsigned short int *seed48 (unsigned short int __seed16v[3])
noexcept (true) __attribute__ ((__nonnull__ (1)));
extern void lcong48 (unsigned short int __param[7]) noexcept (true) __attribute__ ((__nonnull__ (1)));
struct drand48_data
{
unsigned short int __x[3];
unsigned short int __old_x[3];
unsigned short int __c;
unsigned short int __init;
__extension__ unsigned long long int __a;
};
extern int drand48_r (struct drand48_data *__restrict __buffer,
double *__restrict __result) noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern int erand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
double *__restrict __result) noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern int lrand48_r (struct drand48_data *__restrict __buffer,
long int *__restrict __result)
noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern int nrand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
long int *__restrict __result)
noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern int mrand48_r (struct drand48_data *__restrict __buffer,
long int *__restrict __result)
noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern int jrand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
long int *__restrict __result)
noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
noexcept (true) __attribute__ ((__nonnull__ (2)));
extern int seed48_r (unsigned short int __seed16v[3],
struct drand48_data *__buffer) noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern int lcong48_r (unsigned short int __param[7],
struct drand48_data *__buffer)
noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern void *malloc (size_t __size) noexcept (true) __attribute__ ((__malloc__))
;
extern void *calloc (size_t __nmemb, size_t __size)
noexcept (true) __attribute__ ((__malloc__)) ;
extern void *realloc (void *__ptr, size_t __size)
noexcept (true) __attribute__ ((__warn_unused_result__)) ;
extern void free (void *__ptr) noexcept (true);
extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
noexcept (true) __attribute__ ((__warn_unused_result__))
;
extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
noexcept (true) ;
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/alloca.h" 1 3
# 24 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/alloca.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stddef.h" 1 3
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stddef.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build0/lib/clang/17/include/stddef.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stddef.h" 2 3
# 25 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/alloca.h" 2 3
extern "C" {
extern void *alloca (size_t __size) noexcept (true);
}
# 575 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 2 3
extern void *valloc (size_t __size) noexcept (true) __attribute__ ((__malloc__))
;
extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
noexcept (true) __attribute__ ((__nonnull__ (1))) ;
extern void *aligned_alloc (size_t __alignment, size_t __size)
noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__alloc_align__ (1)))
;
extern void abort (void) noexcept (true) __attribute__ ((__noreturn__));
extern int atexit (void (*__func) (void)) noexcept (true) __attribute__ ((__nonnull__ (1)));
extern "C++" int at_quick_exit (void (*__func) (void))
noexcept (true) __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1)));
# 617 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
noexcept (true) __attribute__ ((__nonnull__ (1)));
extern void exit (int __status) noexcept (true) __attribute__ ((__noreturn__));
extern void quick_exit (int __status) noexcept (true) __attribute__ ((__noreturn__));
extern void _Exit (int __status) noexcept (true) __attribute__ ((__noreturn__));
extern char *getenv (const char *__name) noexcept (true) __attribute__ ((__nonnull__ (1))) ;
extern char *secure_getenv (const char *__name)
noexcept (true) __attribute__ ((__nonnull__ (1))) ;
extern int putenv (char *__string) noexcept (true) __attribute__ ((__nonnull__ (1)));
extern int setenv (const char *__name, const char *__value, int __replace)
noexcept (true) __attribute__ ((__nonnull__ (2)));
extern int unsetenv (const char *__name) noexcept (true) __attribute__ ((__nonnull__ (1)));
extern int clearenv (void) noexcept (true);
# 682 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
extern char *mktemp (char *__template) noexcept (true) __attribute__ ((__nonnull__ (1)));
# 695 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
# 705 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ;
# 717 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
# 727 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
extern int mkstemps64 (char *__template, int __suffixlen)
__attribute__ ((__nonnull__ (1))) ;
# 738 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
extern char *mkdtemp (char *__template) noexcept (true) __attribute__ ((__nonnull__ (1))) ;
# 749 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ;
# 759 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ;
# 769 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
extern int mkostemps (char *__template, int __suffixlen, int __flags)
__attribute__ ((__nonnull__ (1))) ;
# 781 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
extern int mkostemps64 (char *__template, int __suffixlen, int __flags)
__attribute__ ((__nonnull__ (1))) ;
# 791 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
extern int system (const char *__command) ;
extern char *canonicalize_file_name (const char *__name)
noexcept (true) __attribute__ ((__nonnull__ (1))) __attribute__ ((__malloc__))
;
# 808 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
extern char *realpath (const char *__restrict __name,
char *__restrict __resolved) noexcept (true) ;
typedef int (*__compar_fn_t) (const void *, const void *);
typedef __compar_fn_t comparison_fn_t;
typedef int (*__compar_d_fn_t) (const void *, const void *, void *);
extern void *bsearch (const void *__key, const void *__base,
size_t __nmemb, size_t __size, __compar_fn_t __compar)
__attribute__ ((__nonnull__ (1, 2, 5))) ;
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/stdlib-bsearch.h" 1 3
# 19 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/stdlib-bsearch.h" 3
extern __inline __attribute__ ((__gnu_inline__)) void *
bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size,
__compar_fn_t __compar)
{
size_t __l, __u, __idx;
const void *__p;
int __comparison;
__l = 0;
__u = __nmemb;
while (__l < __u)
{
__idx = (__l + __u) / 2;
__p = (const void *) (((const char *) __base) + (__idx * __size));
__comparison = (*__compar) (__key, __p);
if (__comparison < 0)
__u = __idx;
else if (__comparison > 0)
__l = __idx + 1;
else
{
return (void *) __p;
}
}
return __null;
}
# 834 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 2 3
extern void qsort (void *__base, size_t __nmemb, size_t __size,
__compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
extern void qsort_r (void *__base, size_t __nmemb, size_t __size,
__compar_d_fn_t __compar, void *__arg)
__attribute__ ((__nonnull__ (1, 4)));
extern int abs (int __x) noexcept (true) __attribute__ ((__const__)) ;
extern long int labs (long int __x) noexcept (true) __attribute__ ((__const__)) ;
__extension__ extern long long int llabs (long long int __x)
noexcept (true) __attribute__ ((__const__)) ;
extern div_t div (int __numer, int __denom)
noexcept (true) __attribute__ ((__const__)) ;
extern ldiv_t ldiv (long int __numer, long int __denom)
noexcept (true) __attribute__ ((__const__)) ;
__extension__ extern lldiv_t lldiv (long long int __numer,
long long int __denom)
noexcept (true) __attribute__ ((__const__)) ;
# 880 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign) noexcept (true) __attribute__ ((__nonnull__ (3, 4))) ;
extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign) noexcept (true) __attribute__ ((__nonnull__ (3, 4))) ;
extern char *gcvt (double __value, int __ndigit, char *__buf)
noexcept (true) __attribute__ ((__nonnull__ (3))) ;
extern char *qecvt (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign)
noexcept (true) __attribute__ ((__nonnull__ (3, 4))) ;
extern char *qfcvt (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign)
noexcept (true) __attribute__ ((__nonnull__ (3, 4))) ;
extern char *qgcvt (long double __value, int __ndigit, char *__buf)
noexcept (true) __attribute__ ((__nonnull__ (3))) ;
extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign, char *__restrict __buf,
size_t __len) noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5)));
extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign, char *__restrict __buf,
size_t __len) noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5)));
extern int qecvt_r (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign,
char *__restrict __buf, size_t __len)
noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5)));
extern int qfcvt_r (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign,
char *__restrict __buf, size_t __len)
noexcept (true) __attribute__ ((__nonnull__ (3, 4, 5)));
extern int mblen (const char *__s, size_t __n) noexcept (true);
extern int mbtowc (wchar_t *__restrict __pwc,
const char *__restrict __s, size_t __n) noexcept (true);
extern int wctomb (char *__s, wchar_t __wchar) noexcept (true);
extern size_t mbstowcs (wchar_t *__restrict __pwcs,
const char *__restrict __s, size_t __n) noexcept (true)
;
extern size_t wcstombs (char *__restrict __s,
const wchar_t *__restrict __pwcs, size_t __n)
noexcept (true)
;
extern int rpmatch (const char *__response) noexcept (true) __attribute__ ((__nonnull__ (1))) ;
# 967 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
extern int getsubopt (char **__restrict __optionp,
char *const *__restrict __tokens,
char **__restrict __valuep)
noexcept (true) __attribute__ ((__nonnull__ (1, 2, 3))) ;
extern int posix_openpt (int __oflag) ;
extern int grantpt (int __fd) noexcept (true);
extern int unlockpt (int __fd) noexcept (true);
extern char *ptsname (int __fd) noexcept (true) ;
extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
noexcept (true) __attribute__ ((__nonnull__ (2))) ;
extern int getpt (void);
extern int getloadavg (double __loadavg[], int __nelem)
noexcept (true) __attribute__ ((__nonnull__ (1)));
# 1023 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/stdlib-float.h" 1 3
# 24 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/stdlib-float.h" 3
extern __inline __attribute__ ((__gnu_inline__)) double
atof (const char *__nptr) noexcept (true)
{
return strtod (__nptr, (char **) __null);
}
# 1024 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 2 3
# 1035 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/stdlib.h" 3
}
# 95 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stdlib.h" 2 3
extern "C++" {
# 113 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stdlib.h" 3
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long abs(long __x) noexcept {
return __builtin_labs(__x);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long long abs(long long __x) noexcept {
return __builtin_llabs(__x);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float abs(float __lcpp_x) noexcept {
return __builtin_fabsf(__lcpp_x);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double abs(double __lcpp_x) noexcept {
return __builtin_fabs(__lcpp_x);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double
abs(long double __lcpp_x) noexcept {
return __builtin_fabsl(__lcpp_x);
}
# 150 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stdlib.h" 3
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) ldiv_t div(long __x, long __y) noexcept {
return ::ldiv(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) lldiv_t div(long long __x,
long long __y) noexcept {
return ::lldiv(__x, __y);
}
}
# 317 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/math.h" 2 3
# 369 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/math.h" 3
template <class _A1, std::__enable_if_t<std::is_floating_point<_A1>::value, int> = 0>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) bool signbit(_A1 __x) noexcept {
return __builtin_signbit(__x);
}
template <class _A1, std::__enable_if_t<std::is_integral<_A1>::value && std::is_signed<_A1>::value, int> = 0>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) bool signbit(_A1 __x) noexcept {
return __x < 0;
}
template <class _A1, std::__enable_if_t<std::is_integral<_A1>::value && !std::is_signed<_A1>::value, int> = 0>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) bool signbit(_A1) noexcept {
return false;
}
template <class _A1, std::__enable_if_t<std::is_floating_point<_A1>::value, int> = 0>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) int fpclassify(_A1 __x) noexcept {
return __builtin_fpclassify(0, 1, 4, 3, 2, __x);
}
template <class _A1, std::__enable_if_t<std::is_integral<_A1>::value, int> = 0>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) int fpclassify(_A1 __x) noexcept {
return __x == 0 ? 2 : 4;
}
template <class _A1,
std::__enable_if_t<std::is_arithmetic<_A1>::value && std::numeric_limits<_A1>::has_infinity, int> = 0>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) bool isfinite(_A1 __x) noexcept {
return __builtin_isfinite((typename std::__promote<_A1>::type)__x);
}
template <class _A1,
std::__enable_if_t<std::is_arithmetic<_A1>::value && !std::numeric_limits<_A1>::has_infinity, int> = 0>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) bool isfinite(_A1) noexcept {
return true;
}
template <class _A1,
std::__enable_if_t<std::is_arithmetic<_A1>::value && std::numeric_limits<_A1>::has_infinity, int> = 0>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) bool isinf(_A1 __x) noexcept {
return __builtin_isinf((typename std::__promote<_A1>::type)__x);
}
template <class _A1>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if< std::is_arithmetic<_A1>::value && !std::numeric_limits<_A1>::has_infinity, bool>::type
isinf(_A1) noexcept {
return false;
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) bool isinf(float __x) noexcept {
return __builtin_isinf(__x);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) __attribute__((__enable_if__(true, ""))) bool isinf(double __x) noexcept {
return __builtin_isinf(__x);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) bool isinf(long double __x) noexcept {
return __builtin_isinf(__x);
}
template <class _A1, std::__enable_if_t<std::is_floating_point<_A1>::value, int> = 0>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) bool isnan(_A1 __x) noexcept {
return __builtin_isnan(__x);
}
template <class _A1, std::__enable_if_t<std::is_integral<_A1>::value, int> = 0>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) bool isnan(_A1) noexcept {
return false;
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) bool isnan(float __x) noexcept {
return __builtin_isnan(__x);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) __attribute__((__enable_if__(true, ""))) bool isnan(double __x) noexcept {
return __builtin_isnan(__x);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) bool isnan(long double __x) noexcept {
return __builtin_isnan(__x);
}
template <class _A1, std::__enable_if_t<std::is_floating_point<_A1>::value, int> = 0>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) bool isnormal(_A1 __x) noexcept {
return __builtin_isnormal(__x);
}
template <class _A1, std::__enable_if_t<std::is_integral<_A1>::value, int> = 0>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) bool isnormal(_A1 __x) noexcept {
return __x != 0;
}
template <class _A1,
class _A2,
std::__enable_if_t<std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value, int> = 0>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) bool isgreater(_A1 __x, _A2 __y) noexcept {
typedef typename std::__promote<_A1, _A2>::type type;
return __builtin_isgreater((type)__x, (type)__y);
}
template <class _A1,
class _A2,
std::__enable_if_t<std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value, int> = 0>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) bool isgreaterequal(_A1 __x, _A2 __y) noexcept {
typedef typename std::__promote<_A1, _A2>::type type;
return __builtin_isgreaterequal((type)__x, (type)__y);
}
template <class _A1,
class _A2,
std::__enable_if_t<std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value, int> = 0>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) bool isless(_A1 __x, _A2 __y) noexcept {
typedef typename std::__promote<_A1, _A2>::type type;
return __builtin_isless((type)__x, (type)__y);
}
template <class _A1,
class _A2,
std::__enable_if_t<std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value, int> = 0>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) bool islessequal(_A1 __x, _A2 __y) noexcept {
typedef typename std::__promote<_A1, _A2>::type type;
return __builtin_islessequal((type)__x, (type)__y);
}
template <class _A1,
class _A2,
std::__enable_if_t<std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value, int> = 0>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) bool islessgreater(_A1 __x, _A2 __y) noexcept {
typedef typename std::__promote<_A1, _A2>::type type;
return __builtin_islessgreater((type)__x, (type)__y);
}
template <class _A1,
class _A2,
std::__enable_if_t<std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value, int> = 0>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) bool isunordered(_A1 __x, _A2 __y) noexcept {
typedef typename std::__promote<_A1, _A2>::type type;
return __builtin_isunordered((type)__x, (type)__y);
}
# 558 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/math.h" 3
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float acos(float __x) noexcept {return __builtin_acosf(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double acos(double __x) noexcept {
return __builtin_acos(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double acos(long double __x) noexcept {return __builtin_acosl(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
acos(_A1 __x) noexcept {return __builtin_acos((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float asin(float __x) noexcept {return __builtin_asinf(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double asin(double __x) noexcept {
return __builtin_asin(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double asin(long double __x) noexcept {return __builtin_asinl(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
asin(_A1 __x) noexcept {return __builtin_asin((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float atan(float __x) noexcept {return __builtin_atanf(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double atan(double __x) noexcept {
return __builtin_atan(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double atan(long double __x) noexcept {return __builtin_atanl(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
atan(_A1 __x) noexcept {return __builtin_atan((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float atan2(float __y, float __x) noexcept {return __builtin_atan2f(__y, __x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double atan2(double __x, double __y) noexcept {
return __builtin_atan2(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double atan2(long double __y, long double __x) noexcept {return __builtin_atan2l(__y, __x);}
template <class _A1, class _A2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::__enable_if_t
<
std::is_arithmetic<_A1>::value &&
std::is_arithmetic<_A2>::value,
std::__promote<_A1, _A2>
>::type
atan2(_A1 __y, _A2 __x) noexcept
{
typedef typename std::__promote<_A1, _A2>::type __result_type;
static_assert((!(std::_IsSame<_A1, __result_type>::value &&
std::_IsSame<_A2, __result_type>::value)), "");
return ::atan2((__result_type)__y, (__result_type)__x);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float ceil(float __x) noexcept {return __builtin_ceilf(__x);}
template <class = int>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double ceil(double __x) noexcept {
return __builtin_ceil(__x);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double ceil(long double __x) noexcept {return __builtin_ceill(__x);}
template <class _A1>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
ceil(_A1 __x) noexcept {return __builtin_ceil((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float cos(float __x) noexcept {return __builtin_cosf(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double cos(double __x) noexcept {
return __builtin_cos(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double cos(long double __x) noexcept {return __builtin_cosl(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
cos(_A1 __x) noexcept {return __builtin_cos((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float cosh(float __x) noexcept {return __builtin_coshf(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double cosh(double __x) noexcept {
return __builtin_cosh(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double cosh(long double __x) noexcept {return __builtin_coshl(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
cosh(_A1 __x) noexcept {return __builtin_cosh((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float exp(float __x) noexcept {return __builtin_expf(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double exp(double __x) noexcept {
return __builtin_exp(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double exp(long double __x) noexcept {return __builtin_expl(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
exp(_A1 __x) noexcept {return __builtin_exp((double)__x);}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float fabs(float __x) noexcept {return __builtin_fabsf(__x);}
template <class = int>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double fabs(double __x) noexcept {
return __builtin_fabs(__x);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double fabs(long double __x) noexcept {return __builtin_fabsl(__x);}
template <class _A1>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
fabs(_A1 __x) noexcept {return __builtin_fabs((double)__x);}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float floor(float __x) noexcept {return __builtin_floorf(__x);}
template <class = int>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double floor(double __x) noexcept {
return __builtin_floor(__x);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double floor(long double __x) noexcept {return __builtin_floorl(__x);}
template <class _A1>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
floor(_A1 __x) noexcept {return __builtin_floor((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float fmod(float __x, float __y) noexcept {return __builtin_fmodf(__x, __y);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double fmod(double __x, double __y) noexcept {
return __builtin_fmod(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double fmod(long double __x, long double __y) noexcept {return __builtin_fmodl(__x, __y);}
template <class _A1, class _A2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::__enable_if_t
<
std::is_arithmetic<_A1>::value &&
std::is_arithmetic<_A2>::value,
std::__promote<_A1, _A2>
>::type
fmod(_A1 __x, _A2 __y) noexcept
{
typedef typename std::__promote<_A1, _A2>::type __result_type;
static_assert((!(std::_IsSame<_A1, __result_type>::value &&
std::_IsSame<_A2, __result_type>::value)), "");
return ::fmod((__result_type)__x, (__result_type)__y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float frexp(float __x, int* __e) noexcept {return __builtin_frexpf(__x, __e);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double frexp(double __x, int* __e) noexcept {
return __builtin_frexp(__x, __e);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double frexp(long double __x, int* __e) noexcept {return __builtin_frexpl(__x, __e);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
frexp(_A1 __x, int* __e) noexcept {return __builtin_frexp((double)__x, __e);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float ldexp(float __x, int __e) noexcept {return __builtin_ldexpf(__x, __e);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double ldexp(double __x, int __e) noexcept {
return __builtin_ldexp(__x, __e);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double ldexp(long double __x, int __e) noexcept {return __builtin_ldexpl(__x, __e);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
ldexp(_A1 __x, int __e) noexcept {return __builtin_ldexp((double)__x, __e);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float log(float __x) noexcept {return __builtin_logf(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double log(double __x) noexcept {
return __builtin_log(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double log(long double __x) noexcept {return __builtin_logl(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
log(_A1 __x) noexcept {return __builtin_log((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float log10(float __x) noexcept {return __builtin_log10f(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double log10(double __x) noexcept {
return __builtin_log10(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double log10(long double __x) noexcept {return __builtin_log10l(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
log10(_A1 __x) noexcept {return __builtin_log10((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float modf(float __x, float* __y) noexcept {return __builtin_modff(__x, __y);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double modf(double __x, double* __y) noexcept {
return __builtin_modf(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double modf(long double __x, long double* __y) noexcept {return __builtin_modfl(__x, __y);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float pow(float __x, float __y) noexcept {return __builtin_powf(__x, __y);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double pow(double __x, double __y) noexcept {
return __builtin_pow(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double pow(long double __x, long double __y) noexcept {return __builtin_powl(__x, __y);}
template <class _A1, class _A2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::__enable_if_t
<
std::is_arithmetic<_A1>::value &&
std::is_arithmetic<_A2>::value,
std::__promote<_A1, _A2>
>::type
pow(_A1 __x, _A2 __y) noexcept
{
typedef typename std::__promote<_A1, _A2>::type __result_type;
static_assert((!(std::_IsSame<_A1, __result_type>::value &&
std::_IsSame<_A2, __result_type>::value)), "");
return ::pow((__result_type)__x, (__result_type)__y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float sin(float __x) noexcept {return __builtin_sinf(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double sin(double __x) noexcept {
return __builtin_sin(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double sin(long double __x) noexcept {return __builtin_sinl(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
sin(_A1 __x) noexcept {return __builtin_sin((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float sinh(float __x) noexcept {return __builtin_sinhf(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double sinh(double __x) noexcept {
return __builtin_sinh(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double sinh(long double __x) noexcept {return __builtin_sinhl(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
sinh(_A1 __x) noexcept {return __builtin_sinh((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float sqrt(float __x) noexcept {return __builtin_sqrtf(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double sqrt(double __x) noexcept {
return __builtin_sqrt(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double sqrt(long double __x) noexcept {return __builtin_sqrtl(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
sqrt(_A1 __x) noexcept {return __builtin_sqrt((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float tan(float __x) noexcept {return __builtin_tanf(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double tan(double __x) noexcept {
return __builtin_tan(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double tan(long double __x) noexcept {return __builtin_tanl(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
tan(_A1 __x) noexcept {return __builtin_tan((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float tanh(float __x) noexcept {return __builtin_tanhf(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double tanh(double __x) noexcept {
return __builtin_tanh(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double tanh(long double __x) noexcept {return __builtin_tanhl(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
tanh(_A1 __x) noexcept {return __builtin_tanh((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float acosh(float __x) noexcept {return __builtin_acoshf(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double acosh(double __x) noexcept {
return __builtin_acosh(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double acosh(long double __x) noexcept {return __builtin_acoshl(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
acosh(_A1 __x) noexcept {return __builtin_acosh((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float asinh(float __x) noexcept {return __builtin_asinhf(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double asinh(double __x) noexcept {
return __builtin_asinh(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double asinh(long double __x) noexcept {return __builtin_asinhl(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
asinh(_A1 __x) noexcept {return __builtin_asinh((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float atanh(float __x) noexcept {return __builtin_atanhf(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double atanh(double __x) noexcept {
return __builtin_atanh(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double atanh(long double __x) noexcept {return __builtin_atanhl(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
atanh(_A1 __x) noexcept {return __builtin_atanh((double)__x);}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float cbrt(float __x) noexcept {return __builtin_cbrtf(__x);}
template <class = int>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double cbrt(double __x) noexcept {
return __builtin_cbrt(__x);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double cbrt(long double __x) noexcept {return __builtin_cbrtl(__x);}
template <class _A1>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
cbrt(_A1 __x) noexcept {return __builtin_cbrt((double)__x);}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float copysign(float __x, float __y) noexcept {
return ::__builtin_copysignf(__x, __y);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double copysign(long double __x, long double __y) noexcept {
return ::__builtin_copysignl(__x, __y);
}
template <class _A1, class _A2>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::__enable_if_t
<
std::is_arithmetic<_A1>::value &&
std::is_arithmetic<_A2>::value,
std::__promote<_A1, _A2>
>::type
copysign(_A1 __x, _A2 __y) noexcept {
return ::__builtin_copysign(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float erf(float __x) noexcept {return __builtin_erff(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double erf(double __x) noexcept {
return __builtin_erf(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double erf(long double __x) noexcept {return __builtin_erfl(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
erf(_A1 __x) noexcept {return __builtin_erf((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float erfc(float __x) noexcept {return __builtin_erfcf(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double erfc(double __x) noexcept {
return __builtin_erfc(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double erfc(long double __x) noexcept {return __builtin_erfcl(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
erfc(_A1 __x) noexcept {return __builtin_erfc((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float exp2(float __x) noexcept {return __builtin_exp2f(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double exp2(double __x) noexcept {
return __builtin_exp2(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double exp2(long double __x) noexcept {return __builtin_exp2l(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
exp2(_A1 __x) noexcept {return __builtin_exp2((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float expm1(float __x) noexcept {return __builtin_expm1f(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double expm1(double __x) noexcept {
return __builtin_expm1(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double expm1(long double __x) noexcept {return __builtin_expm1l(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
expm1(_A1 __x) noexcept {return __builtin_expm1((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float fdim(float __x, float __y) noexcept {return __builtin_fdimf(__x, __y);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double fdim(double __x, double __y) noexcept {
return __builtin_fdim(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double fdim(long double __x, long double __y) noexcept {return __builtin_fdiml(__x, __y);}
template <class _A1, class _A2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::__enable_if_t
<
std::is_arithmetic<_A1>::value &&
std::is_arithmetic<_A2>::value,
std::__promote<_A1, _A2>
>::type
fdim(_A1 __x, _A2 __y) noexcept
{
typedef typename std::__promote<_A1, _A2>::type __result_type;
static_assert((!(std::_IsSame<_A1, __result_type>::value &&
std::_IsSame<_A2, __result_type>::value)), "");
return ::fdim((__result_type)__x, (__result_type)__y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float fma(float __x, float __y, float __z) noexcept
{
return __builtin_fmaf(__x, __y, __z);
}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double fma(double __x, double __y, double __z) noexcept {
return __builtin_fma(__x, __y, __z);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double fma(long double __x, long double __y, long double __z) noexcept
{
return __builtin_fmal(__x, __y, __z);
}
template <class _A1, class _A2, class _A3>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::__enable_if_t
<
std::is_arithmetic<_A1>::value &&
std::is_arithmetic<_A2>::value &&
std::is_arithmetic<_A3>::value,
std::__promote<_A1, _A2, _A3>
>::type
fma(_A1 __x, _A2 __y, _A3 __z) noexcept
{
typedef typename std::__promote<_A1, _A2, _A3>::type __result_type;
static_assert((!(std::_IsSame<_A1, __result_type>::value &&
std::_IsSame<_A2, __result_type>::value &&
std::_IsSame<_A3, __result_type>::value)), "");
return __builtin_fma((__result_type)__x, (__result_type)__y, (__result_type)__z);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float fmax(float __x, float __y) noexcept {return __builtin_fmaxf(__x, __y);}
template <class = int>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double fmax(double __x, double __y) noexcept {
return __builtin_fmax(__x, __y);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double fmax(long double __x, long double __y) noexcept {return __builtin_fmaxl(__x, __y);}
template <class _A1, class _A2>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::__enable_if_t
<
std::is_arithmetic<_A1>::value &&
std::is_arithmetic<_A2>::value,
std::__promote<_A1, _A2>
>::type
fmax(_A1 __x, _A2 __y) noexcept
{
typedef typename std::__promote<_A1, _A2>::type __result_type;
static_assert((!(std::_IsSame<_A1, __result_type>::value &&
std::_IsSame<_A2, __result_type>::value)), "");
return ::fmax((__result_type)__x, (__result_type)__y);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float fmin(float __x, float __y) noexcept {return __builtin_fminf(__x, __y);}
template <class = int>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double fmin(double __x, double __y) noexcept {
return __builtin_fmin(__x, __y);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double fmin(long double __x, long double __y) noexcept {return __builtin_fminl(__x, __y);}
template <class _A1, class _A2>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::__enable_if_t
<
std::is_arithmetic<_A1>::value &&
std::is_arithmetic<_A2>::value,
std::__promote<_A1, _A2>
>::type
fmin(_A1 __x, _A2 __y) noexcept
{
typedef typename std::__promote<_A1, _A2>::type __result_type;
static_assert((!(std::_IsSame<_A1, __result_type>::value &&
std::_IsSame<_A2, __result_type>::value)), "");
return ::fmin((__result_type)__x, (__result_type)__y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float hypot(float __x, float __y) noexcept {return __builtin_hypotf(__x, __y);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double hypot(double __x, double __y) noexcept {
return __builtin_hypot(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double hypot(long double __x, long double __y) noexcept {return __builtin_hypotl(__x, __y);}
template <class _A1, class _A2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::__enable_if_t
<
std::is_arithmetic<_A1>::value &&
std::is_arithmetic<_A2>::value,
std::__promote<_A1, _A2>
>::type
hypot(_A1 __x, _A2 __y) noexcept
{
typedef typename std::__promote<_A1, _A2>::type __result_type;
static_assert((!(std::_IsSame<_A1, __result_type>::value &&
std::_IsSame<_A2, __result_type>::value)), "");
return ::hypot((__result_type)__x, (__result_type)__y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) int ilogb(float __x) noexcept {return __builtin_ilogbf(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double ilogb(double __x) noexcept {
return __builtin_ilogb(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) int ilogb(long double __x) noexcept {return __builtin_ilogbl(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, int>::type
ilogb(_A1 __x) noexcept {return __builtin_ilogb((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float lgamma(float __x) noexcept {return __builtin_lgammaf(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double lgamma(double __x) noexcept {
return __builtin_lgamma(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double lgamma(long double __x) noexcept {return __builtin_lgammal(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
lgamma(_A1 __x) noexcept {return __builtin_lgamma((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long long llrint(float __x) noexcept
{
return __builtin_llrintf(__x);
}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long long llrint(double __x) noexcept {
return __builtin_llrint(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long long llrint(long double __x) noexcept
{
return __builtin_llrintl(__x);
}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, long long>::type
llrint(_A1 __x) noexcept
{
return __builtin_llrint((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long long llround(float __x) noexcept
{
return __builtin_llroundf(__x);
}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long long llround(double __x) noexcept {
return __builtin_llround(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long long llround(long double __x) noexcept
{
return __builtin_llroundl(__x);
}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, long long>::type
llround(_A1 __x) noexcept
{
return __builtin_llround((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float log1p(float __x) noexcept {return __builtin_log1pf(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double log1p(double __x) noexcept {
return __builtin_log1p(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double log1p(long double __x) noexcept {return __builtin_log1pl(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
log1p(_A1 __x) noexcept {return __builtin_log1p((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float log2(float __x) noexcept {return __builtin_log2f(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double log2(double __x) noexcept {
return __builtin_log2(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double log2(long double __x) noexcept {return __builtin_log2l(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
log2(_A1 __x) noexcept {return __builtin_log2((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float logb(float __x) noexcept {return __builtin_logbf(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double logb(double __x) noexcept {
return __builtin_logb(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double logb(long double __x) noexcept {return __builtin_logbl(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
logb(_A1 __x) noexcept {return __builtin_logb((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long lrint(float __x) noexcept
{
return __builtin_lrintf(__x);
}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long lrint(double __x) noexcept {
return __builtin_lrint(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long lrint(long double __x) noexcept
{
return __builtin_lrintl(__x);
}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, long>::type
lrint(_A1 __x) noexcept
{
return __builtin_lrint((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long lround(float __x) noexcept
{
return __builtin_lroundf(__x);
}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long lround(double __x) noexcept {
return __builtin_lround(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long lround(long double __x) noexcept
{
return __builtin_lroundl(__x);
}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, long>::type
lround(_A1 __x) noexcept
{
return __builtin_lround((double)__x);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float nearbyint(float __x) noexcept {return __builtin_nearbyintf(__x);}
template <class = int>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double nearbyint(double __x) noexcept {
return __builtin_nearbyint(__x);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double nearbyint(long double __x) noexcept {return __builtin_nearbyintl(__x);}
template <class _A1>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
nearbyint(_A1 __x) noexcept {return __builtin_nearbyint((double)__x);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float nextafter(float __x, float __y) noexcept {return __builtin_nextafterf(__x, __y);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double nextafter(double __x, double __y) noexcept {
return __builtin_nextafter(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double nextafter(long double __x, long double __y) noexcept {return __builtin_nextafterl(__x, __y);}
template <class _A1, class _A2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::__enable_if_t
<
std::is_arithmetic<_A1>::value &&
std::is_arithmetic<_A2>::value,
std::__promote<_A1, _A2>
>::type
nextafter(_A1 __x, _A2 __y) noexcept
{
typedef typename std::__promote<_A1, _A2>::type __result_type;
static_assert((!(std::_IsSame<_A1, __result_type>::value &&
std::_IsSame<_A2, __result_type>::value)), "");
return ::nextafter((__result_type)__x, (__result_type)__y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float nexttoward(float __x, long double __y) noexcept {return __builtin_nexttowardf(__x, __y);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double nexttoward(double __x, long double __y) noexcept {
return __builtin_nexttoward(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double nexttoward(long double __x, long double __y) noexcept {return __builtin_nexttowardl(__x, __y);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
nexttoward(_A1 __x, long double __y) noexcept {return __builtin_nexttoward((double)__x, __y);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float remainder(float __x, float __y) noexcept {return __builtin_remainderf(__x, __y);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double remainder(double __x, double __y) noexcept {
return __builtin_remainder(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double remainder(long double __x, long double __y) noexcept {return __builtin_remainderl(__x, __y);}
template <class _A1, class _A2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::__enable_if_t
<
std::is_arithmetic<_A1>::value &&
std::is_arithmetic<_A2>::value,
std::__promote<_A1, _A2>
>::type
remainder(_A1 __x, _A2 __y) noexcept
{
typedef typename std::__promote<_A1, _A2>::type __result_type;
static_assert((!(std::_IsSame<_A1, __result_type>::value &&
std::_IsSame<_A2, __result_type>::value)), "");
return ::remainder((__result_type)__x, (__result_type)__y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float remquo(float __x, float __y, int* __z) noexcept {return __builtin_remquof(__x, __y, __z);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double remquo(double __x, double __y, int* __z) noexcept {
return __builtin_remquo(__x, __y, __z);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double remquo(long double __x, long double __y, int* __z) noexcept {return __builtin_remquol(__x, __y, __z);}
template <class _A1, class _A2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::__enable_if_t
<
std::is_arithmetic<_A1>::value &&
std::is_arithmetic<_A2>::value,
std::__promote<_A1, _A2>
>::type
remquo(_A1 __x, _A2 __y, int* __z) noexcept
{
typedef typename std::__promote<_A1, _A2>::type __result_type;
static_assert((!(std::_IsSame<_A1, __result_type>::value &&
std::_IsSame<_A2, __result_type>::value)), "");
return ::remquo((__result_type)__x, (__result_type)__y, __z);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float rint(float __x) noexcept
{
return __builtin_rintf(__x);
}
template <class = int>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double rint(double __x) noexcept {
return __builtin_rint(__x);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double rint(long double __x) noexcept
{
return __builtin_rintl(__x);
}
template <class _A1>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
rint(_A1 __x) noexcept
{
return __builtin_rint((double)__x);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float round(float __x) noexcept
{
return __builtin_round(__x);
}
template <class = int>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double round(double __x) noexcept {
return __builtin_round(__x);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double round(long double __x) noexcept
{
return __builtin_roundl(__x);
}
template <class _A1>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
round(_A1 __x) noexcept
{
return __builtin_round((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float scalbln(float __x, long __y) noexcept {return __builtin_scalblnf(__x, __y);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double scalbln(double __x, long __y) noexcept {
return __builtin_scalbln(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double scalbln(long double __x, long __y) noexcept {return __builtin_scalblnl(__x, __y);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
scalbln(_A1 __x, long __y) noexcept {return __builtin_scalbln((double)__x, __y);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float scalbn(float __x, int __y) noexcept {return __builtin_scalbnf(__x, __y);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double scalbn(double __x, int __y) noexcept {
return __builtin_scalbn(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double scalbn(long double __x, int __y) noexcept {return __builtin_scalbnl(__x, __y);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
scalbn(_A1 __x, int __y) noexcept {return __builtin_scalbn((double)__x, __y);}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float tgamma(float __x) noexcept {return __builtin_tgammaf(__x);}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double tgamma(double __x) noexcept {
return __builtin_tgamma(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double tgamma(long double __x) noexcept {return __builtin_tgammal(__x);}
template <class _A1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
tgamma(_A1 __x) noexcept {return __builtin_tgamma((double)__x);}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float trunc(float __x) noexcept
{
return __builtin_trunc(__x);
}
template <class = int>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double trunc(double __x) noexcept {
return __builtin_trunc(__x);
}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double trunc(long double __x) noexcept
{
return __builtin_truncl(__x);
}
template <class _A1>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::enable_if<std::is_integral<_A1>::value, double>::type
trunc(_A1 __x) noexcept
{
return __builtin_trunc((double)__x);
}
}
# 319 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cmath" 2 3
# 330 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cmath" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__undef_macros" 1 3
# 334 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cmath" 2 3
namespace std { inline namespace __1 {
using ::signbit __attribute__((__using_if_exists__));
using ::fpclassify __attribute__((__using_if_exists__));
using ::isfinite __attribute__((__using_if_exists__));
using ::isinf __attribute__((__using_if_exists__));
using ::isnan __attribute__((__using_if_exists__));
using ::isnormal __attribute__((__using_if_exists__));
using ::isgreater __attribute__((__using_if_exists__));
using ::isgreaterequal __attribute__((__using_if_exists__));
using ::isless __attribute__((__using_if_exists__));
using ::islessequal __attribute__((__using_if_exists__));
using ::islessgreater __attribute__((__using_if_exists__));
using ::isunordered __attribute__((__using_if_exists__));
using ::isunordered __attribute__((__using_if_exists__));
using ::float_t __attribute__((__using_if_exists__));
using ::double_t __attribute__((__using_if_exists__));
using ::abs __attribute__((__using_if_exists__));
using ::acos __attribute__((__using_if_exists__));
using ::acosf __attribute__((__using_if_exists__));
using ::asin __attribute__((__using_if_exists__));
using ::asinf __attribute__((__using_if_exists__));
using ::atan __attribute__((__using_if_exists__));
using ::atanf __attribute__((__using_if_exists__));
using ::atan2 __attribute__((__using_if_exists__));
using ::atan2f __attribute__((__using_if_exists__));
using ::ceil __attribute__((__using_if_exists__));
using ::ceilf __attribute__((__using_if_exists__));
using ::cos __attribute__((__using_if_exists__));
using ::cosf __attribute__((__using_if_exists__));
using ::cosh __attribute__((__using_if_exists__));
using ::coshf __attribute__((__using_if_exists__));
using ::exp __attribute__((__using_if_exists__));
using ::expf __attribute__((__using_if_exists__));
using ::fabs __attribute__((__using_if_exists__));
using ::fabsf __attribute__((__using_if_exists__));
using ::floor __attribute__((__using_if_exists__));
using ::floorf __attribute__((__using_if_exists__));
using ::fmod __attribute__((__using_if_exists__));
using ::fmodf __attribute__((__using_if_exists__));
using ::frexp __attribute__((__using_if_exists__));
using ::frexpf __attribute__((__using_if_exists__));
using ::ldexp __attribute__((__using_if_exists__));
using ::ldexpf __attribute__((__using_if_exists__));
using ::log __attribute__((__using_if_exists__));
using ::logf __attribute__((__using_if_exists__));
using ::log10 __attribute__((__using_if_exists__));
using ::log10f __attribute__((__using_if_exists__));
using ::modf __attribute__((__using_if_exists__));
using ::modff __attribute__((__using_if_exists__));
using ::pow __attribute__((__using_if_exists__));
using ::powf __attribute__((__using_if_exists__));
using ::sin __attribute__((__using_if_exists__));
using ::sinf __attribute__((__using_if_exists__));
using ::sinh __attribute__((__using_if_exists__));
using ::sinhf __attribute__((__using_if_exists__));
using ::sqrt __attribute__((__using_if_exists__));
using ::sqrtf __attribute__((__using_if_exists__));
using ::tan __attribute__((__using_if_exists__));
using ::tanf __attribute__((__using_if_exists__));
using ::tanh __attribute__((__using_if_exists__));
using ::tanhf __attribute__((__using_if_exists__));
using ::acosh __attribute__((__using_if_exists__));
using ::acoshf __attribute__((__using_if_exists__));
using ::asinh __attribute__((__using_if_exists__));
using ::asinhf __attribute__((__using_if_exists__));
using ::atanh __attribute__((__using_if_exists__));
using ::atanhf __attribute__((__using_if_exists__));
using ::cbrt __attribute__((__using_if_exists__));
using ::cbrtf __attribute__((__using_if_exists__));
using ::copysign __attribute__((__using_if_exists__));
using ::copysignf __attribute__((__using_if_exists__));
using ::erf __attribute__((__using_if_exists__));
using ::erff __attribute__((__using_if_exists__));
using ::erfc __attribute__((__using_if_exists__));
using ::erfcf __attribute__((__using_if_exists__));
using ::exp2 __attribute__((__using_if_exists__));
using ::exp2f __attribute__((__using_if_exists__));
using ::expm1 __attribute__((__using_if_exists__));
using ::expm1f __attribute__((__using_if_exists__));
using ::fdim __attribute__((__using_if_exists__));
using ::fdimf __attribute__((__using_if_exists__));
using ::fmaf __attribute__((__using_if_exists__));
using ::fma __attribute__((__using_if_exists__));
using ::fmax __attribute__((__using_if_exists__));
using ::fmaxf __attribute__((__using_if_exists__));
using ::fmin __attribute__((__using_if_exists__));
using ::fminf __attribute__((__using_if_exists__));
using ::hypot __attribute__((__using_if_exists__));
using ::hypotf __attribute__((__using_if_exists__));
using ::ilogb __attribute__((__using_if_exists__));
using ::ilogbf __attribute__((__using_if_exists__));
using ::lgamma __attribute__((__using_if_exists__));
using ::lgammaf __attribute__((__using_if_exists__));
using ::llrint __attribute__((__using_if_exists__));
using ::llrintf __attribute__((__using_if_exists__));
using ::llround __attribute__((__using_if_exists__));
using ::llroundf __attribute__((__using_if_exists__));
using ::log1p __attribute__((__using_if_exists__));
using ::log1pf __attribute__((__using_if_exists__));
using ::log2 __attribute__((__using_if_exists__));
using ::log2f __attribute__((__using_if_exists__));
using ::logb __attribute__((__using_if_exists__));
using ::logbf __attribute__((__using_if_exists__));
using ::lrint __attribute__((__using_if_exists__));
using ::lrintf __attribute__((__using_if_exists__));
using ::lround __attribute__((__using_if_exists__));
using ::lroundf __attribute__((__using_if_exists__));
using ::nan __attribute__((__using_if_exists__));
using ::nanf __attribute__((__using_if_exists__));
using ::nearbyint __attribute__((__using_if_exists__));
using ::nearbyintf __attribute__((__using_if_exists__));
using ::nextafter __attribute__((__using_if_exists__));
using ::nextafterf __attribute__((__using_if_exists__));
using ::nexttoward __attribute__((__using_if_exists__));
using ::nexttowardf __attribute__((__using_if_exists__));
using ::remainder __attribute__((__using_if_exists__));
using ::remainderf __attribute__((__using_if_exists__));
using ::remquo __attribute__((__using_if_exists__));
using ::remquof __attribute__((__using_if_exists__));
using ::rint __attribute__((__using_if_exists__));
using ::rintf __attribute__((__using_if_exists__));
using ::round __attribute__((__using_if_exists__));
using ::roundf __attribute__((__using_if_exists__));
using ::scalbln __attribute__((__using_if_exists__));
using ::scalblnf __attribute__((__using_if_exists__));
using ::scalbn __attribute__((__using_if_exists__));
using ::scalbnf __attribute__((__using_if_exists__));
using ::tgamma __attribute__((__using_if_exists__));
using ::tgammaf __attribute__((__using_if_exists__));
using ::trunc __attribute__((__using_if_exists__));
using ::truncf __attribute__((__using_if_exists__));
using ::acosl __attribute__((__using_if_exists__));
using ::asinl __attribute__((__using_if_exists__));
using ::atanl __attribute__((__using_if_exists__));
using ::atan2l __attribute__((__using_if_exists__));
using ::ceill __attribute__((__using_if_exists__));
using ::cosl __attribute__((__using_if_exists__));
using ::coshl __attribute__((__using_if_exists__));
using ::expl __attribute__((__using_if_exists__));
using ::fabsl __attribute__((__using_if_exists__));
using ::floorl __attribute__((__using_if_exists__));
using ::fmodl __attribute__((__using_if_exists__));
using ::frexpl __attribute__((__using_if_exists__));
using ::ldexpl __attribute__((__using_if_exists__));
using ::logl __attribute__((__using_if_exists__));
using ::log10l __attribute__((__using_if_exists__));
using ::modfl __attribute__((__using_if_exists__));
using ::powl __attribute__((__using_if_exists__));
using ::sinl __attribute__((__using_if_exists__));
using ::sinhl __attribute__((__using_if_exists__));
using ::sqrtl __attribute__((__using_if_exists__));
using ::tanl __attribute__((__using_if_exists__));
using ::tanhl __attribute__((__using_if_exists__));
using ::acoshl __attribute__((__using_if_exists__));
using ::asinhl __attribute__((__using_if_exists__));
using ::atanhl __attribute__((__using_if_exists__));
using ::cbrtl __attribute__((__using_if_exists__));
using ::copysignl __attribute__((__using_if_exists__));
using ::erfl __attribute__((__using_if_exists__));
using ::erfcl __attribute__((__using_if_exists__));
using ::exp2l __attribute__((__using_if_exists__));
using ::expm1l __attribute__((__using_if_exists__));
using ::fdiml __attribute__((__using_if_exists__));
using ::fmal __attribute__((__using_if_exists__));
using ::fmaxl __attribute__((__using_if_exists__));
using ::fminl __attribute__((__using_if_exists__));
using ::hypotl __attribute__((__using_if_exists__));
using ::ilogbl __attribute__((__using_if_exists__));
using ::lgammal __attribute__((__using_if_exists__));
using ::llrintl __attribute__((__using_if_exists__));
using ::llroundl __attribute__((__using_if_exists__));
using ::log1pl __attribute__((__using_if_exists__));
using ::log2l __attribute__((__using_if_exists__));
using ::logbl __attribute__((__using_if_exists__));
using ::lrintl __attribute__((__using_if_exists__));
using ::lroundl __attribute__((__using_if_exists__));
using ::nanl __attribute__((__using_if_exists__));
using ::nearbyintl __attribute__((__using_if_exists__));
using ::nextafterl __attribute__((__using_if_exists__));
using ::nexttowardl __attribute__((__using_if_exists__));
using ::remainderl __attribute__((__using_if_exists__));
using ::remquol __attribute__((__using_if_exists__));
using ::rintl __attribute__((__using_if_exists__));
using ::roundl __attribute__((__using_if_exists__));
using ::scalblnl __attribute__((__using_if_exists__));
using ::scalbnl __attribute__((__using_if_exists__));
using ::tgammal __attribute__((__using_if_exists__));
using ::truncl __attribute__((__using_if_exists__));
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float hypot( float __x, float __y, float __z ) { return sqrt(__x*__x + __y*__y + __z*__z); }
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double hypot( double __x, double __y, double __z ) { return sqrt(__x*__x + __y*__y + __z*__z); }
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double hypot( long double __x, long double __y, long double __z ) { return sqrt(__x*__x + __y*__y + __z*__z); }
template <class _A1, class _A2, class _A3>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename enable_if_t
<
is_arithmetic<_A1>::value &&
is_arithmetic<_A2>::value &&
is_arithmetic<_A3>::value,
__promote<_A1, _A2, _A3>
>::type
hypot(_A1 __lcpp_x, _A2 __lcpp_y, _A3 __lcpp_z) noexcept
{
typedef typename __promote<_A1, _A2, _A3>::type __result_type;
static_assert((!(is_same<_A1, __result_type>::value &&
is_same<_A2, __result_type>::value &&
is_same<_A3, __result_type>::value)), "");
return std::hypot((__result_type)__lcpp_x, (__result_type)__lcpp_y, (__result_type)__lcpp_z);
}
template <class _A1>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr typename enable_if<is_floating_point<_A1>::value, bool>::type
__constexpr_isnan(_A1 __lcpp_x) noexcept
{
return __builtin_isnan(__lcpp_x);
}
template <class _A1>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr typename enable_if<!is_floating_point<_A1>::value, bool>::type
__constexpr_isnan(_A1 __lcpp_x) noexcept
{
return std::isnan(__lcpp_x);
}
template <class _A1>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr typename enable_if<is_floating_point<_A1>::value, bool>::type
__constexpr_isinf(_A1 __lcpp_x) noexcept
{
return __builtin_isinf(__lcpp_x);
}
template <class _A1>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr typename enable_if<!is_floating_point<_A1>::value, bool>::type
__constexpr_isinf(_A1 __lcpp_x) noexcept
{
return std::isinf(__lcpp_x);
}
template <class _A1>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr typename enable_if<is_floating_point<_A1>::value, bool>::type
__constexpr_isfinite(_A1 __lcpp_x) noexcept
{
return __builtin_isfinite(__lcpp_x);
}
template <class _A1>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr typename enable_if<!is_floating_point<_A1>::value, bool>::type
__constexpr_isfinite(_A1 __lcpp_x) noexcept
{
return __builtin_isfinite(__lcpp_x);
}
constexpr inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) float __constexpr_copysign(float __x, float __y) noexcept {
return __builtin_copysignf(__x, __y);
}
constexpr inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) double __constexpr_copysign(double __x, double __y) noexcept {
return __builtin_copysign(__x, __y);
}
constexpr inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) long double
__constexpr_copysign(long double __x, long double __y) noexcept {
return __builtin_copysignl(__x, __y);
}
template <class _A1, class _A2>
constexpr inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename std::__enable_if_t<std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value,
std::__promote<_A1, _A2> >::type
__constexpr_copysign(_A1 __x, _A2 __y) noexcept {
typedef typename std::__promote<_A1, _A2>::type __result_type;
static_assert((!(std::_IsSame<_A1, __result_type>::value && std::_IsSame<_A2, __result_type>::value)), "");
return __builtin_copysign((__result_type)__x, (__result_type)__y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr float __constexpr_fabs(float __x) noexcept {
return __builtin_fabsf(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr double __constexpr_fabs(double __x) noexcept {
return __builtin_fabs(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr long double __constexpr_fabs(long double __x) noexcept {
return __builtin_fabsl(__x);
}
template <class _Tp, __enable_if_t<is_integral<_Tp>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr double __constexpr_fabs(_Tp __x) noexcept {
return __builtin_fabs(static_cast<double>(__x));
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr float __constexpr_fmax(float __x, float __y) noexcept {
# 681 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cmath" 3
return __builtin_fmaxf(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr double __constexpr_fmax(double __x, double __y) noexcept {
# 694 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cmath" 3
return __builtin_fmax(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr long double
__constexpr_fmax(long double __x, long double __y) noexcept {
# 708 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cmath" 3
return __builtin_fmaxl(__x, __y);
}
template <class _Tp, class _Up, __enable_if_t<is_arithmetic<_Tp>::value && is_arithmetic<_Up>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr typename __promote<_Tp, _Up>::type
__constexpr_fmax(_Tp __x, _Up __y) noexcept {
using __result_type = typename __promote<_Tp, _Up>::type;
return std::__constexpr_fmax(static_cast<__result_type>(__x), static_cast<__result_type>(__y));
}
template <class _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr _Tp __constexpr_logb(_Tp __x) {
if (__libcpp_is_constant_evaluated()) {
if (__x == _Tp(0)) {
return -numeric_limits<_Tp>::infinity();
}
if (std::__constexpr_isinf(__x))
return numeric_limits<_Tp>::infinity();
if (std::__constexpr_isnan(__x))
return numeric_limits<_Tp>::quiet_NaN();
__x = std::__constexpr_fabs(__x);
unsigned long long __exp = 0;
while (__x >= numeric_limits<_Tp>::radix) {
__x /= numeric_limits<_Tp>::radix;
__exp += 1;
}
return _Tp(__exp);
}
return __builtin_logb(__x);
}
template <class _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) _Tp __constexpr_scalbn(_Tp __x, int __exp) {
if (__libcpp_is_constant_evaluated()) {
if (__x == _Tp(0))
return __x;
if (std::__constexpr_isinf(__x))
return __x;
if (__exp == _Tp(0))
return __x;
if (std::__constexpr_isnan(__x))
return numeric_limits<_Tp>::quiet_NaN();
_Tp __mult(1);
if (__exp > 0) {
__mult = numeric_limits<_Tp>::radix;
--__exp;
} else {
++__exp;
__exp = -__exp;
__mult /= numeric_limits<_Tp>::radix;
}
while (__exp > 0) {
if (!(__exp & 1)) {
__mult *= __mult;
__exp >>= 1;
} else {
__x *= __mult;
--__exp;
}
}
return __x;
}
return __builtin_scalbn(__x, __exp);
}
# 829 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cmath" 3
}}
# 21 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/strong_order.h" 2 3
# 26 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/strong_order.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__undef_macros" 1 3
# 30 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/strong_order.h" 2 3
namespace std { inline namespace __1 {
# 135 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/strong_order.h" 3
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/weak_order.h" 2 3
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/weak_order.h" 3
namespace std { inline namespace __1 {
# 100 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/weak_order.h" 3
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/partial_order.h" 2 3
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/partial_order.h" 3
namespace std { inline namespace __1 {
# 72 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/partial_order.h" 3
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/compare_partial_order_fallback.h" 2 3
# 22 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/compare_partial_order_fallback.h" 3
namespace std { inline namespace __1 {
# 72 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/compare_partial_order_fallback.h" 3
}}
# 146 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/compare" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/compare_strong_order_fallback.h" 1 3
# 22 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/compare_strong_order_fallback.h" 3
namespace std { inline namespace __1 {
# 69 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/compare_strong_order_fallback.h" 3
}}
# 147 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/compare" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/compare_three_way_result.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/compare_three_way_result.h" 3
namespace std { inline namespace __1 {
# 42 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/compare_three_way_result.h" 3
}}
# 149 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/compare" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/compare_weak_order_fallback.h" 1 3
# 22 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/compare_weak_order_fallback.h" 3
namespace std { inline namespace __1 {
# 69 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/compare_weak_order_fallback.h" 3
}}
# 150 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/compare" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/is_eq.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/is_eq.h" 3
namespace std { inline namespace __1 {
# 32 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__compare/is_eq.h" 3
}}
# 151 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/compare" 2 3
# 161 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/compare" 3
# 266 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/utility" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/initializer_list" 1 3
# 51 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/initializer_list" 3
namespace std
{
template<class _Ep>
class __attribute__((__type_visibility__("default"))) initializer_list
{
const _Ep* __begin_;
size_t __size_;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr
initializer_list(const _Ep* __b, size_t __s) noexcept
: __begin_(__b),
__size_(__s)
{}
public:
typedef _Ep value_type;
typedef const _Ep& reference;
typedef const _Ep& const_reference;
typedef size_t size_type;
typedef const _Ep* iterator;
typedef const _Ep* const_iterator;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr
initializer_list() noexcept : __begin_(nullptr), __size_(0) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr
size_t size() const noexcept {return __size_;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr
const _Ep* begin() const noexcept {return __begin_;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr
const _Ep* end() const noexcept {return __begin_ + __size_;}
};
template<class _Ep>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr
const _Ep*
begin(initializer_list<_Ep> __il) noexcept
{
return __il.begin();
}
template<class _Ep>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr
const _Ep*
end(initializer_list<_Ep> __il) noexcept
{
return __il.end();
}
}
# 267 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/utility" 2 3
# 274 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/utility" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cstdlib" 1 3
# 87 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cstdlib" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stdlib.h" 1 3
# 88 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cstdlib" 2 3
# 99 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cstdlib" 3
namespace std { inline namespace __1 {
using ::size_t __attribute__((__using_if_exists__));
using ::div_t __attribute__((__using_if_exists__));
using ::ldiv_t __attribute__((__using_if_exists__));
using ::lldiv_t __attribute__((__using_if_exists__));
using ::atof __attribute__((__using_if_exists__));
using ::atoi __attribute__((__using_if_exists__));
using ::atol __attribute__((__using_if_exists__));
using ::atoll __attribute__((__using_if_exists__));
using ::strtod __attribute__((__using_if_exists__));
using ::strtof __attribute__((__using_if_exists__));
using ::strtold __attribute__((__using_if_exists__));
using ::strtol __attribute__((__using_if_exists__));
using ::strtoll __attribute__((__using_if_exists__));
using ::strtoul __attribute__((__using_if_exists__));
using ::strtoull __attribute__((__using_if_exists__));
using ::rand __attribute__((__using_if_exists__));
using ::srand __attribute__((__using_if_exists__));
using ::calloc __attribute__((__using_if_exists__));
using ::free __attribute__((__using_if_exists__));
using ::malloc __attribute__((__using_if_exists__));
using ::realloc __attribute__((__using_if_exists__));
using ::abort __attribute__((__using_if_exists__));
using ::atexit __attribute__((__using_if_exists__));
using ::exit __attribute__((__using_if_exists__));
using ::_Exit __attribute__((__using_if_exists__));
using ::getenv __attribute__((__using_if_exists__));
using ::system __attribute__((__using_if_exists__));
using ::bsearch __attribute__((__using_if_exists__));
using ::qsort __attribute__((__using_if_exists__));
using ::abs __attribute__((__using_if_exists__));
using ::labs __attribute__((__using_if_exists__));
using ::llabs __attribute__((__using_if_exists__));
using ::div __attribute__((__using_if_exists__));
using ::ldiv __attribute__((__using_if_exists__));
using ::lldiv __attribute__((__using_if_exists__));
using ::mblen __attribute__((__using_if_exists__));
using ::mbtowc __attribute__((__using_if_exists__));
using ::wctomb __attribute__((__using_if_exists__));
using ::mbstowcs __attribute__((__using_if_exists__));
using ::wcstombs __attribute__((__using_if_exists__));
using ::at_quick_exit __attribute__((__using_if_exists__));
using ::quick_exit __attribute__((__using_if_exists__));
using ::aligned_alloc __attribute__((__using_if_exists__));
}}
# 278 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/utility" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/iosfwd" 1 3
# 99 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/iosfwd" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/string.h" 1 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/string.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/memory_resource.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/memory_resource.h" 3
namespace std { inline namespace __1 {
namespace pmr {
template <class _ValueType>
class __attribute__((__type_visibility__("default"))) polymorphic_allocator;
}
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/string.h" 2 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__fwd/string.h" 3
namespace std { inline namespace __1 {
template <class _CharT>
struct __attribute__((__type_visibility__("default"))) char_traits;
template <>
struct char_traits<char>;
template <>
struct char_traits<char16_t>;
template <>
struct char_traits<char32_t>;
template <>
struct char_traits<wchar_t>;
template <class _Tp>
class __attribute__((__type_visibility__("default"))) allocator;
template <class _CharT, class _Traits = char_traits<_CharT>, class _Allocator = allocator<_CharT> >
class __attribute__((__type_visibility__("default"))) basic_string;
using string = basic_string<char>;
using wstring = basic_string<wchar_t>;
using u16string = basic_string<char16_t>;
using u32string = basic_string<char32_t>;
namespace pmr {
template <class _CharT, class _Traits = char_traits<_CharT>>
using basic_string = std::basic_string<_CharT, _Traits, polymorphic_allocator<_CharT>>;
using string = basic_string<char>;
using wstring = basic_string<wchar_t>;
using u16string = basic_string<char16_t>;
using u32string = basic_string<char32_t>;
}
template <class _CharT, class _Traits, class _Allocator>
class __attribute__((__preferred_name__(string)))
__attribute__((__preferred_name__(wstring)))
__attribute__((__preferred_name__(u16string)))
__attribute__((__preferred_name__(u32string)))
__attribute__((__preferred_name__(pmr::string)))
__attribute__((__preferred_name__(pmr::wstring)))
__attribute__((__preferred_name__(pmr::u16string)))
__attribute__((__preferred_name__(pmr::u32string)))
basic_string;
}}
# 100 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/iosfwd" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__mbstate_t.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__mbstate_t.h" 3
# 29 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__mbstate_t.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/wchar.h" 1 3
# 109 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/wchar.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stddef.h" 1 3
# 110 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/wchar.h" 2 3
# 117 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/wchar.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/wchar.h" 1 3
# 27 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/wchar.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/libc-header-start.h" 1 3
# 28 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/wchar.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stddef.h" 1 3
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stddef.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build0/lib/clang/17/include/stddef.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stddef.h" 2 3
# 36 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/wchar.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build0/lib/clang/17/include/stdarg.h" 1 3
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build0/lib/clang/17/include/stdarg.h" 3
typedef __builtin_va_list __gnuc_va_list;
# 39 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/wchar.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/wint_t.h" 1 3
# 20 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/wint_t.h" 3
typedef unsigned int wint_t;
# 42 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/wchar.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/mbstate_t.h" 1 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/__mbstate_t.h" 1 3
# 13 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/__mbstate_t.h" 3
typedef struct
{
int __count;
union
{
unsigned int __wch;
char __wchb[4];
} __value;
} __mbstate_t;
# 5 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/mbstate_t.h" 2 3
typedef __mbstate_t mbstate_t;
# 43 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/wchar.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/__FILE.h" 1 3
struct _IO_FILE;
typedef struct _IO_FILE __FILE;
# 44 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/wchar.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/types/FILE.h" 1 3
struct _IO_FILE;
typedef struct _IO_FILE FILE;
# 47 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/wchar.h" 2 3
# 79 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/wchar.h" 3
extern "C" {
struct tm;
extern wchar_t *wcscpy (wchar_t *__restrict __dest,
const wchar_t *__restrict __src)
noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern wchar_t *wcsncpy (wchar_t *__restrict __dest,
const wchar_t *__restrict __src, size_t __n)
noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern wchar_t *wcscat (wchar_t *__restrict __dest,
const wchar_t *__restrict __src)
noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern wchar_t *wcsncat (wchar_t *__restrict __dest,
const wchar_t *__restrict __src, size_t __n)
noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern int wcscmp (const wchar_t *__s1, const wchar_t *__s2)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern int wcscasecmp (const wchar_t *__s1, const wchar_t *__s2) noexcept (true);
extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2,
size_t __n) noexcept (true);
extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2,
locale_t __loc) noexcept (true);
extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2,
size_t __n, locale_t __loc) noexcept (true);
extern int wcscoll (const wchar_t *__s1, const wchar_t *__s2) noexcept (true);
extern size_t wcsxfrm (wchar_t *__restrict __s1,
const wchar_t *__restrict __s2, size_t __n) noexcept (true);
extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2,
locale_t __loc) noexcept (true);
extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2,
size_t __n, locale_t __loc) noexcept (true);
extern wchar_t *wcsdup (const wchar_t *__s) noexcept (true)
__attribute__ ((__malloc__)) ;
extern "C++" wchar_t *wcschr (wchar_t *__wcs, wchar_t __wc)
noexcept (true) __asm ("wcschr") __attribute__ ((__pure__));
extern "C++" const wchar_t *wcschr (const wchar_t *__wcs, wchar_t __wc)
noexcept (true) __asm ("wcschr") __attribute__ ((__pure__));
extern "C++" wchar_t *wcsrchr (wchar_t *__wcs, wchar_t __wc)
noexcept (true) __asm ("wcsrchr") __attribute__ ((__pure__));
extern "C++" const wchar_t *wcsrchr (const wchar_t *__wcs, wchar_t __wc)
noexcept (true) __asm ("wcsrchr") __attribute__ ((__pure__));
# 182 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/wchar.h" 3
extern wchar_t *wcschrnul (const wchar_t *__s, wchar_t __wc)
noexcept (true) __attribute__ ((__pure__));
extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject)
noexcept (true) __attribute__ ((__pure__));
extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept)
noexcept (true) __attribute__ ((__pure__));
extern "C++" wchar_t *wcspbrk (wchar_t *__wcs, const wchar_t *__accept)
noexcept (true) __asm ("wcspbrk") __attribute__ ((__pure__));
extern "C++" const wchar_t *wcspbrk (const wchar_t *__wcs,
const wchar_t *__accept)
noexcept (true) __asm ("wcspbrk") __attribute__ ((__pure__));
extern "C++" wchar_t *wcsstr (wchar_t *__haystack, const wchar_t *__needle)
noexcept (true) __asm ("wcsstr") __attribute__ ((__pure__));
extern "C++" const wchar_t *wcsstr (const wchar_t *__haystack,
const wchar_t *__needle)
noexcept (true) __asm ("wcsstr") __attribute__ ((__pure__));
extern wchar_t *wcstok (wchar_t *__restrict __s,
const wchar_t *__restrict __delim,
wchar_t **__restrict __ptr) noexcept (true);
extern size_t wcslen (const wchar_t *__s) noexcept (true) __attribute__ ((__pure__));
extern "C++" wchar_t *wcswcs (wchar_t *__haystack, const wchar_t *__needle)
noexcept (true) __asm ("wcswcs") __attribute__ ((__pure__));
extern "C++" const wchar_t *wcswcs (const wchar_t *__haystack,
const wchar_t *__needle)
noexcept (true) __asm ("wcswcs") __attribute__ ((__pure__));
# 241 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/wchar.h" 3
extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen)
noexcept (true) __attribute__ ((__pure__));
extern "C++" wchar_t *wmemchr (wchar_t *__s, wchar_t __c, size_t __n)
noexcept (true) __asm ("wmemchr") __attribute__ ((__pure__));
extern "C++" const wchar_t *wmemchr (const wchar_t *__s, wchar_t __c,
size_t __n)
noexcept (true) __asm ("wmemchr") __attribute__ ((__pure__));
extern int wmemcmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
noexcept (true) __attribute__ ((__pure__));
extern wchar_t *wmemcpy (wchar_t *__restrict __s1,
const wchar_t *__restrict __s2, size_t __n) noexcept (true);
extern wchar_t *wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n)
noexcept (true);
extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) noexcept (true);
extern wchar_t *wmempcpy (wchar_t *__restrict __s1,
const wchar_t *__restrict __s2, size_t __n)
noexcept (true);
extern wint_t btowc (int __c) noexcept (true);
extern int wctob (wint_t __c) noexcept (true);
extern int mbsinit (const mbstate_t *__ps) noexcept (true) __attribute__ ((__pure__));
extern size_t mbrtowc (wchar_t *__restrict __pwc,
const char *__restrict __s, size_t __n,
mbstate_t *__restrict __p) noexcept (true);
extern size_t wcrtomb (char *__restrict __s, wchar_t __wc,
mbstate_t *__restrict __ps) noexcept (true);
extern size_t __mbrlen (const char *__restrict __s, size_t __n,
mbstate_t *__restrict __ps) noexcept (true);
extern size_t mbrlen (const char *__restrict __s, size_t __n,
mbstate_t *__restrict __ps) noexcept (true);
extern wint_t __btowc_alias (int __c) __asm ("btowc");
extern __inline __attribute__ ((__gnu_inline__)) wint_t
btowc (int __c) noexcept (true)
{ return (__builtin_constant_p (__c) && __c >= '\0' && __c <= '\x7f'
? (wint_t) __c : __btowc_alias (__c)); }
extern int __wctob_alias (wint_t __c) __asm ("wctob");
extern __inline __attribute__ ((__gnu_inline__)) int
wctob (wint_t __wc) noexcept (true)
{ return (__builtin_constant_p (__wc) && __wc >= L'\0' && __wc <= L'\x7f'
? (int) __wc : __wctob_alias (__wc)); }
extern __inline __attribute__ ((__gnu_inline__)) size_t
mbrlen (const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) noexcept (true)
{ return (__ps != __null
? mbrtowc (__null, __s, __n, __ps) : __mbrlen (__s, __n, __null)); }
extern size_t mbsrtowcs (wchar_t *__restrict __dst,
const char **__restrict __src, size_t __len,
mbstate_t *__restrict __ps) noexcept (true);
extern size_t wcsrtombs (char *__restrict __dst,
const wchar_t **__restrict __src, size_t __len,
mbstate_t *__restrict __ps) noexcept (true);
extern size_t mbsnrtowcs (wchar_t *__restrict __dst,
const char **__restrict __src, size_t __nmc,
size_t __len, mbstate_t *__restrict __ps) noexcept (true);
extern size_t wcsnrtombs (char *__restrict __dst,
const wchar_t **__restrict __src,
size_t __nwc, size_t __len,
mbstate_t *__restrict __ps) noexcept (true);
extern int wcwidth (wchar_t __c) noexcept (true);
extern int wcswidth (const wchar_t *__s, size_t __n) noexcept (true);
extern double wcstod (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr) noexcept (true);
extern float wcstof (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr) noexcept (true);
extern long double wcstold (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr) noexcept (true);
# 397 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/wchar.h" 3
extern _Float32 wcstof32 (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr) noexcept (true);
extern _Float64 wcstof64 (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr) noexcept (true);
extern _Float128 wcstof128 (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr) noexcept (true);
extern _Float32x wcstof32x (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr) noexcept (true);
extern _Float64x wcstof64x (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr) noexcept (true);
# 429 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/wchar.h" 3
extern long int wcstol (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr, int __base) noexcept (true);
extern unsigned long int wcstoul (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr, int __base)
noexcept (true);
__extension__
extern long long int wcstoll (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr, int __base)
noexcept (true);
__extension__
extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr,
int __base) noexcept (true);
__extension__
extern long long int wcstoq (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr, int __base)
noexcept (true);
__extension__
extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr,
int __base) noexcept (true);
extern long int wcstol_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr, int __base,
locale_t __loc) noexcept (true);
extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr,
int __base, locale_t __loc) noexcept (true);
__extension__
extern long long int wcstoll_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr,
int __base, locale_t __loc) noexcept (true);
__extension__
extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr,
int __base, locale_t __loc)
noexcept (true);
extern double wcstod_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr, locale_t __loc)
noexcept (true);
extern float wcstof_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr, locale_t __loc)
noexcept (true);
extern long double wcstold_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr,
locale_t __loc) noexcept (true);
# 512 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/wchar.h" 3
extern _Float32 wcstof32_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr,
locale_t __loc) noexcept (true);
extern _Float64 wcstof64_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr,
locale_t __loc) noexcept (true);
extern _Float128 wcstof128_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr,
locale_t __loc) noexcept (true);
extern _Float32x wcstof32x_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr,
locale_t __loc) noexcept (true);
extern _Float64x wcstof64x_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr,
locale_t __loc) noexcept (true);
# 552 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/wchar.h" 3
extern wchar_t *wcpcpy (wchar_t *__restrict __dest,
const wchar_t *__restrict __src) noexcept (true);
extern wchar_t *wcpncpy (wchar_t *__restrict __dest,
const wchar_t *__restrict __src, size_t __n)
noexcept (true);
# 581 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/wchar.h" 3
extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) noexcept (true)
__attribute__ ((__malloc__)) ;
extern int fwide (__FILE *__fp, int __mode) noexcept (true);
extern int fwprintf (__FILE *__restrict __stream,
const wchar_t *__restrict __format, ...)
;
extern int wprintf (const wchar_t *__restrict __format, ...)
;
extern int swprintf (wchar_t *__restrict __s, size_t __n,
const wchar_t *__restrict __format, ...)
noexcept (true) ;
extern int vfwprintf (__FILE *__restrict __s,
const wchar_t *__restrict __format,
__gnuc_va_list __arg)
;
extern int vwprintf (const wchar_t *__restrict __format,
__gnuc_va_list __arg)
;
extern int vswprintf (wchar_t *__restrict __s, size_t __n,
const wchar_t *__restrict __format,
__gnuc_va_list __arg)
noexcept (true) ;
extern int fwscanf (__FILE *__restrict __stream,
const wchar_t *__restrict __format, ...)
;
extern int wscanf (const wchar_t *__restrict __format, ...)
;
extern int swscanf (const wchar_t *__restrict __s,
const wchar_t *__restrict __format, ...)
noexcept (true) ;
# 657 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/wchar.h" 3
extern int fwscanf (__FILE *__restrict __stream, const wchar_t *__restrict __format, ...) __asm__ ("" "__isoc99_fwscanf")
;
extern int wscanf (const wchar_t *__restrict __format, ...) __asm__ ("" "__isoc99_wscanf")
;
extern int swscanf (const wchar_t *__restrict __s, const wchar_t *__restrict __format, ...) noexcept (true) __asm__ ("" "__isoc99_swscanf")
;
# 688 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/wchar.h" 3
extern int vfwscanf (__FILE *__restrict __s,
const wchar_t *__restrict __format,
__gnuc_va_list __arg)
;
extern int vwscanf (const wchar_t *__restrict __format,
__gnuc_va_list __arg)
;
extern int vswscanf (const wchar_t *__restrict __s,
const wchar_t *__restrict __format,
__gnuc_va_list __arg)
noexcept (true) ;
extern int vfwscanf (__FILE *__restrict __s, const wchar_t *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfwscanf")
;
extern int vwscanf (const wchar_t *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vwscanf")
;
extern int vswscanf (const wchar_t *__restrict __s, const wchar_t *__restrict __format, __gnuc_va_list __arg) noexcept (true) __asm__ ("" "__isoc99_vswscanf")
;
# 744 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/wchar.h" 3
extern wint_t fgetwc (__FILE *__stream);
extern wint_t getwc (__FILE *__stream);
extern wint_t getwchar (void);
extern wint_t fputwc (wchar_t __wc, __FILE *__stream);
extern wint_t putwc (wchar_t __wc, __FILE *__stream);
extern wint_t putwchar (wchar_t __wc);
extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n,
__FILE *__restrict __stream);
extern int fputws (const wchar_t *__restrict __ws,
__FILE *__restrict __stream);
extern wint_t ungetwc (wint_t __wc, __FILE *__stream);
# 799 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/wchar.h" 3
extern wint_t getwc_unlocked (__FILE *__stream);
extern wint_t getwchar_unlocked (void);
extern wint_t fgetwc_unlocked (__FILE *__stream);
extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream);
# 825 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/wchar.h" 3
extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream);
extern wint_t putwchar_unlocked (wchar_t __wc);
# 835 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/wchar.h" 3
extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n,
__FILE *__restrict __stream);
extern int fputws_unlocked (const wchar_t *__restrict __ws,
__FILE *__restrict __stream);
extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize,
const wchar_t *__restrict __format,
const struct tm *__restrict __tp) noexcept (true);
extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
const wchar_t *__restrict __format,
const struct tm *__restrict __tp,
locale_t __loc) noexcept (true);
# 875 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/wchar.h" 3
}
# 125 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/wchar.h" 2 3
# 30 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__mbstate_t.h" 2 3
namespace std { inline namespace __1 {
using ::mbstate_t __attribute__((__using_if_exists__));
}}
# 101 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/iosfwd" 2 3
# 105 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/iosfwd" 3
namespace std { inline namespace __1 {
class __attribute__((__visibility__("default"))) ios_base;
template <class _CharT, class _Traits = char_traits<_CharT> >
class __attribute__((__type_visibility__("default"))) basic_ios;
template <class _CharT, class _Traits = char_traits<_CharT> >
class __attribute__((__type_visibility__("default"))) basic_streambuf;
template <class _CharT, class _Traits = char_traits<_CharT> >
class __attribute__((__type_visibility__("default"))) basic_istream;
template <class _CharT, class _Traits = char_traits<_CharT> >
class __attribute__((__type_visibility__("default"))) basic_ostream;
template <class _CharT, class _Traits = char_traits<_CharT> >
class __attribute__((__type_visibility__("default"))) basic_iostream;
template <class _CharT, class _Traits = char_traits<_CharT>,
class _Allocator = allocator<_CharT> >
class __attribute__((__type_visibility__("default"))) basic_stringbuf;
template <class _CharT, class _Traits = char_traits<_CharT>,
class _Allocator = allocator<_CharT> >
class __attribute__((__type_visibility__("default"))) basic_istringstream;
template <class _CharT, class _Traits = char_traits<_CharT>,
class _Allocator = allocator<_CharT> >
class __attribute__((__type_visibility__("default"))) basic_ostringstream;
template <class _CharT, class _Traits = char_traits<_CharT>,
class _Allocator = allocator<_CharT> >
class __attribute__((__type_visibility__("default"))) basic_stringstream;
template <class _CharT, class _Traits = char_traits<_CharT> >
class __attribute__((__type_visibility__("default"))) basic_filebuf;
template <class _CharT, class _Traits = char_traits<_CharT> >
class __attribute__((__type_visibility__("default"))) basic_ifstream;
template <class _CharT, class _Traits = char_traits<_CharT> >
class __attribute__((__type_visibility__("default"))) basic_ofstream;
template <class _CharT, class _Traits = char_traits<_CharT> >
class __attribute__((__type_visibility__("default"))) basic_fstream;
template <class _CharT, class _Traits = char_traits<_CharT> >
class __attribute__((__type_visibility__("default"))) istreambuf_iterator;
template <class _CharT, class _Traits = char_traits<_CharT> >
class __attribute__((__type_visibility__("default"))) ostreambuf_iterator;
typedef basic_ios<char> ios;
typedef basic_ios<wchar_t> wios;
typedef basic_streambuf<char> streambuf;
typedef basic_istream<char> istream;
typedef basic_ostream<char> ostream;
typedef basic_iostream<char> iostream;
typedef basic_stringbuf<char> stringbuf;
typedef basic_istringstream<char> istringstream;
typedef basic_ostringstream<char> ostringstream;
typedef basic_stringstream<char> stringstream;
typedef basic_filebuf<char> filebuf;
typedef basic_ifstream<char> ifstream;
typedef basic_ofstream<char> ofstream;
typedef basic_fstream<char> fstream;
typedef basic_streambuf<wchar_t> wstreambuf;
typedef basic_istream<wchar_t> wistream;
typedef basic_ostream<wchar_t> wostream;
typedef basic_iostream<wchar_t> wiostream;
typedef basic_stringbuf<wchar_t> wstringbuf;
typedef basic_istringstream<wchar_t> wistringstream;
typedef basic_ostringstream<wchar_t> wostringstream;
typedef basic_stringstream<wchar_t> wstringstream;
typedef basic_filebuf<wchar_t> wfilebuf;
typedef basic_ifstream<wchar_t> wifstream;
typedef basic_ofstream<wchar_t> wofstream;
typedef basic_fstream<wchar_t> wfstream;
template <class _CharT, class _Traits>
class __attribute__((__preferred_name__(ios))) __attribute__((__preferred_name__(wios))) basic_ios;
template <class _CharT, class _Traits>
class __attribute__((__preferred_name__(streambuf))) __attribute__((__preferred_name__(wstreambuf))) basic_streambuf;
template <class _CharT, class _Traits>
class __attribute__((__preferred_name__(istream))) __attribute__((__preferred_name__(wistream))) basic_istream;
template <class _CharT, class _Traits>
class __attribute__((__preferred_name__(ostream))) __attribute__((__preferred_name__(wostream))) basic_ostream;
template <class _CharT, class _Traits>
class __attribute__((__preferred_name__(iostream))) __attribute__((__preferred_name__(wiostream))) basic_iostream;
template <class _CharT, class _Traits, class _Allocator>
class __attribute__((__preferred_name__(stringbuf))) __attribute__((__preferred_name__(wstringbuf))) basic_stringbuf;
template <class _CharT, class _Traits, class _Allocator>
class __attribute__((__preferred_name__(istringstream))) __attribute__((__preferred_name__(wistringstream))) basic_istringstream;
template <class _CharT, class _Traits, class _Allocator>
class __attribute__((__preferred_name__(ostringstream))) __attribute__((__preferred_name__(wostringstream))) basic_ostringstream;
template <class _CharT, class _Traits, class _Allocator>
class __attribute__((__preferred_name__(stringstream))) __attribute__((__preferred_name__(wstringstream))) basic_stringstream;
template <class _CharT, class _Traits>
class __attribute__((__preferred_name__(filebuf))) __attribute__((__preferred_name__(wfilebuf))) basic_filebuf;
template <class _CharT, class _Traits>
class __attribute__((__preferred_name__(ifstream))) __attribute__((__preferred_name__(wifstream))) basic_ifstream;
template <class _CharT, class _Traits>
class __attribute__((__preferred_name__(ofstream))) __attribute__((__preferred_name__(wofstream))) basic_ofstream;
template <class _CharT, class _Traits>
class __attribute__((__preferred_name__(fstream))) __attribute__((__preferred_name__(wfstream))) basic_fstream;
template <class _State> class __attribute__((__type_visibility__("default"))) fpos;
typedef fpos<mbstate_t> streampos;
typedef fpos<mbstate_t> wstreampos;
typedef fpos<mbstate_t> u16streampos;
typedef fpos<mbstate_t> u32streampos;
typedef long long streamoff;
template <class _Tp, class _Alloc = allocator<_Tp> >
class __attribute__((__type_visibility__("default"))) vector;
template <class _CharT, class _Traits>
class __save_flags
{
typedef basic_ios<_CharT, _Traits> __stream_type;
typedef typename __stream_type::fmtflags fmtflags;
__stream_type& __stream_;
fmtflags __fmtflags_;
_CharT __fill_;
__save_flags(const __save_flags&);
__save_flags& operator=(const __save_flags&);
public:
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
explicit __save_flags(__stream_type& __stream)
: __stream_(__stream),
__fmtflags_(__stream.flags()),
__fill_(__stream.fill())
{}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
~__save_flags()
{
__stream_.flags(__fmtflags_);
__stream_.fill(__fill_);
}
};
}}
# 279 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/utility" 2 3
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/ADT/BitmaskEnum.h" 2
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/MathExtras.h" 1
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/MathExtras.h"
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/ADT/bit.h" 1
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/ADT/bit.h"
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/Compiler.h" 1
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/Compiler.h"
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build_ubsan/include/llvm/Config/llvm-config.h" 1
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/Compiler.h" 2
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stddef.h" 1 3
# 21 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/Compiler.h" 2
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/ADT/bit.h" 2
# 42 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/ADT/bit.h"
namespace llvm {
template <
typename To, typename From,
typename = std::enable_if_t<sizeof(To) == sizeof(From)>,
typename = std::enable_if_t<std::is_trivially_constructible<To>::value>,
typename = std::enable_if_t<std::is_trivially_copyable<To>::value>,
typename = std::enable_if_t<std::is_trivially_copyable<From>::value>>
[[nodiscard]] inline To bit_cast(const From &from) noexcept {
return __builtin_bit_cast(To, from);
}
template <typename T, typename = std::enable_if_t<std::is_integral_v<T>>>
[[nodiscard]] constexpr T byteswap(T V) noexcept {
if constexpr (sizeof(T) == 1) {
return V;
} else if constexpr (sizeof(T) == 2) {
uint16_t UV = V;
uint16_t Hi = UV << 8;
uint16_t Lo = UV >> 8;
return Hi | Lo;
} else if constexpr (sizeof(T) == 4) {
uint32_t UV = V;
return __builtin_bswap32(UV);
# 92 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/ADT/bit.h"
} else if constexpr (sizeof(T) == 8) {
uint64_t UV = V;
return __builtin_bswap64(UV);
} else {
static_assert(!sizeof(T *), "Don't know how to handle the given type.");
return 0;
}
}
template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
[[nodiscard]] constexpr inline bool has_single_bit(T Value) noexcept {
return (Value != 0) && ((Value & (Value - 1)) == 0);
}
namespace detail {
template <typename T, std::size_t SizeOfT> struct TrailingZerosCounter {
static unsigned count(T Val) {
if (!Val)
return std::numeric_limits<T>::digits;
if (Val & 0x1)
return 0;
unsigned ZeroBits = 0;
T Shift = std::numeric_limits<T>::digits >> 1;
T Mask = std::numeric_limits<T>::max() >> Shift;
while (Shift) {
if ((Val & Mask) == 0) {
Val >>= Shift;
ZeroBits |= Shift;
}
Shift >>= 1;
Mask >>= Shift;
}
return ZeroBits;
}
};
template <typename T> struct TrailingZerosCounter<T, 4> {
static unsigned count(T Val) {
if (Val == 0)
return 32;
return __builtin_ctz(Val);
}
};
template <typename T> struct TrailingZerosCounter<T, 8> {
static unsigned count(T Val) {
if (Val == 0)
return 64;
return __builtin_ctzll(Val);
}
};
}
template <typename T> [[nodiscard]] int countr_zero(T Val) {
static_assert(std::is_unsigned_v<T>,
"Only unsigned integral types are allowed.");
return llvm::detail::TrailingZerosCounter<T, sizeof(T)>::count(Val);
}
namespace detail {
template <typename T, std::size_t SizeOfT> struct LeadingZerosCounter {
static unsigned count(T Val) {
if (!Val)
return std::numeric_limits<T>::digits;
unsigned ZeroBits = 0;
for (T Shift = std::numeric_limits<T>::digits >> 1; Shift; Shift >>= 1) {
T Tmp = Val >> Shift;
if (Tmp)
Val = Tmp;
else
ZeroBits |= Shift;
}
return ZeroBits;
}
};
template <typename T> struct LeadingZerosCounter<T, 4> {
static unsigned count(T Val) {
if (Val == 0)
return 32;
return __builtin_clz(Val);
}
};
template <typename T> struct LeadingZerosCounter<T, 8> {
static unsigned count(T Val) {
if (Val == 0)
return 64;
return __builtin_clzll(Val);
}
};
}
template <typename T> [[nodiscard]] int countl_zero(T Val) {
static_assert(std::is_unsigned_v<T>,
"Only unsigned integral types are allowed.");
return llvm::detail::LeadingZerosCounter<T, sizeof(T)>::count(Val);
}
# 258 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/ADT/bit.h"
template <typename T> [[nodiscard]] int countl_one(T Value) {
static_assert(std::is_unsigned_v<T>,
"Only unsigned integral types are allowed.");
return llvm::countl_zero<T>(~Value);
}
# 271 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/ADT/bit.h"
template <typename T> [[nodiscard]] int countr_one(T Value) {
static_assert(std::is_unsigned_v<T>,
"Only unsigned integral types are allowed.");
return llvm::countr_zero<T>(~Value);
}
template <typename T> [[nodiscard]] int bit_width(T Value) {
static_assert(std::is_unsigned_v<T>,
"Only unsigned integral types are allowed.");
return std::numeric_limits<T>::digits - llvm::countl_zero(Value);
}
template <typename T> [[nodiscard]] T bit_floor(T Value) {
static_assert(std::is_unsigned_v<T>,
"Only unsigned integral types are allowed.");
if (!Value)
return 0;
return T(1) << (llvm::bit_width(Value) - 1);
}
# 306 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/ADT/bit.h"
template <typename T> [[nodiscard]] T bit_ceil(T Value) {
static_assert(std::is_unsigned_v<T>,
"Only unsigned integral types are allowed.");
if (Value < 2)
return 1;
return T(1) << llvm::bit_width<T>(Value - 1u);
}
namespace detail {
template <typename T, std::size_t SizeOfT> struct PopulationCounter {
static int count(T Value) {
static_assert(SizeOfT <= 4, "Not implemented!");
return (int)__builtin_popcount(Value);
}
};
template <typename T> struct PopulationCounter<T, 8> {
static int count(T Value) {
return (int)__builtin_popcountll(Value);
}
};
}
template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
[[nodiscard]] inline int popcount(T Value) noexcept {
return detail::PopulationCounter<T, sizeof(T)>::count(Value);
}
template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
[[nodiscard]] constexpr T rotr(T V, int R);
template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
[[nodiscard]] constexpr T rotl(T V, int R) {
unsigned N = std::numeric_limits<T>::digits;
R = R % N;
if (!R)
return V;
if (R < 0)
return llvm::rotr(V, -R);
return (V << R) | (V >> (N - R));
}
template <typename T, typename> [[nodiscard]] constexpr T rotr(T V, int R) {
unsigned N = std::numeric_limits<T>::digits;
R = R % N;
if (!R)
return V;
if (R < 0)
return llvm::rotl(V, -R);
return (V >> R) | (V << (N - R));
}
}
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/MathExtras.h" 2
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cassert" 1 3
# 24 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cassert" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/assert.h" 1 3
# 25 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cassert" 2 3
# 32 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cassert" 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/MathExtras.h" 2
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/climits" 1 3
# 43 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/climits" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/limits.h" 1 3
# 44 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/limits.h" 3
# 66 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/limits.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build0/lib/clang/17/include/limits.h" 1 3
# 21 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build0/lib/clang/17/include/limits.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/limits.h" 1 3
# 26 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/limits.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/libc-header-start.h" 1 3
# 27 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/limits.h" 2 3
# 195 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/limits.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/posix1_lim.h" 1 3
# 27 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/posix1_lim.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/wordsize.h" 1 3
# 28 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/posix1_lim.h" 2 3
# 161 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/posix1_lim.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/local_lim.h" 1 3
# 38 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/local_lim.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/linux/limits.h" 1 3
# 39 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/local_lim.h" 2 3
# 81 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/local_lim.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/pthread_stack_min-dynamic.h" 1 3
# 23 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/pthread_stack_min-dynamic.h" 3
extern "C" {
extern long int __sysconf (int __name) noexcept (true);
}
# 82 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/local_lim.h" 2 3
# 162 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/posix1_lim.h" 2 3
# 196 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/limits.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/posix2_lim.h" 1 3
# 200 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/limits.h" 2 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/xopen_lim.h" 1 3
# 64 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/xopen_lim.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/uio_lim.h" 1 3
# 65 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/xopen_lim.h" 2 3
# 204 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/limits.h" 2 3
# 22 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build0/lib/clang/17/include/limits.h" 2 3
# 67 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/limits.h" 2 3
# 44 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/climits" 2 3
# 55 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/climits" 3
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/MathExtras.h" 2
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cstring" 1 3
# 63 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cstring" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/string.h" 1 3
# 58 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/string.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/string.h" 1 3
# 26 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/string.h" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/bits/libc-header-start.h" 1 3
# 27 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/string.h" 2 3
extern "C" {
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stddef.h" 1 3
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stddef.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build0/lib/clang/17/include/stddef.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stddef.h" 2 3
# 34 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/string.h" 2 3
# 43 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/string.h" 3
extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern void *memmove (void *__dest, const void *__src, size_t __n)
noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
int __c, size_t __n)
noexcept (true) __attribute__ ((__nonnull__ (1, 2))) ;
extern void *memset (void *__s, int __c, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1)));
extern int memcmp (const void *__s1, const void *__s2, size_t __n)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 80 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/string.h" 3
extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern "C++"
{
extern void *memchr (void *__s, int __c, size_t __n)
noexcept (true) __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern const void *memchr (const void *__s, int __c, size_t __n)
noexcept (true) __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) void *
memchr (void *__s, int __c, size_t __n) noexcept (true)
{
return __builtin_memchr (__s, __c, __n);
}
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const void *
memchr (const void *__s, int __c, size_t __n) noexcept (true)
{
return __builtin_memchr (__s, __c, __n);
}
}
# 115 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/string.h" 3
extern "C++" void *rawmemchr (void *__s, int __c)
noexcept (true) __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern "C++" const void *rawmemchr (const void *__s, int __c)
noexcept (true) __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern "C++" void *memrchr (void *__s, int __c, size_t __n)
noexcept (true) __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)))
;
extern "C++" const void *memrchr (const void *__s, int __c, size_t __n)
noexcept (true) __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)))
;
# 141 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/string.h" 3
extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern char *strncpy (char *__restrict __dest,
const char *__restrict __src, size_t __n)
noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern char *strcat (char *__restrict __dest, const char *__restrict __src)
noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern char *strncat (char *__restrict __dest, const char *__restrict __src,
size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern int strcmp (const char *__s1, const char *__s2)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern int strncmp (const char *__s1, const char *__s2, size_t __n)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern int strcoll (const char *__s1, const char *__s2)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern size_t strxfrm (char *__restrict __dest,
const char *__restrict __src, size_t __n)
noexcept (true) __attribute__ ((__nonnull__ (2))) ;
extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
locale_t __l) noexcept (true) __attribute__ ((__nonnull__ (2, 4)))
;
extern char *strdup (const char *__s)
noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
extern char *strndup (const char *__string, size_t __n)
noexcept (true) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
# 224 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/string.h" 3
extern "C++"
{
extern char *strchr (char *__s, int __c)
noexcept (true) __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern const char *strchr (const char *__s, int __c)
noexcept (true) __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char *
strchr (char *__s, int __c) noexcept (true)
{
return __builtin_strchr (__s, __c);
}
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char *
strchr (const char *__s, int __c) noexcept (true)
{
return __builtin_strchr (__s, __c);
}
}
extern "C++"
{
extern char *strrchr (char *__s, int __c)
noexcept (true) __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern const char *strrchr (const char *__s, int __c)
noexcept (true) __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char *
strrchr (char *__s, int __c) noexcept (true)
{
return __builtin_strrchr (__s, __c);
}
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char *
strrchr (const char *__s, int __c) noexcept (true)
{
return __builtin_strrchr (__s, __c);
}
}
# 281 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/string.h" 3
extern "C++" char *strchrnul (char *__s, int __c)
noexcept (true) __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern "C++" const char *strchrnul (const char *__s, int __c)
noexcept (true) __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
# 293 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/string.h" 3
extern size_t strcspn (const char *__s, const char *__reject)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern size_t strspn (const char *__s, const char *__accept)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern "C++"
{
extern char *strpbrk (char *__s, const char *__accept)
noexcept (true) __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern const char *strpbrk (const char *__s, const char *__accept)
noexcept (true) __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char *
strpbrk (char *__s, const char *__accept) noexcept (true)
{
return __builtin_strpbrk (__s, __accept);
}
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char *
strpbrk (const char *__s, const char *__accept) noexcept (true)
{
return __builtin_strpbrk (__s, __accept);
}
}
extern "C++"
{
extern char *strstr (char *__haystack, const char *__needle)
noexcept (true) __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern const char *strstr (const char *__haystack, const char *__needle)
noexcept (true) __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char *
strstr (char *__haystack, const char *__needle) noexcept (true)
{
return __builtin_strstr (__haystack, __needle);
}
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char *
strstr (const char *__haystack, const char *__needle) noexcept (true)
{
return __builtin_strstr (__haystack, __needle);
}
}
extern char *strtok (char *__restrict __s, const char *__restrict __delim)
noexcept (true) __attribute__ ((__nonnull__ (2)));
extern char *__strtok_r (char *__restrict __s,
const char *__restrict __delim,
char **__restrict __save_ptr)
noexcept (true) __attribute__ ((__nonnull__ (2, 3)));
extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
char **__restrict __save_ptr)
noexcept (true) __attribute__ ((__nonnull__ (2, 3)));
extern "C++" char *strcasestr (char *__haystack, const char *__needle)
noexcept (true) __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern "C++" const char *strcasestr (const char *__haystack,
const char *__needle)
noexcept (true) __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 389 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/string.h" 3
extern void *memmem (const void *__haystack, size_t __haystacklen,
const void *__needle, size_t __needlelen)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3)))
;
extern void *__mempcpy (void *__restrict __dest,
const void *__restrict __src, size_t __n)
noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern void *mempcpy (void *__restrict __dest,
const void *__restrict __src, size_t __n)
noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern size_t strlen (const char *__s)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern size_t strnlen (const char *__string, size_t __maxlen)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern char *strerror (int __errnum) noexcept (true);
# 444 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/string.h" 3
extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
noexcept (true) __attribute__ ((__nonnull__ (2))) ;
extern const char *strerrordesc_np (int __err) noexcept (true);
extern const char *strerrorname_np (int __err) noexcept (true);
extern char *strerror_l (int __errnum, locale_t __l) noexcept (true);
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/strings.h" 1 3
# 23 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/strings.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stddef.h" 1 3
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stddef.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm_build0/lib/clang/17/include/stddef.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stddef.h" 2 3
# 24 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/strings.h" 2 3
extern "C" {
extern int bcmp (const void *__s1, const void *__s2, size_t __n)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern void bcopy (const void *__src, void *__dest, size_t __n)
noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern void bzero (void *__s, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1)));
# 68 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/strings.h" 3
extern char *index (const char *__s, int __c)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
# 96 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/strings.h" 3
extern char *rindex (const char *__s, int __c)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern int ffs (int __i) noexcept (true) __attribute__ ((__const__));
extern int ffsl (long int __l) noexcept (true) __attribute__ ((__const__));
__extension__ extern int ffsll (long long int __ll)
noexcept (true) __attribute__ ((__const__));
extern int strcasecmp (const char *__s1, const char *__s2)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
extern int strncasecmp_l (const char *__s1, const char *__s2,
size_t __n, locale_t __loc)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
}
# 463 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/string.h" 2 3
extern void explicit_bzero (void *__s, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1)))
;
extern char *strsep (char **__restrict __stringp,
const char *__restrict __delim)
noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern char *strsignal (int __sig) noexcept (true);
extern const char *sigabbrev_np (int __sig) noexcept (true);
extern const char *sigdescr_np (int __sig) noexcept (true);
extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src)
noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern char *stpcpy (char *__restrict __dest, const char *__restrict __src)
noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern char *__stpncpy (char *__restrict __dest,
const char *__restrict __src, size_t __n)
noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern char *stpncpy (char *__restrict __dest,
const char *__restrict __src, size_t __n)
noexcept (true) __attribute__ ((__nonnull__ (1, 2)));
extern int strverscmp (const char *__s1, const char *__s2)
noexcept (true) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern char *strfry (char *__string) noexcept (true) __attribute__ ((__nonnull__ (1)));
extern void *memfrob (void *__s, size_t __n) noexcept (true) __attribute__ ((__nonnull__ (1)))
;
extern "C++" char *basename (char *__filename)
noexcept (true) __asm ("basename") __attribute__ ((__nonnull__ (1)));
extern "C++" const char *basename (const char *__filename)
noexcept (true) __asm ("basename") __attribute__ ((__nonnull__ (1)));
# 539 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/string.h" 3
}
# 62 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/string.h" 2 3
# 64 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cstring" 2 3
# 75 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cstring" 3
namespace std { inline namespace __1 {
using ::size_t __attribute__((__using_if_exists__));
using ::memcpy __attribute__((__using_if_exists__));
using ::memmove __attribute__((__using_if_exists__));
using ::strcpy __attribute__((__using_if_exists__));
using ::strncpy __attribute__((__using_if_exists__));
using ::strcat __attribute__((__using_if_exists__));
using ::strncat __attribute__((__using_if_exists__));
using ::memcmp __attribute__((__using_if_exists__));
using ::strcmp __attribute__((__using_if_exists__));
using ::strncmp __attribute__((__using_if_exists__));
using ::strcoll __attribute__((__using_if_exists__));
using ::strxfrm __attribute__((__using_if_exists__));
using ::memchr __attribute__((__using_if_exists__));
using ::strchr __attribute__((__using_if_exists__));
using ::strcspn __attribute__((__using_if_exists__));
using ::strpbrk __attribute__((__using_if_exists__));
using ::strrchr __attribute__((__using_if_exists__));
using ::strspn __attribute__((__using_if_exists__));
using ::strstr __attribute__((__using_if_exists__));
using ::strtok __attribute__((__using_if_exists__));
using ::memset __attribute__((__using_if_exists__));
using ::strerror __attribute__((__using_if_exists__));
using ::strlen __attribute__((__using_if_exists__));
}}
# 22 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/MathExtras.h" 2
namespace llvm {
namespace numbers {
constexpr double e = 2.7182818284590452354,
egamma = .57721566490153286061,
ln2 = .69314718055994530942,
ln10 = 2.3025850929940456840,
log2e = 1.4426950408889634074,
log10e = .43429448190325182765,
pi = 3.1415926535897932385,
inv_pi = .31830988618379067154,
sqrtpi = 1.7724538509055160273,
inv_sqrtpi = .56418958354775628695,
sqrt2 = 1.4142135623730950488,
inv_sqrt2 = .70710678118654752440,
sqrt3 = 1.7320508075688772935,
inv_sqrt3 = .57735026918962576451,
phi = 1.6180339887498948482;
constexpr float ef = 2.71828183F,
egammaf = .577215665F,
ln2f = .693147181F,
ln10f = 2.30258509F,
log2ef = 1.44269504F,
log10ef = .434294482F,
pif = 3.14159265F,
inv_pif = .318309886F,
sqrtpif = 1.77245385F,
inv_sqrtpif = .564189584F,
sqrt2f = 1.41421356F,
inv_sqrt2f = .707106781F,
sqrt3f = 1.73205081F,
inv_sqrt3f = .577350269F,
phif = 1.61803399F;
}
template <typename T>
__attribute__((deprecated("Use llvm::countr_zero instead.", "llvm::countr_zero")))
unsigned countTrailingZeros(T Val) {
static_assert(std::is_unsigned_v<T>,
"Only unsigned integral types are allowed.");
return llvm::countr_zero(Val);
}
template <typename T>
__attribute__((deprecated("Use llvm::countl_zero instead.", "llvm::countl_zero")))
unsigned countLeadingZeros(T Val) {
static_assert(std::is_unsigned_v<T>,
"Only unsigned integral types are allowed.");
return llvm::countl_zero(Val);
}
template <typename T> T maskTrailingOnes(unsigned N) {
static_assert(std::is_unsigned<T>::value, "Invalid type!");
const unsigned Bits = 8 * sizeof(T);
(static_cast <bool> (N <= Bits && "Invalid bit index") ? void (0) : __assert_fail ("N <= Bits && \"Invalid bit index\"", "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/MathExtras.h", 96, __extension__ __PRETTY_FUNCTION__));
return N == 0 ? 0 : (T(-1) >> (Bits - N));
}
template <typename T> T maskLeadingOnes(unsigned N) {
return ~maskTrailingOnes<T>(8 * sizeof(T) - N);
}
template <typename T> T maskTrailingZeros(unsigned N) {
return maskLeadingOnes<T>(8 * sizeof(T) - N);
}
template <typename T> T maskLeadingZeros(unsigned N) {
return maskTrailingOnes<T>(8 * sizeof(T) - N);
}
static const unsigned char BitReverseTable256[256] = {
0, 0 + 2 * 64, 0 + 1 * 64, 0 + 3 * 64, 0 + 2 * 16, 0 + 2 * 16 + 2 * 64, 0 + 2 * 16 + 1 * 64, 0 + 2 * 16 + 3 * 64, 0 + 1 * 16, 0 + 1 * 16 + 2 * 64, 0 + 1 * 16 + 1 * 64, 0 + 1 * 16 + 3 * 64, 0 + 3 * 16, 0 + 3 * 16 + 2 * 64, 0 + 3 * 16 + 1 * 64, 0 + 3 * 16 + 3 * 64, 0 + 2 * 4, 0 + 2 * 4 + 2 * 64, 0 + 2 * 4 + 1 * 64, 0 + 2 * 4 + 3 * 64, 0 + 2 * 4 + 2 * 16, 0 + 2 * 4 + 2 * 16 + 2 * 64, 0 + 2 * 4 + 2 * 16 + 1 * 64, 0 + 2 * 4 + 2 * 16 + 3 * 64, 0 + 2 * 4 + 1 * 16, 0 + 2 * 4 + 1 * 16 + 2 * 64, 0 + 2 * 4 + 1 * 16 + 1 * 64, 0 + 2 * 4 + 1 * 16 + 3 * 64, 0 + 2 * 4 + 3 * 16, 0 + 2 * 4 + 3 * 16 + 2 * 64, 0 + 2 * 4 + 3 * 16 + 1 * 64, 0 + 2 * 4 + 3 * 16 + 3 * 64, 0 + 1 * 4, 0 + 1 * 4 + 2 * 64, 0 + 1 * 4 + 1 * 64, 0 + 1 * 4 + 3 * 64, 0 + 1 * 4 + 2 * 16, 0 + 1 * 4 + 2 * 16 + 2 * 64, 0 + 1 * 4 + 2 * 16 + 1 * 64, 0 + 1 * 4 + 2 * 16 + 3 * 64, 0 + 1 * 4 + 1 * 16, 0 + 1 * 4 + 1 * 16 + 2 * 64, 0 + 1 * 4 + 1 * 16 + 1 * 64, 0 + 1 * 4 + 1 * 16 + 3 * 64, 0 + 1 * 4 + 3 * 16, 0 + 1 * 4 + 3 * 16 + 2 * 64, 0 + 1 * 4 + 3 * 16 + 1 * 64, 0 + 1 * 4 + 3 * 16 + 3 * 64, 0 + 3 * 4, 0 + 3 * 4 + 2 * 64, 0 + 3 * 4 + 1 * 64, 0 + 3 * 4 + 3 * 64, 0 + 3 * 4 + 2 * 16, 0 + 3 * 4 + 2 * 16 + 2 * 64, 0 + 3 * 4 + 2 * 16 + 1 * 64, 0 + 3 * 4 + 2 * 16 + 3 * 64, 0 + 3 * 4 + 1 * 16, 0 + 3 * 4 + 1 * 16 + 2 * 64, 0 + 3 * 4 + 1 * 16 + 1 * 64, 0 + 3 * 4 + 1 * 16 + 3 * 64, 0 + 3 * 4 + 3 * 16, 0 + 3 * 4 + 3 * 16 + 2 * 64, 0 + 3 * 4 + 3 * 16 + 1 * 64, 0 + 3 * 4 + 3 * 16 + 3 * 64, 2, 2 + 2 * 64, 2 + 1 * 64, 2 + 3 * 64, 2 + 2 * 16, 2 + 2 * 16 + 2 * 64, 2 + 2 * 16 + 1 * 64, 2 + 2 * 16 + 3 * 64, 2 + 1 * 16, 2 + 1 * 16 + 2 * 64, 2 + 1 * 16 + 1 * 64, 2 + 1 * 16 + 3 * 64, 2 + 3 * 16, 2 + 3 * 16 + 2 * 64, 2 + 3 * 16 + 1 * 64, 2 + 3 * 16 + 3 * 64, 2 + 2 * 4, 2 + 2 * 4 + 2 * 64, 2 + 2 * 4 + 1 * 64, 2 + 2 * 4 + 3 * 64, 2 + 2 * 4 + 2 * 16, 2 + 2 * 4 + 2 * 16 + 2 * 64, 2 + 2 * 4 + 2 * 16 + 1 * 64, 2 + 2 * 4 + 2 * 16 + 3 * 64, 2 + 2 * 4 + 1 * 16, 2 + 2 * 4 + 1 * 16 + 2 * 64, 2 + 2 * 4 + 1 * 16 + 1 * 64, 2 + 2 * 4 + 1 * 16 + 3 * 64, 2 + 2 * 4 + 3 * 16, 2 + 2 * 4 + 3 * 16 + 2 * 64, 2 + 2 * 4 + 3 * 16 + 1 * 64, 2 + 2 * 4 + 3 * 16 + 3 * 64, 2 + 1 * 4, 2 + 1 * 4 + 2 * 64, 2 + 1 * 4 + 1 * 64, 2 + 1 * 4 + 3 * 64, 2 + 1 * 4 + 2 * 16, 2 + 1 * 4 + 2 * 16 + 2 * 64, 2 + 1 * 4 + 2 * 16 + 1 * 64, 2 + 1 * 4 + 2 * 16 + 3 * 64, 2 + 1 * 4 + 1 * 16, 2 + 1 * 4 + 1 * 16 + 2 * 64, 2 + 1 * 4 + 1 * 16 + 1 * 64, 2 + 1 * 4 + 1 * 16 + 3 * 64, 2 + 1 * 4 + 3 * 16, 2 + 1 * 4 + 3 * 16 + 2 * 64, 2 + 1 * 4 + 3 * 16 + 1 * 64, 2 + 1 * 4 + 3 * 16 + 3 * 64, 2 + 3 * 4, 2 + 3 * 4 + 2 * 64, 2 + 3 * 4 + 1 * 64, 2 + 3 * 4 + 3 * 64, 2 + 3 * 4 + 2 * 16, 2 + 3 * 4 + 2 * 16 + 2 * 64, 2 + 3 * 4 + 2 * 16 + 1 * 64, 2 + 3 * 4 + 2 * 16 + 3 * 64, 2 + 3 * 4 + 1 * 16, 2 + 3 * 4 + 1 * 16 + 2 * 64, 2 + 3 * 4 + 1 * 16 + 1 * 64, 2 + 3 * 4 + 1 * 16 + 3 * 64, 2 + 3 * 4 + 3 * 16, 2 + 3 * 4 + 3 * 16 + 2 * 64, 2 + 3 * 4 + 3 * 16 + 1 * 64, 2 + 3 * 4 + 3 * 16 + 3 * 64, 1, 1 + 2 * 64, 1 + 1 * 64, 1 + 3 * 64, 1 + 2 * 16, 1 + 2 * 16 + 2 * 64, 1 + 2 * 16 + 1 * 64, 1 + 2 * 16 + 3 * 64, 1 + 1 * 16, 1 + 1 * 16 + 2 * 64, 1 + 1 * 16 + 1 * 64, 1 + 1 * 16 + 3 * 64, 1 + 3 * 16, 1 + 3 * 16 + 2 * 64, 1 + 3 * 16 + 1 * 64, 1 + 3 * 16 + 3 * 64, 1 + 2 * 4, 1 + 2 * 4 + 2 * 64, 1 + 2 * 4 + 1 * 64, 1 + 2 * 4 + 3 * 64, 1 + 2 * 4 + 2 * 16, 1 + 2 * 4 + 2 * 16 + 2 * 64, 1 + 2 * 4 + 2 * 16 + 1 * 64, 1 + 2 * 4 + 2 * 16 + 3 * 64, 1 + 2 * 4 + 1 * 16, 1 + 2 * 4 + 1 * 16 + 2 * 64, 1 + 2 * 4 + 1 * 16 + 1 * 64, 1 + 2 * 4 + 1 * 16 + 3 * 64, 1 + 2 * 4 + 3 * 16, 1 + 2 * 4 + 3 * 16 + 2 * 64, 1 + 2 * 4 + 3 * 16 + 1 * 64, 1 + 2 * 4 + 3 * 16 + 3 * 64, 1 + 1 * 4, 1 + 1 * 4 + 2 * 64, 1 + 1 * 4 + 1 * 64, 1 + 1 * 4 + 3 * 64, 1 + 1 * 4 + 2 * 16, 1 + 1 * 4 + 2 * 16 + 2 * 64, 1 + 1 * 4 + 2 * 16 + 1 * 64, 1 + 1 * 4 + 2 * 16 + 3 * 64, 1 + 1 * 4 + 1 * 16, 1 + 1 * 4 + 1 * 16 + 2 * 64, 1 + 1 * 4 + 1 * 16 + 1 * 64, 1 + 1 * 4 + 1 * 16 + 3 * 64, 1 + 1 * 4 + 3 * 16, 1 + 1 * 4 + 3 * 16 + 2 * 64, 1 + 1 * 4 + 3 * 16 + 1 * 64, 1 + 1 * 4 + 3 * 16 + 3 * 64, 1 + 3 * 4, 1 + 3 * 4 + 2 * 64, 1 + 3 * 4 + 1 * 64, 1 + 3 * 4 + 3 * 64, 1 + 3 * 4 + 2 * 16, 1 + 3 * 4 + 2 * 16 + 2 * 64, 1 + 3 * 4 + 2 * 16 + 1 * 64, 1 + 3 * 4 + 2 * 16 + 3 * 64, 1 + 3 * 4 + 1 * 16, 1 + 3 * 4 + 1 * 16 + 2 * 64, 1 + 3 * 4 + 1 * 16 + 1 * 64, 1 + 3 * 4 + 1 * 16 + 3 * 64, 1 + 3 * 4 + 3 * 16, 1 + 3 * 4 + 3 * 16 + 2 * 64, 1 + 3 * 4 + 3 * 16 + 1 * 64, 1 + 3 * 4 + 3 * 16 + 3 * 64, 3, 3 + 2 * 64, 3 + 1 * 64, 3 + 3 * 64, 3 + 2 * 16, 3 + 2 * 16 + 2 * 64, 3 + 2 * 16 + 1 * 64, 3 + 2 * 16 + 3 * 64, 3 + 1 * 16, 3 + 1 * 16 + 2 * 64, 3 + 1 * 16 + 1 * 64, 3 + 1 * 16 + 3 * 64, 3 + 3 * 16, 3 + 3 * 16 + 2 * 64, 3 + 3 * 16 + 1 * 64, 3 + 3 * 16 + 3 * 64, 3 + 2 * 4, 3 + 2 * 4 + 2 * 64, 3 + 2 * 4 + 1 * 64, 3 + 2 * 4 + 3 * 64, 3 + 2 * 4 + 2 * 16, 3 + 2 * 4 + 2 * 16 + 2 * 64, 3 + 2 * 4 + 2 * 16 + 1 * 64, 3 + 2 * 4 + 2 * 16 + 3 * 64, 3 + 2 * 4 + 1 * 16, 3 + 2 * 4 + 1 * 16 + 2 * 64, 3 + 2 * 4 + 1 * 16 + 1 * 64, 3 + 2 * 4 + 1 * 16 + 3 * 64, 3 + 2 * 4 + 3 * 16, 3 + 2 * 4 + 3 * 16 + 2 * 64, 3 + 2 * 4 + 3 * 16 + 1 * 64, 3 + 2 * 4 + 3 * 16 + 3 * 64, 3 + 1 * 4, 3 + 1 * 4 + 2 * 64, 3 + 1 * 4 + 1 * 64, 3 + 1 * 4 + 3 * 64, 3 + 1 * 4 + 2 * 16, 3 + 1 * 4 + 2 * 16 + 2 * 64, 3 + 1 * 4 + 2 * 16 + 1 * 64, 3 + 1 * 4 + 2 * 16 + 3 * 64, 3 + 1 * 4 + 1 * 16, 3 + 1 * 4 + 1 * 16 + 2 * 64, 3 + 1 * 4 + 1 * 16 + 1 * 64, 3 + 1 * 4 + 1 * 16 + 3 * 64, 3 + 1 * 4 + 3 * 16, 3 + 1 * 4 + 3 * 16 + 2 * 64, 3 + 1 * 4 + 3 * 16 + 1 * 64, 3 + 1 * 4 + 3 * 16 + 3 * 64, 3 + 3 * 4, 3 + 3 * 4 + 2 * 64, 3 + 3 * 4 + 1 * 64, 3 + 3 * 4 + 3 * 64, 3 + 3 * 4 + 2 * 16, 3 + 3 * 4 + 2 * 16 + 2 * 64, 3 + 3 * 4 + 2 * 16 + 1 * 64, 3 + 3 * 4 + 2 * 16 + 3 * 64, 3 + 3 * 4 + 1 * 16, 3 + 3 * 4 + 1 * 16 + 2 * 64, 3 + 3 * 4 + 1 * 16 + 1 * 64, 3 + 3 * 4 + 1 * 16 + 3 * 64, 3 + 3 * 4 + 3 * 16, 3 + 3 * 4 + 3 * 16 + 2 * 64, 3 + 3 * 4 + 3 * 16 + 1 * 64, 3 + 3 * 4 + 3 * 16 + 3 * 64
};
template <typename T> T reverseBits(T Val) {
if constexpr (std::is_same_v<T, uint8_t>)
return __builtin_bitreverse8(Val);
if constexpr (std::is_same_v<T, uint16_t>)
return __builtin_bitreverse16(Val);
if constexpr (std::is_same_v<T, uint32_t>)
return __builtin_bitreverse32(Val);
if constexpr (std::is_same_v<T, uint64_t>)
return __builtin_bitreverse64(Val);
unsigned char in[sizeof(Val)];
unsigned char out[sizeof(Val)];
std::memcpy(in, &Val, sizeof(Val));
for (unsigned i = 0; i < sizeof(Val); ++i)
out[(sizeof(Val) - i) - 1] = BitReverseTable256[in[i]];
std::memcpy(&Val, out, sizeof(Val));
return Val;
}
constexpr inline uint32_t Hi_32(uint64_t Value) {
return static_cast<uint32_t>(Value >> 32);
}
constexpr inline uint32_t Lo_32(uint64_t Value) {
return static_cast<uint32_t>(Value);
}
constexpr inline uint64_t Make_64(uint32_t High, uint32_t Low) {
return ((uint64_t)High << 32) | (uint64_t)Low;
}
template <unsigned N> constexpr inline bool isInt(int64_t x) {
if constexpr (N == 8)
return static_cast<int8_t>(x) == x;
if constexpr (N == 16)
return static_cast<int16_t>(x) == x;
if constexpr (N == 32)
return static_cast<int32_t>(x) == x;
if constexpr (N < 64)
return -(1L << (N - 1)) <= x && x < (1L << (N - 1));
(void)x;
return true;
}
template <unsigned N, unsigned S>
constexpr inline bool isShiftedInt(int64_t x) {
static_assert(
N > 0, "isShiftedInt<0> doesn't make sense (refers to a 0-bit number.");
static_assert(N + S <= 64, "isShiftedInt<N, S> with N + S > 64 is too wide.");
return isInt<N + S>(x) && (x % (1UL << S) == 0);
}
template <unsigned N> constexpr inline bool isUInt(uint64_t x) {
static_assert(N > 0, "isUInt<0> doesn't make sense");
if constexpr (N == 8)
return static_cast<uint8_t>(x) == x;
if constexpr (N == 16)
return static_cast<uint16_t>(x) == x;
if constexpr (N == 32)
return static_cast<uint32_t>(x) == x;
if constexpr (N < 64)
return x < (1UL << (N));
(void)x;
return true;
}
template <unsigned N, unsigned S>
constexpr inline bool isShiftedUInt(uint64_t x) {
static_assert(
N > 0, "isShiftedUInt<0> doesn't make sense (refers to a 0-bit number)");
static_assert(N + S <= 64,
"isShiftedUInt<N, S> with N + S > 64 is too wide.");
return isUInt<N + S>(x) && (x % (1UL << S) == 0);
}
inline uint64_t maxUIntN(uint64_t N) {
(static_cast <bool> (N > 0 && N <= 64 && "integer width out of range") ? void (0) : __assert_fail ("N > 0 && N <= 64 && \"integer width out of range\"", "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/MathExtras.h", 230, __extension__ __PRETTY_FUNCTION__));
return (18446744073709551615UL) >> (64 - N);
}
inline int64_t minIntN(int64_t N) {
(static_cast <bool> (N > 0 && N <= 64 && "integer width out of range") ? void (0) : __assert_fail ("N > 0 && N <= 64 && \"integer width out of range\"", "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/MathExtras.h", 241, __extension__ __PRETTY_FUNCTION__));
return 1UL + ~(1UL << (N - 1));
}
inline int64_t maxIntN(int64_t N) {
(static_cast <bool> (N > 0 && N <= 64 && "integer width out of range") ? void (0) : __assert_fail ("N > 0 && N <= 64 && \"integer width out of range\"", "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/MathExtras.h", 248, __extension__ __PRETTY_FUNCTION__));
return (1UL << (N - 1)) - 1;
}
inline bool isUIntN(unsigned N, uint64_t x) {
return N >= 64 || x <= maxUIntN(N);
}
inline bool isIntN(unsigned N, int64_t x) {
return N >= 64 || (minIntN(N) <= x && x <= maxIntN(N));
}
constexpr inline bool isMask_32(uint32_t Value) {
return Value && ((Value + 1) & Value) == 0;
}
constexpr inline bool isMask_64(uint64_t Value) {
return Value && ((Value + 1) & Value) == 0;
}
constexpr inline bool isShiftedMask_32(uint32_t Value) {
return Value && isMask_32((Value - 1) | Value);
}
constexpr inline bool isShiftedMask_64(uint64_t Value) {
return Value && isMask_64((Value - 1) | Value);
}
constexpr inline bool isPowerOf2_32(uint32_t Value) {
return llvm::has_single_bit(Value);
}
constexpr inline bool isPowerOf2_64(uint64_t Value) {
return llvm::has_single_bit(Value);
}
# 308 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/MathExtras.h"
template <typename T>
__attribute__((deprecated("Use llvm::countl_one instead.", "llvm::countl_one")))
unsigned countLeadingOnes(T Value) {
static_assert(std::is_unsigned_v<T>,
"Only unsigned integral types are allowed.");
return llvm::countl_one<T>(Value);
}
# 323 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/MathExtras.h"
template <typename T>
__attribute__((deprecated("Use llvm::countr_one instead.", "llvm::countr_one")))
unsigned countTrailingOnes(T Value) {
static_assert(std::is_unsigned_v<T>,
"Only unsigned integral types are allowed.");
return llvm::countr_one<T>(Value);
}
template <typename T>
__attribute__((deprecated("Use llvm::popcount instead.", "llvm::popcount")))
inline unsigned countPopulation(T Value) {
static_assert(std::is_unsigned_v<T>,
"Only unsigned integral types are allowed.");
return (unsigned)llvm::popcount(Value);
}
inline bool isShiftedMask_32(uint32_t Value, unsigned &MaskIdx,
unsigned &MaskLen) {
if (!isShiftedMask_32(Value))
return false;
MaskIdx = llvm::countr_zero(Value);
MaskLen = llvm::popcount(Value);
return true;
}
inline bool isShiftedMask_64(uint64_t Value, unsigned &MaskIdx,
unsigned &MaskLen) {
if (!isShiftedMask_64(Value))
return false;
MaskIdx = llvm::countr_zero(Value);
MaskLen = llvm::popcount(Value);
return true;
}
template <size_t kValue> constexpr inline size_t CTLog2() {
static_assert(kValue > 0 && llvm::isPowerOf2_64(kValue),
"Value is not a valid power of 2");
return 1 + CTLog2<kValue / 2>();
}
template <> constexpr inline size_t CTLog2<1>() { return 0; }
inline unsigned Log2_32(uint32_t Value) {
return 31 - llvm::countl_zero(Value);
}
inline unsigned Log2_64(uint64_t Value) {
return 63 - llvm::countl_zero(Value);
}
inline unsigned Log2_32_Ceil(uint32_t Value) {
return 32 - llvm::countl_zero(Value - 1);
}
inline unsigned Log2_64_Ceil(uint64_t Value) {
return 64 - llvm::countl_zero(Value - 1);
}
__attribute__((deprecated("use llvm::bit_cast instead", "llvm::bit_cast<double>")))
inline double BitsToDouble(uint64_t Bits) {
static_assert(sizeof(uint64_t) == sizeof(double), "Unexpected type sizes");
return llvm::bit_cast<double>(Bits);
}
__attribute__((deprecated("use llvm::bit_cast instead", "llvm::bit_cast<float>")))
inline float BitsToFloat(uint32_t Bits) {
static_assert(sizeof(uint32_t) == sizeof(float), "Unexpected type sizes");
return llvm::bit_cast<float>(Bits);
}
__attribute__((deprecated("use llvm::bit_cast instead", "llvm::bit_cast<uint64_t>")))
inline uint64_t DoubleToBits(double Double) {
static_assert(sizeof(uint64_t) == sizeof(double), "Unexpected type sizes");
return llvm::bit_cast<uint64_t>(Double);
}
__attribute__((deprecated("use llvm::bit_cast instead", "llvm::bit_cast<uint32_t>")))
inline uint32_t FloatToBits(float Float) {
static_assert(sizeof(uint32_t) == sizeof(float), "Unexpected type sizes");
return llvm::bit_cast<uint32_t>(Float);
}
constexpr inline uint64_t MinAlign(uint64_t A, uint64_t B) {
return (A | B) & (1 + ~(A | B));
}
constexpr inline uint64_t NextPowerOf2(uint64_t A) {
A |= (A >> 1);
A |= (A >> 2);
A |= (A >> 4);
A |= (A >> 8);
A |= (A >> 16);
A |= (A >> 32);
return A + 1;
}
__attribute__((deprecated("use llvm::bit_floor instead", "llvm::bit_floor")))
inline uint64_t PowerOf2Floor(uint64_t A) {
return llvm::bit_floor(A);
}
inline uint64_t PowerOf2Ceil(uint64_t A) {
if (!A)
return 0;
return NextPowerOf2(A - 1);
}
# 485 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/MathExtras.h"
inline uint64_t alignTo(uint64_t Value, uint64_t Align) {
(static_cast <bool> (Align != 0u && "Align can't be 0.") ? void (0) : __assert_fail ("Align != 0u && \"Align can't be 0.\"", "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/MathExtras.h", 486, __extension__ __PRETTY_FUNCTION__));
return (Value + Align - 1) / Align * Align;
}
inline uint64_t alignToPowerOf2(uint64_t Value, uint64_t Align) {
(static_cast <bool> (Align != 0 && (Align & (Align - 1)) == 0 && "Align must be a power of 2") ? void (0) : __assert_fail ("Align != 0 && (Align & (Align - 1)) == 0 && \"Align must be a power of 2\"", "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/MathExtras.h", 492, __extension__ __PRETTY_FUNCTION__));
return (Value + Align - 1) & -Align;
}
# 508 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/MathExtras.h"
inline uint64_t alignTo(uint64_t Value, uint64_t Align, uint64_t Skew) {
(static_cast <bool> (Align != 0u && "Align can't be 0.") ? void (0) : __assert_fail ("Align != 0u && \"Align can't be 0.\"", "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/MathExtras.h", 509, __extension__ __PRETTY_FUNCTION__));
Skew %= Align;
return alignTo(Value - Skew, Align) + Skew;
}
template <uint64_t Align> constexpr inline uint64_t alignTo(uint64_t Value) {
static_assert(Align != 0u, "Align must be non-zero");
return (Value + Align - 1) / Align * Align;
}
inline uint64_t divideCeil(uint64_t Numerator, uint64_t Denominator) {
return alignTo(Numerator, Denominator) / Denominator;
}
inline uint64_t divideNearest(uint64_t Numerator, uint64_t Denominator) {
return (Numerator + (Denominator / 2)) / Denominator;
}
inline uint64_t alignDown(uint64_t Value, uint64_t Align, uint64_t Skew = 0) {
(static_cast <bool> (Align != 0u && "Align can't be 0.") ? void (0) : __assert_fail ("Align != 0u && \"Align can't be 0.\"", "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/MathExtras.h", 534, __extension__ __PRETTY_FUNCTION__));
Skew %= Align;
return (Value - Skew) / Align * Align + Skew;
}
template <unsigned B> constexpr inline int32_t SignExtend32(uint32_t X) {
static_assert(B > 0, "Bit width can't be 0.");
static_assert(B <= 32, "Bit width out of range.");
return int32_t(X << (32 - B)) >> (32 - B);
}
inline int32_t SignExtend32(uint32_t X, unsigned B) {
(static_cast <bool> (B > 0 && "Bit width can't be 0.") ? void (0) : __assert_fail ("B > 0 && \"Bit width can't be 0.\"", "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/MathExtras.h", 550, __extension__ __PRETTY_FUNCTION__));
(static_cast <bool> (B <= 32 && "Bit width out of range.") ? void (0) : __assert_fail ("B <= 32 && \"Bit width out of range.\"", "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/MathExtras.h", 551, __extension__ __PRETTY_FUNCTION__));
return int32_t(X << (32 - B)) >> (32 - B);
}
template <unsigned B> constexpr inline int64_t SignExtend64(uint64_t x) {
static_assert(B > 0, "Bit width can't be 0.");
static_assert(B <= 64, "Bit width out of range.");
return int64_t(x << (64 - B)) >> (64 - B);
}
inline int64_t SignExtend64(uint64_t X, unsigned B) {
(static_cast <bool> (B > 0 && "Bit width can't be 0.") ? void (0) : __assert_fail ("B > 0 && \"Bit width can't be 0.\"", "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/MathExtras.h", 566, __extension__ __PRETTY_FUNCTION__));
(static_cast <bool> (B <= 64 && "Bit width out of range.") ? void (0) : __assert_fail ("B <= 64 && \"Bit width out of range.\"", "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/MathExtras.h", 567, __extension__ __PRETTY_FUNCTION__));
return int64_t(X << (64 - B)) >> (64 - B);
}
template <typename T>
std::enable_if_t<std::is_unsigned<T>::value, T> AbsoluteDifference(T X, T Y) {
return X > Y ? (X - Y) : (Y - X);
}
template <typename T>
std::enable_if_t<std::is_unsigned<T>::value, T>
SaturatingAdd(T X, T Y, bool *ResultOverflowed = nullptr) {
bool Dummy;
bool &Overflowed = ResultOverflowed ? *ResultOverflowed : Dummy;
T Z = X + Y;
Overflowed = (Z < X || Z < Y);
if (Overflowed)
return std::numeric_limits<T>::max();
else
return Z;
}
template <class T, class... Ts>
std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingAdd(T X, T Y, T Z,
Ts... Args) {
bool Overflowed = false;
T XY = SaturatingAdd(X, Y, &Overflowed);
if (Overflowed)
return SaturatingAdd(std::numeric_limits<T>::max(), T(1), Args...);
return SaturatingAdd(XY, Z, Args...);
}
template <typename T>
std::enable_if_t<std::is_unsigned<T>::value, T>
SaturatingMultiply(T X, T Y, bool *ResultOverflowed = nullptr) {
bool Dummy;
bool &Overflowed = ResultOverflowed ? *ResultOverflowed : Dummy;
Overflowed = false;
int Log2Z = Log2_64(X) + Log2_64(Y);
const T Max = std::numeric_limits<T>::max();
int Log2Max = Log2_64(Max);
if (Log2Z < Log2Max) {
return X * Y;
}
if (Log2Z > Log2Max) {
Overflowed = true;
return Max;
}
T Z = (X >> 1) * Y;
if (Z & ~(Max >> 1)) {
Overflowed = true;
return Max;
}
Z <<= 1;
if (X & 1)
return SaturatingAdd(Z, Y, ResultOverflowed);
return Z;
}
template <typename T>
std::enable_if_t<std::is_unsigned<T>::value, T>
SaturatingMultiplyAdd(T X, T Y, T A, bool *ResultOverflowed = nullptr) {
bool Dummy;
bool &Overflowed = ResultOverflowed ? *ResultOverflowed : Dummy;
T Product = SaturatingMultiply(X, Y, &Overflowed);
if (Overflowed)
return Product;
return SaturatingAdd(A, Product, &Overflowed);
}
extern const float huge_valf;
template <typename T>
std::enable_if_t<std::is_signed<T>::value, T> AddOverflow(T X, T Y, T &Result) {
return __builtin_add_overflow(X, Y, &Result);
# 697 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/MathExtras.h"
}
template <typename T>
std::enable_if_t<std::is_signed<T>::value, T> SubOverflow(T X, T Y, T &Result) {
return __builtin_sub_overflow(X, Y, &Result);
# 723 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/MathExtras.h"
}
template <typename T>
std::enable_if_t<std::is_signed<T>::value, T> MulOverflow(T X, T Y, T &Result) {
using U = std::make_unsigned_t<T>;
const U UX = X < 0 ? (0 - static_cast<U>(X)) : static_cast<U>(X);
const U UY = Y < 0 ? (0 - static_cast<U>(Y)) : static_cast<U>(Y);
const U UResult = UX * UY;
const bool IsNegative = (X < 0) ^ (Y < 0);
Result = IsNegative ? (0 - UResult) : UResult;
if (UX == 0 || UY == 0)
return false;
if (IsNegative)
return UX > (static_cast<U>(std::numeric_limits<T>::max()) + U(1)) / UY;
else
return UX > (static_cast<U>(std::numeric_limits<T>::max())) / UY;
}
}
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/ADT/BitmaskEnum.h" 2
# 92 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/ADT/BitmaskEnum.h"
namespace llvm {
template <typename E, typename Enable = void>
struct is_bitmask_enum : std::false_type {};
template <typename E>
struct is_bitmask_enum<
E, std::enable_if_t<sizeof(E::LLVM_BITMASK_LARGEST_ENUMERATOR) >= 0>>
: std::true_type {};
template <typename E, typename Enable = void> struct largest_bitmask_enum_bit;
template <typename E>
struct largest_bitmask_enum_bit<
E, std::enable_if_t<sizeof(E::LLVM_BITMASK_LARGEST_ENUMERATOR) >= 0>> {
using UnderlyingTy = std::underlying_type_t<E>;
static constexpr UnderlyingTy value =
static_cast<UnderlyingTy>(E::LLVM_BITMASK_LARGEST_ENUMERATOR);
};
namespace BitmaskEnumDetail {
template <typename E> constexpr std::underlying_type_t<E> Mask() {
return NextPowerOf2(largest_bitmask_enum_bit<E>::value) - 1;
}
template <typename E> constexpr std::underlying_type_t<E> Underlying(E Val) {
auto U = static_cast<std::underlying_type_t<E>>(Val);
(static_cast <bool> (U >= 0 && "Negative enum values are not allowed.") ? void (0) : __assert_fail ("U >= 0 && \"Negative enum values are not allowed.\"", "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/ADT/BitmaskEnum.h", 129, __extension__ __PRETTY_FUNCTION__));
(static_cast <bool> (U <= Mask<E>() && "Enum value too large (or largest val too small?)") ? void (0) : __assert_fail ("U <= Mask<E>() && \"Enum value too large (or largest val too small?)\"", "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/ADT/BitmaskEnum.h", 130, __extension__ __PRETTY_FUNCTION__));
return U;
}
constexpr unsigned bitWidth(uint64_t Value) {
return Value ? 1 + bitWidth(Value >> 1) : 0;
}
template <typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
constexpr E operator~(E Val) {
return static_cast<E>(~Underlying(Val) & Mask<E>());
}
template <typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
constexpr E operator|(E LHS, E RHS) {
return static_cast<E>(Underlying(LHS) | Underlying(RHS));
}
template <typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
constexpr E operator&(E LHS, E RHS) {
return static_cast<E>(Underlying(LHS) & Underlying(RHS));
}
template <typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
constexpr E operator^(E LHS, E RHS) {
return static_cast<E>(Underlying(LHS) ^ Underlying(RHS));
}
template <typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
E &operator|=(E &LHS, E RHS) {
LHS = LHS | RHS;
return LHS;
}
template <typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
E &operator&=(E &LHS, E RHS) {
LHS = LHS & RHS;
return LHS;
}
template <typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
E &operator^=(E &LHS, E RHS) {
LHS = LHS ^ RHS;
return LHS;
}
}
using ::llvm::BitmaskEnumDetail::operator~; using ::llvm::BitmaskEnumDetail::operator|; using ::llvm::BitmaskEnumDetail::operator&; using ::llvm::BitmaskEnumDetail::operator^; using ::llvm::BitmaskEnumDetail::operator|=; using ::llvm::BitmaskEnumDetail::operator&=; using ::llvm::BitmaskEnumDetail::operator^=;
template <typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
constexpr unsigned BitWidth = BitmaskEnumDetail::bitWidth(uint64_t{
static_cast<std::underlying_type_t<E>>(
E::LLVM_BITMASK_LARGEST_ENUMERATOR)});
}
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/Basic/BitmaskEnum.h" 2
namespace clang {
using ::llvm::BitmaskEnumDetail::operator~; using ::llvm::BitmaskEnumDetail::operator|; using ::llvm::BitmaskEnumDetail::operator&; using ::llvm::BitmaskEnumDetail::operator^; using ::llvm::BitmaskEnumDetail::operator|=; using ::llvm::BitmaskEnumDetail::operator&=; using ::llvm::BitmaskEnumDetail::operator^=;
}
# 12 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/AST/DependenceFlags.h" 2
namespace clang {
struct ExprDependenceScope {
enum ExprDependence : uint8_t {
UnexpandedPack = 1,
# 27 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/AST/DependenceFlags.h"
Instantiation = 2,
Type = 4,
Value = 8,
Error = 16,
None = 0,
All = 31,
TypeValue = Type | Value,
TypeInstantiation = Type | Instantiation,
ValueInstantiation = Value | Instantiation,
TypeValueInstantiation = Type | Value | Instantiation,
ErrorDependent = Error | ValueInstantiation,
LLVM_BITMASK_LARGEST_ENUMERATOR = Error
};
};
using ExprDependence = ExprDependenceScope::ExprDependence;
struct TypeDependenceScope {
enum TypeDependence : uint8_t {
UnexpandedPack = 1,
Instantiation = 2,
Dependent = 4,
VariablyModified = 8,
Error = 16,
None = 0,
All = 31,
DependentInstantiation = Dependent | Instantiation,
LLVM_BITMASK_LARGEST_ENUMERATOR = Error
};
};
using TypeDependence = TypeDependenceScope::TypeDependence;
# 99 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/AST/DependenceFlags.h"
struct NestedNameSpecifierDependenceScope { enum NestedNameSpecifierDependence : uint8_t { UnexpandedPack = 1, Instantiation = 2, Dependent = 4, Error = 8, None = 0, DependentInstantiation = Dependent | Instantiation, All = 15, LLVM_BITMASK_LARGEST_ENUMERATOR = Error }; }; using NestedNameSpecifierDependence = NestedNameSpecifierDependenceScope::NestedNameSpecifierDependence;
struct TemplateNameDependenceScope { enum TemplateNameDependence : uint8_t { UnexpandedPack = 1, Instantiation = 2, Dependent = 4, Error = 8, None = 0, DependentInstantiation = Dependent | Instantiation, All = 15, LLVM_BITMASK_LARGEST_ENUMERATOR = Error }; }; using TemplateNameDependence = TemplateNameDependenceScope::TemplateNameDependence;
struct TemplateArgumentDependenceScope { enum TemplateArgumentDependence : uint8_t { UnexpandedPack = 1, Instantiation = 2, Dependent = 4, Error = 8, None = 0, DependentInstantiation = Dependent | Instantiation, All = 15, LLVM_BITMASK_LARGEST_ENUMERATOR = Error }; }; using TemplateArgumentDependence = TemplateArgumentDependenceScope::TemplateArgumentDependence;
class Dependence {
public:
enum Bits : uint8_t {
None = 0,
UnexpandedPack = 1,
Instantiation = 2,
Type = 4,
Value = 8,
Dependent = Type | Value,
Error = 16,
VariablyModified = 32,
Syntactic = UnexpandedPack | Instantiation | Error,
Semantic =
Instantiation | Type | Value | Dependent | Error | VariablyModified,
LLVM_BITMASK_LARGEST_ENUMERATOR = VariablyModified
};
Dependence() : V(None) {}
Dependence(TypeDependence D)
: V(translate(D, TypeDependence::UnexpandedPack, UnexpandedPack) |
translate(D, TypeDependence::Instantiation, Instantiation) |
translate(D, TypeDependence::Dependent, Dependent) |
translate(D, TypeDependence::Error, Error) |
translate(D, TypeDependence::VariablyModified, VariablyModified)) {}
Dependence(ExprDependence D)
: V(translate(D, ExprDependence::UnexpandedPack, UnexpandedPack) |
translate(D, ExprDependence::Instantiation, Instantiation) |
translate(D, ExprDependence::Type, Type) |
translate(D, ExprDependence::Value, Value) |
translate(D, ExprDependence::Error, Error)) {}
Dependence(NestedNameSpecifierDependence D) :
V ( translate(D, NNSDependence::UnexpandedPack, UnexpandedPack) |
translate(D, NNSDependence::Instantiation, Instantiation) |
translate(D, NNSDependence::Dependent, Dependent) |
translate(D, NNSDependence::Error, Error)) {}
Dependence(TemplateArgumentDependence D)
: V(translate(D, TADependence::UnexpandedPack, UnexpandedPack) |
translate(D, TADependence::Instantiation, Instantiation) |
translate(D, TADependence::Dependent, Dependent) |
translate(D, TADependence::Error, Error)) {}
Dependence(TemplateNameDependence D)
: V(translate(D, TNDependence::UnexpandedPack, UnexpandedPack) |
translate(D, TNDependence::Instantiation, Instantiation) |
translate(D, TNDependence::Dependent, Dependent) |
translate(D, TNDependence::Error, Error)) {}
Dependence syntactic() {
Dependence Result = *this;
Result.V &= Syntactic;
return Result;
}
Dependence semantic() {
Dependence Result = *this;
Result.V &= Semantic;
return Result;
}
TypeDependence type() const {
return translate(V, UnexpandedPack, TypeDependence::UnexpandedPack) |
translate(V, Instantiation, TypeDependence::Instantiation) |
translate(V, Dependent, TypeDependence::Dependent) |
translate(V, Error, TypeDependence::Error) |
translate(V, VariablyModified, TypeDependence::VariablyModified);
}
ExprDependence expr() const {
return translate(V, UnexpandedPack, ExprDependence::UnexpandedPack) |
translate(V, Instantiation, ExprDependence::Instantiation) |
translate(V, Type, ExprDependence::Type) |
translate(V, Value, ExprDependence::Value) |
translate(V, Error, ExprDependence::Error);
}
NestedNameSpecifierDependence nestedNameSpecifier() const {
return translate(V, UnexpandedPack, NNSDependence::UnexpandedPack) |
translate(V, Instantiation, NNSDependence::Instantiation) |
translate(V, Dependent, NNSDependence::Dependent) |
translate(V, Error, NNSDependence::Error);
}
TemplateArgumentDependence templateArgument() const {
return translate(V, UnexpandedPack, TADependence::UnexpandedPack) |
translate(V, Instantiation, TADependence::Instantiation) |
translate(V, Dependent, TADependence::Dependent) |
translate(V, Error, TADependence::Error);
}
TemplateNameDependence templateName() const {
return translate(V, UnexpandedPack, TNDependence::UnexpandedPack) |
translate(V, Instantiation, TNDependence::Instantiation) |
translate(V, Dependent, TNDependence::Dependent) |
translate(V, Error, TNDependence::Error);
}
private:
Bits V;
template <typename T, typename U>
static U translate(T Bits, T FromBit, U ToBit) {
return (Bits & FromBit) ? ToBit : static_cast<U>(0);
}
using NNSDependence = NestedNameSpecifierDependence;
using TADependence = TemplateArgumentDependence;
using TNDependence = TemplateNameDependence;
};
inline ExprDependence toExprDependence(TemplateArgumentDependence TA) {
return Dependence(TA).expr();
}
inline ExprDependence toExprDependenceForImpliedType(TypeDependence D) {
return Dependence(D).semantic().expr();
}
inline ExprDependence toExprDependenceAsWritten(TypeDependence D) {
return Dependence(D).expr();
}
inline ExprDependence toExprDependence(NestedNameSpecifierDependence D) {
return Dependence(D).expr();
}
inline ExprDependence turnTypeToValueDependence(ExprDependence D) {
return D & ~ExprDependence::Type;
}
inline ExprDependence turnValueToTypeDependence(ExprDependence D) {
if (D & ExprDependence::Value)
D |= ExprDependence::Type;
return D;
}
inline TypeDependence toTypeDependence(ExprDependence D) {
return Dependence(D).type();
}
inline TypeDependence toTypeDependence(NestedNameSpecifierDependence D) {
return Dependence(D).type();
}
inline TypeDependence toTypeDependence(TemplateNameDependence D) {
return Dependence(D).type();
}
inline TypeDependence toTypeDependence(TemplateArgumentDependence D) {
return Dependence(D).type();
}
inline TypeDependence toSyntacticDependence(TypeDependence D) {
return Dependence(D).syntactic().type();
}
inline TypeDependence toSemanticDependence(TypeDependence D) {
return Dependence(D).semantic().type();
}
inline NestedNameSpecifierDependence
toNestedNameSpecifierDependendence(TypeDependence D) {
return Dependence(D).nestedNameSpecifier();
}
inline TemplateArgumentDependence
toTemplateArgumentDependence(TypeDependence D) {
return Dependence(D).templateArgument();
}
inline TemplateArgumentDependence
toTemplateArgumentDependence(TemplateNameDependence D) {
return Dependence(D).templateArgument();
}
inline TemplateArgumentDependence
toTemplateArgumentDependence(ExprDependence D) {
return Dependence(D).templateArgument();
}
inline TemplateNameDependence
toTemplateNameDependence(NestedNameSpecifierDependence D) {
return Dependence(D).templateName();
}
using ::llvm::BitmaskEnumDetail::operator~; using ::llvm::BitmaskEnumDetail::operator|; using ::llvm::BitmaskEnumDetail::operator&; using ::llvm::BitmaskEnumDetail::operator^; using ::llvm::BitmaskEnumDetail::operator|=; using ::llvm::BitmaskEnumDetail::operator&=; using ::llvm::BitmaskEnumDetail::operator^=;
}
# 21 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/AST/Type.h" 2
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/AST/NestedNameSpecifier.h" 1
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/AST/NestedNameSpecifier.h"
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/Basic/Diagnostic.h" 1
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/Basic/Diagnostic.h"
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/Basic/DiagnosticIDs.h" 1
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/Basic/DiagnosticIDs.h"
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/Basic/LLVM.h" 1
# 21 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/clang/include/clang/Basic/LLVM.h"
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/Casting.h" 1
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/Casting.h"
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/type_traits.h" 1
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/type_traits.h"
namespace llvm {
# 30 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/type_traits.h"
template <typename T> class is_integral_or_enum {
using UnderlyingT = std::remove_reference_t<T>;
public:
static const bool value =
!std::is_class<UnderlyingT>::value &&
!std::is_pointer<UnderlyingT>::value &&
!std::is_floating_point<UnderlyingT>::value &&
(std::is_enum<UnderlyingT>::value ||
std::is_convertible<UnderlyingT, unsigned long long>::value);
};
template<typename T, typename Enable = void>
struct add_lvalue_reference_if_not_pointer { using type = T &; };
template <typename T>
struct add_lvalue_reference_if_not_pointer<
T, std::enable_if_t<std::is_pointer<T>::value>> {
using type = T;
};
template<typename T, typename Enable = void>
struct add_const_past_pointer { using type = const T; };
template <typename T>
struct add_const_past_pointer<T, std::enable_if_t<std::is_pointer<T>::value>> {
using type = const std::remove_pointer_t<T> *;
};
template <typename T, typename Enable = void>
struct const_pointer_or_const_ref {
using type = const T &;
};
template <typename T>
struct const_pointer_or_const_ref<T,
std::enable_if_t<std::is_pointer<T>::value>> {
using type = typename add_const_past_pointer<T>::type;
};
namespace detail {
template<typename T> union copy_construction_triviality_helper {
T t;
copy_construction_triviality_helper() = default;
copy_construction_triviality_helper(const copy_construction_triviality_helper&) = default;
~copy_construction_triviality_helper() = default;
};
template<typename T> union move_construction_triviality_helper {
T t;
move_construction_triviality_helper() = default;
move_construction_triviality_helper(move_construction_triviality_helper&&) = default;
~move_construction_triviality_helper() = default;
};
template<class T>
union trivial_helper {
T t;
};
}
template <typename T>
struct is_trivially_copy_constructible
: std::is_copy_constructible<
::llvm::detail::copy_construction_triviality_helper<T>> {};
template <typename T>
struct is_trivially_copy_constructible<T &> : std::true_type {};
template <typename T>
struct is_trivially_copy_constructible<T &&> : std::false_type {};
template <typename T>
struct is_trivially_move_constructible
: std::is_move_constructible<
::llvm::detail::move_construction_triviality_helper<T>> {};
template <typename T>
struct is_trivially_move_constructible<T &> : std::true_type {};
template <typename T>
struct is_trivially_move_constructible<T &&> : std::true_type {};
template <typename T>
struct is_copy_assignable {
template<class F>
static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
static std::false_type get(...);
static constexpr bool value = decltype(get((T*)nullptr))::value;
};
template <typename T>
struct is_move_assignable {
template<class F>
static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
static std::false_type get(...);
static constexpr bool value = decltype(get((T*)nullptr))::value;
};
}
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/Casting.h" 2
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cassert" 1 3
# 24 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cassert" 3
# 1 "/usr/lib/gcc/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include/assert.h" 1 3
# 25 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cassert" 2 3
# 32 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/cassert" 3
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/include/llvm/Support/Casting.h" 2
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/memory" 1 3
# 882 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/memory" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/addressof.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/addressof.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
inline constexpr
__attribute__((__no_sanitize__("cfi"))) __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_Tp*
addressof(_Tp& __x) noexcept
{
return __builtin_addressof(__x);
}
# 71 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/addressof.h" 3
template <class _Tp> _Tp* addressof(const _Tp&&) noexcept = delete;
}}
# 883 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/memory" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/align.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/align.h" 3
namespace std { inline namespace __1 {
__attribute__((__visibility__("default"))) void* align(size_t __align, size_t __sz, void*& __ptr, size_t& __space);
}}
# 884 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/memory" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocate_at_least.h" 1 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocate_at_least.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_traits.h" 1 3
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_traits.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/construct_at.h" 1 3
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/construct_at.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/access.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/access.h" 3
namespace std { inline namespace __1 {
template <class _Tp, size_t _Np>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
_Tp*
begin(_Tp (&__array)[_Np])
{
return __array;
}
template <class _Tp, size_t _Np>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
_Tp*
end(_Tp (&__array)[_Np])
{
return __array + _Np;
}
template <class _Cp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
auto
begin(_Cp& __c) -> decltype(__c.begin())
{
return __c.begin();
}
template <class _Cp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
auto
begin(const _Cp& __c) -> decltype(__c.begin())
{
return __c.begin();
}
template <class _Cp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
auto
end(_Cp& __c) -> decltype(__c.end())
{
return __c.end();
}
template <class _Cp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
auto
end(const _Cp& __c) -> decltype(__c.end())
{
return __c.end();
}
template <class _Cp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
auto cbegin(const _Cp& __c) -> decltype(std::begin(__c))
{
return std::begin(__c);
}
template <class _Cp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
auto cend(const _Cp& __c) -> decltype(std::end(__c))
{
return std::end(__c);
}
# 127 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/access.h" 3
}}
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/construct_at.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/voidify.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/voidify.h" 3
namespace std { inline namespace __1 {
template <typename _Tp>
__attribute__((__always_inline__)) __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) void* __voidify(_Tp& __from) {
return const_cast<void*>(static_cast<const volatile void*>(std::addressof(__from)));
}
}}
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/construct_at.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/new" 1 3
# 97 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/new" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/exception" 1 3
# 102 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/exception" 3
namespace std
{
# 153 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/exception" 3
class __attribute__((__visibility__("default"))) exception {
public:
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) exception() noexcept {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) exception(const exception&) noexcept = default;
virtual ~exception() noexcept;
virtual const char* what() const noexcept;
};
class __attribute__((__visibility__("default"))) bad_exception : public exception {
public:
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) bad_exception() noexcept {}
~bad_exception() noexcept override;
const char* what() const noexcept override;
};
# 179 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/exception" 3
typedef void (*terminate_handler)();
__attribute__((__visibility__("default"))) terminate_handler set_terminate(terminate_handler) noexcept;
__attribute__((__visibility__("default"))) terminate_handler get_terminate() noexcept;
[[noreturn]] __attribute__((__visibility__("default"))) void terminate() noexcept;
__attribute__((__visibility__("default"))) bool uncaught_exception() noexcept;
__attribute__((__visibility__("default"))) int uncaught_exceptions() noexcept;
class __attribute__((__visibility__("default"))) exception_ptr;
__attribute__((__visibility__("default"))) exception_ptr current_exception() noexcept;
[[noreturn]] __attribute__((__visibility__("default"))) void rethrow_exception(exception_ptr);
class __attribute__((__visibility__("default"))) exception_ptr
{
void* __ptr_;
public:
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) exception_ptr() noexcept : __ptr_() {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) exception_ptr(nullptr_t) noexcept : __ptr_() {}
exception_ptr(const exception_ptr&) noexcept;
exception_ptr& operator=(const exception_ptr&) noexcept;
~exception_ptr() noexcept;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) explicit operator bool() const noexcept
{return __ptr_ != nullptr;}
friend __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
bool operator==(const exception_ptr& __x, const exception_ptr& __y) noexcept
{return __x.__ptr_ == __y.__ptr_;}
friend __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
bool operator!=(const exception_ptr& __x, const exception_ptr& __y) noexcept
{return !(__x == __y);}
friend __attribute__((__visibility__("default"))) exception_ptr current_exception() noexcept;
friend __attribute__((__visibility__("default"))) void rethrow_exception(exception_ptr);
};
template<class _Ep>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) exception_ptr
make_exception_ptr(_Ep __e) noexcept
{
# 234 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/exception" 3
((void)__e);
std::abort();
}
# 285 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/exception" 3
class __attribute__((__visibility__("default"))) nested_exception
{
exception_ptr __ptr_;
public:
nested_exception() noexcept;
virtual ~nested_exception() noexcept;
[[noreturn]] void rethrow_nested() const;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) exception_ptr nested_ptr() const noexcept {return __ptr_;}
};
template <class _Tp>
struct __nested
: public _Tp,
public nested_exception
{
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) explicit __nested(const _Tp& __t) : _Tp(__t) {}
};
# 334 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/exception" 3
template <class _Tp>
[[noreturn]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void
throw_with_nested(_Tp&& __t)
{
# 348 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/exception" 3
((void)__t);
}
template <class _From, class _To>
struct __can_dynamic_cast : _BoolConstant<
is_polymorphic<_From>::value &&
(!is_base_of<_To, _From>::value ||
is_convertible<const _From*, const _To*>::value)> {};
template <class _Ep>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void
rethrow_if_nested(const _Ep& __e,
__enable_if_t< __can_dynamic_cast<_Ep, nested_exception>::value>* = 0)
{
const nested_exception* __nep = dynamic_cast<const nested_exception*>(std::addressof(__e));
if (__nep)
__nep->rethrow_nested();
}
template <class _Ep>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void
rethrow_if_nested(const _Ep&,
__enable_if_t<!__can_dynamic_cast<_Ep, nested_exception>::value>* = 0)
{
}
}
# 98 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/new" 2 3
# 106 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/new" 3
# 122 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/new" 3
namespace std
{
struct __attribute__((__visibility__("default"))) nothrow_t { explicit nothrow_t() = default; };
extern __attribute__((__visibility__("default"))) const nothrow_t nothrow;
class __attribute__((__visibility__("default"))) bad_alloc
: public exception
{
public:
bad_alloc() noexcept;
~bad_alloc() noexcept override;
const char* what() const noexcept override;
};
class __attribute__((__visibility__("default"))) bad_array_new_length
: public bad_alloc
{
public:
bad_array_new_length() noexcept;
~bad_array_new_length() noexcept override;
const char* what() const noexcept override;
};
typedef void (*new_handler)();
__attribute__((__visibility__("default"))) new_handler set_new_handler(new_handler) noexcept;
__attribute__((__visibility__("default"))) new_handler get_new_handler() noexcept;
# 171 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/new" 3
[[noreturn]] __attribute__((__visibility__("default"))) void __throw_bad_alloc();
[[noreturn]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void __throw_bad_array_new_length()
{
std::abort();
}
enum class __attribute__((__type_visibility__("default"))) align_val_t : size_t { };
# 201 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/new" 3
}
# 211 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/new" 3
[[nodiscard]] __attribute__((__visibility__("default"))) void* operator new(std::size_t __sz) ;
[[nodiscard]] __attribute__((__visibility__("default"))) void* operator new(std::size_t __sz, const std::nothrow_t&) noexcept __attribute__((__malloc__));
__attribute__((__visibility__("default"))) void operator delete(void* __p) noexcept;
__attribute__((__visibility__("default"))) void operator delete(void* __p, const std::nothrow_t&) noexcept;
__attribute__((__visibility__("default"))) void operator delete(void* __p, std::size_t __sz) noexcept;
[[nodiscard]] __attribute__((__visibility__("default"))) void* operator new[](std::size_t __sz) ;
[[nodiscard]] __attribute__((__visibility__("default"))) void* operator new[](std::size_t __sz, const std::nothrow_t&) noexcept __attribute__((__malloc__));
__attribute__((__visibility__("default"))) void operator delete[](void* __p) noexcept;
__attribute__((__visibility__("default"))) void operator delete[](void* __p, const std::nothrow_t&) noexcept;
__attribute__((__visibility__("default"))) void operator delete[](void* __p, std::size_t __sz) noexcept;
[[nodiscard]] __attribute__((__visibility__("default"))) void* operator new(std::size_t __sz, std::align_val_t) ;
[[nodiscard]] __attribute__((__visibility__("default"))) void* operator new(std::size_t __sz, std::align_val_t, const std::nothrow_t&) noexcept __attribute__((__malloc__));
__attribute__((__visibility__("default"))) void operator delete(void* __p, std::align_val_t) noexcept;
__attribute__((__visibility__("default"))) void operator delete(void* __p, std::align_val_t, const std::nothrow_t&) noexcept;
__attribute__((__visibility__("default"))) void operator delete(void* __p, std::size_t __sz, std::align_val_t) noexcept;
[[nodiscard]] __attribute__((__visibility__("default"))) void* operator new[](std::size_t __sz, std::align_val_t) ;
[[nodiscard]] __attribute__((__visibility__("default"))) void* operator new[](std::size_t __sz, std::align_val_t, const std::nothrow_t&) noexcept __attribute__((__malloc__));
__attribute__((__visibility__("default"))) void operator delete[](void* __p, std::align_val_t) noexcept;
__attribute__((__visibility__("default"))) void operator delete[](void* __p, std::align_val_t, const std::nothrow_t&) noexcept;
__attribute__((__visibility__("default"))) void operator delete[](void* __p, std::size_t __sz, std::align_val_t) noexcept;
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) void* operator new (std::size_t, void* __p) noexcept {return __p;}
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) void* operator new[](std::size_t, void* __p) noexcept {return __p;}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) void operator delete (void*, void*) noexcept {}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) void operator delete[](void*, void*) noexcept {}
namespace std { inline namespace __1 {
constexpr inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) bool __is_overaligned_for_new(size_t __align) noexcept {
return __align > 16UL;
}
template <class ..._Args>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void* __libcpp_operator_new(_Args ...__args) {
return __builtin_operator_new(__args...);
}
template <class ..._Args>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void __libcpp_operator_delete(_Args ...__args) {
__builtin_operator_delete(__args...);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void *__libcpp_allocate(size_t __size, size_t __align) {
if (__is_overaligned_for_new(__align)) {
const align_val_t __align_val = static_cast<align_val_t>(__align);
return __libcpp_operator_new(__size, __align_val);
}
(void)__align;
return __libcpp_operator_new(__size);
}
template <class ..._Args>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void __do_deallocate_handle_size(void *__ptr, size_t __size, _Args ...__args) {
(void)__size;
return std::__libcpp_operator_delete(__ptr, __args...);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void __libcpp_deallocate(void* __ptr, size_t __size, size_t __align) {
if (__is_overaligned_for_new(__align)) {
const align_val_t __align_val = static_cast<align_val_t>(__align);
return __do_deallocate_handle_size(__ptr, __size, __align_val);
} else {
return __do_deallocate_handle_size(__ptr, __size);
}
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) void __libcpp_deallocate_unsized(void* __ptr, size_t __align) {
if (__is_overaligned_for_new(__align)) {
const align_val_t __align_val = static_cast<align_val_t>(__align);
return __libcpp_operator_delete(__ptr, __align_val);
} else {
return __libcpp_operator_delete(__ptr);
}
}
template <class _Tp>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr _Tp* __launder(_Tp* __p) noexcept
{
static_assert (!(is_function<_Tp>::value), "can't launder functions" );
static_assert (!(is_same<void, __remove_cv_t<_Tp> >::value), "can't launder cv-void" );
return __builtin_launder(__p);
}
template <class _Tp>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr _Tp* launder(_Tp* __p) noexcept
{
return std::__launder(__p);
}
# 364 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/new" 3
}}
# 24 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/construct_at.h" 2 3
# 27 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/construct_at.h" 3
namespace std { inline namespace __1 {
# 43 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/construct_at.h" 3
template <class _Tp, class... _Args, class = decltype(::new(std::declval<void*>()) _Tp(std::declval<_Args>()...))>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr _Tp* __construct_at(_Tp* __location, _Args&&... __args) {
return (__builtin_expect(static_cast<bool>(__location != nullptr), 1) ? (void)0 : ::std::__libcpp_verbose_abort("%s:%d: assertion %s failed: %s", __builtin_FILE(), __builtin_LINE(), "__location != nullptr", "null pointer given to construct_at")),
::new (std::__voidify(*__location)) _Tp(std::forward<_Args>(__args)...);
}
template <class _ForwardIterator>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_ForwardIterator __destroy(_ForwardIterator, _ForwardIterator);
template <class _Tp, typename enable_if<!is_array<_Tp>::value, int>::type = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void __destroy_at(_Tp* __loc) {
(__builtin_expect(static_cast<bool>(__loc != nullptr), 1) ? (void)0 : ::std::__libcpp_verbose_abort("%s:%d: assertion %s failed: %s", __builtin_FILE(), __builtin_LINE(), "__loc != nullptr", "null pointer given to destroy_at"));
__loc->~_Tp();
}
# 78 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/construct_at.h" 3
template <class _ForwardIterator>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_ForwardIterator __destroy(_ForwardIterator __first, _ForwardIterator __last) {
for (; __first != __last; ++__first)
std::__destroy_at(std::addressof(*__first));
return __first;
}
template <class _BidirectionalIterator>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_BidirectionalIterator __reverse_destroy(_BidirectionalIterator __first, _BidirectionalIterator __last) {
while (__last != __first) {
--__last;
std::__destroy_at(std::addressof(*__last));
}
return __last;
}
template <class _Tp, enable_if_t<!is_array_v<_Tp>, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void destroy_at(_Tp* __loc) {
std::__destroy_at(__loc);
}
# 112 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/construct_at.h" 3
template <class _ForwardIterator>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void destroy(_ForwardIterator __first, _ForwardIterator __last) {
(void)std::__destroy(std::move(__first), std::move(__last));
}
template <class _ForwardIterator, class _Size>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_ForwardIterator destroy_n(_ForwardIterator __first, _Size __n) {
for (; __n > 0; (void)++__first, --__n)
std::__destroy_at(std::addressof(*__first));
return __first;
}
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_traits.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/pointer_traits.h" 1 3
# 27 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/pointer_traits.h" 3
namespace std { inline namespace __1 {
template <class _Tp, class = void>
struct __has_element_type : false_type {};
template <class _Tp>
struct __has_element_type<_Tp, __void_t<typename _Tp::element_type> > : true_type {};
template <class _Ptr, bool = __has_element_type<_Ptr>::value>
struct __pointer_traits_element_type;
template <class _Ptr>
struct __pointer_traits_element_type<_Ptr, true>
{
typedef __attribute__((__nodebug__)) typename _Ptr::element_type type;
};
template <template <class, class...> class _Sp, class _Tp, class ..._Args>
struct __pointer_traits_element_type<_Sp<_Tp, _Args...>, true>
{
typedef __attribute__((__nodebug__)) typename _Sp<_Tp, _Args...>::element_type type;
};
template <template <class, class...> class _Sp, class _Tp, class ..._Args>
struct __pointer_traits_element_type<_Sp<_Tp, _Args...>, false>
{
typedef __attribute__((__nodebug__)) _Tp type;
};
template <class _Tp, class = void>
struct __has_difference_type : false_type {};
template <class _Tp>
struct __has_difference_type<_Tp, __void_t<typename _Tp::difference_type> > : true_type {};
template <class _Ptr, bool = __has_difference_type<_Ptr>::value>
struct __pointer_traits_difference_type
{
typedef __attribute__((__nodebug__)) ptrdiff_t type;
};
template <class _Ptr>
struct __pointer_traits_difference_type<_Ptr, true>
{
typedef __attribute__((__nodebug__)) typename _Ptr::difference_type type;
};
template <class _Tp, class _Up>
struct __has_rebind
{
private:
template <class _Xp> static false_type __test(...);
#pragma GCC diagnostic push
# 81 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/pointer_traits.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated"
# 81 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/pointer_traits.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
template <class _Xp> static true_type __test(typename _Xp::template rebind<_Up>* = 0);
#pragma GCC diagnostic pop
public:
static const bool value = decltype(__test<_Tp>(0))::value;
};
template <class _Tp, class _Up, bool = __has_rebind<_Tp, _Up>::value>
struct __pointer_traits_rebind
{
typedef __attribute__((__nodebug__)) typename _Tp::template rebind<_Up> type;
};
template <template <class, class...> class _Sp, class _Tp, class ..._Args, class _Up>
struct __pointer_traits_rebind<_Sp<_Tp, _Args...>, _Up, true>
{
typedef __attribute__((__nodebug__)) typename _Sp<_Tp, _Args...>::template rebind<_Up> type;
};
template <template <class, class...> class _Sp, class _Tp, class ..._Args, class _Up>
struct __pointer_traits_rebind<_Sp<_Tp, _Args...>, _Up, false>
{
typedef _Sp<_Up, _Args...> type;
};
template <class _Ptr>
struct __attribute__((__type_visibility__("default"))) pointer_traits
{
typedef _Ptr pointer;
typedef typename __pointer_traits_element_type<pointer>::type element_type;
typedef typename __pointer_traits_difference_type<pointer>::type difference_type;
template <class _Up> using rebind = typename __pointer_traits_rebind<pointer, _Up>::type;
private:
struct __nat {};
public:
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
static pointer pointer_to(__conditional_t<is_void<element_type>::value, __nat, element_type>& __r)
{return pointer::pointer_to(__r);}
};
template <class _Tp>
struct __attribute__((__type_visibility__("default"))) pointer_traits<_Tp*>
{
typedef _Tp* pointer;
typedef _Tp element_type;
typedef ptrdiff_t difference_type;
template <class _Up> using rebind = _Up*;
private:
struct __nat {};
public:
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
static pointer pointer_to(__conditional_t<is_void<element_type>::value, __nat, element_type>& __r) noexcept
{return std::addressof(__r);}
};
template <class _From, class _To>
using __rebind_pointer_t = typename pointer_traits<_From>::template rebind<_To>;
template <class _Pointer, class = void>
struct __to_address_helper;
template <class _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
_Tp* __to_address(_Tp* __p) noexcept {
static_assert(!is_function<_Tp>::value, "_Tp is a function type");
return __p;
}
template <class _Pointer, class = void>
struct _HasToAddress : false_type {};
template <class _Pointer>
struct _HasToAddress<_Pointer,
decltype((void)pointer_traits<_Pointer>::to_address(std::declval<const _Pointer&>()))
> : true_type {};
template <class _Pointer, class = void>
struct _HasArrow : false_type {};
template <class _Pointer>
struct _HasArrow<_Pointer,
decltype((void)std::declval<const _Pointer&>().operator->())
> : true_type {};
template <class _Pointer>
struct _IsFancyPointer {
static const bool value = _HasArrow<_Pointer>::value || _HasToAddress<_Pointer>::value;
};
template <class _Pointer, class = __enable_if_t<
_And<is_class<_Pointer>, _IsFancyPointer<_Pointer> >::value
> >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
typename decay<decltype(__to_address_helper<_Pointer>::__call(std::declval<const _Pointer&>()))>::type
__to_address(const _Pointer& __p) noexcept {
return __to_address_helper<_Pointer>::__call(__p);
}
template <class _Pointer, class>
struct __to_address_helper {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
static decltype(std::__to_address(std::declval<const _Pointer&>().operator->()))
__call(const _Pointer& __p) noexcept {
return std::__to_address(__p.operator->());
}
};
template <class _Pointer>
struct __to_address_helper<_Pointer, decltype((void)pointer_traits<_Pointer>::to_address(std::declval<const _Pointer&>()))> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
static decltype(pointer_traits<_Pointer>::to_address(std::declval<const _Pointer&>()))
__call(const _Pointer& __p) noexcept {
return pointer_traits<_Pointer>::to_address(__p);
}
};
# 240 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/pointer_traits.h" 3
}}
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_traits.h" 2 3
# 29 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_traits.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__undef_macros" 1 3
# 33 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_traits.h" 2 3
namespace std { inline namespace __1 {
template <class _Tp, class = void> struct __has_pointer : false_type { }; template <class _Tp> struct __has_pointer<_Tp, __void_t<typename _Tp:: pointer > > : true_type { };
template <class _Tp, class _Alloc,
class _RawAlloc = __libcpp_remove_reference_t<_Alloc>,
bool = __has_pointer<_RawAlloc>::value>
struct __pointer {
using type __attribute__((__nodebug__)) = typename _RawAlloc::pointer;
};
template <class _Tp, class _Alloc, class _RawAlloc>
struct __pointer<_Tp, _Alloc, _RawAlloc, false> {
using type __attribute__((__nodebug__)) = _Tp*;
};
template <class _Tp, class = void> struct __has_const_pointer : false_type { }; template <class _Tp> struct __has_const_pointer<_Tp, __void_t<typename _Tp:: const_pointer > > : true_type { };
template <class _Tp, class _Ptr, class _Alloc,
bool = __has_const_pointer<_Alloc>::value>
struct __const_pointer {
using type __attribute__((__nodebug__)) = typename _Alloc::const_pointer;
};
template <class _Tp, class _Ptr, class _Alloc>
struct __const_pointer<_Tp, _Ptr, _Alloc, false> {
using type __attribute__((__nodebug__)) = typename pointer_traits<_Ptr>::template rebind<const _Tp>;
};
template <class _Tp, class = void> struct __has_void_pointer : false_type { }; template <class _Tp> struct __has_void_pointer<_Tp, __void_t<typename _Tp:: void_pointer > > : true_type { };
template <class _Ptr, class _Alloc,
bool = __has_void_pointer<_Alloc>::value>
struct __void_pointer {
using type __attribute__((__nodebug__)) = typename _Alloc::void_pointer;
};
template <class _Ptr, class _Alloc>
struct __void_pointer<_Ptr, _Alloc, false> {
using type __attribute__((__nodebug__)) = typename pointer_traits<_Ptr>::template rebind<void>;
};
template <class _Tp, class = void> struct __has_const_void_pointer : false_type { }; template <class _Tp> struct __has_const_void_pointer<_Tp, __void_t<typename _Tp:: const_void_pointer > > : true_type { };
template <class _Ptr, class _Alloc,
bool = __has_const_void_pointer<_Alloc>::value>
struct __const_void_pointer {
using type __attribute__((__nodebug__)) = typename _Alloc::const_void_pointer;
};
template <class _Ptr, class _Alloc>
struct __const_void_pointer<_Ptr, _Alloc, false> {
using type __attribute__((__nodebug__)) = typename pointer_traits<_Ptr>::template rebind<const void>;
};
template <class _Tp, class = void> struct __has_size_type : false_type { }; template <class _Tp> struct __has_size_type<_Tp, __void_t<typename _Tp:: size_type > > : true_type { };
template <class _Alloc, class _DiffType, bool = __has_size_type<_Alloc>::value>
struct __size_type : make_unsigned<_DiffType> { };
template <class _Alloc, class _DiffType>
struct __size_type<_Alloc, _DiffType, true> {
using type __attribute__((__nodebug__)) = typename _Alloc::size_type;
};
template <class _Tp, class = void> struct __has_alloc_traits_difference_type : false_type { }; template <class _Tp> struct __has_alloc_traits_difference_type<_Tp, __void_t<typename _Tp:: difference_type > > : true_type { };
template <class _Alloc, class _Ptr, bool = __has_alloc_traits_difference_type<_Alloc>::value>
struct __alloc_traits_difference_type {
using type __attribute__((__nodebug__)) = typename pointer_traits<_Ptr>::difference_type;
};
template <class _Alloc, class _Ptr>
struct __alloc_traits_difference_type<_Alloc, _Ptr, true> {
using type __attribute__((__nodebug__)) = typename _Alloc::difference_type;
};
template <class _Tp, class = void> struct __has_propagate_on_container_copy_assignment : false_type { }; template <class _Tp> struct __has_propagate_on_container_copy_assignment<_Tp, __void_t<typename _Tp:: propagate_on_container_copy_assignment > > : true_type { };
template <class _Alloc, bool = __has_propagate_on_container_copy_assignment<_Alloc>::value>
struct __propagate_on_container_copy_assignment : false_type { };
template <class _Alloc>
struct __propagate_on_container_copy_assignment<_Alloc, true> {
using type __attribute__((__nodebug__)) = typename _Alloc::propagate_on_container_copy_assignment;
};
template <class _Tp, class = void> struct __has_propagate_on_container_move_assignment : false_type { }; template <class _Tp> struct __has_propagate_on_container_move_assignment<_Tp, __void_t<typename _Tp:: propagate_on_container_move_assignment > > : true_type { };
template <class _Alloc, bool = __has_propagate_on_container_move_assignment<_Alloc>::value>
struct __propagate_on_container_move_assignment : false_type { };
template <class _Alloc>
struct __propagate_on_container_move_assignment<_Alloc, true> {
using type __attribute__((__nodebug__)) = typename _Alloc::propagate_on_container_move_assignment;
};
template <class _Tp, class = void> struct __has_propagate_on_container_swap : false_type { }; template <class _Tp> struct __has_propagate_on_container_swap<_Tp, __void_t<typename _Tp:: propagate_on_container_swap > > : true_type { };
template <class _Alloc, bool = __has_propagate_on_container_swap<_Alloc>::value>
struct __propagate_on_container_swap : false_type { };
template <class _Alloc>
struct __propagate_on_container_swap<_Alloc, true> {
using type __attribute__((__nodebug__)) = typename _Alloc::propagate_on_container_swap;
};
template <class _Tp, class = void> struct __has_is_always_equal : false_type { }; template <class _Tp> struct __has_is_always_equal<_Tp, __void_t<typename _Tp:: is_always_equal > > : true_type { };
template <class _Alloc, bool = __has_is_always_equal<_Alloc>::value>
struct __is_always_equal : is_empty<_Alloc> { };
template <class _Alloc>
struct __is_always_equal<_Alloc, true> {
using type __attribute__((__nodebug__)) = typename _Alloc::is_always_equal;
};
#pragma GCC diagnostic push
# 158 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_traits.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated"
# 158 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_traits.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
template <class _Tp, class _Up, class = void>
struct __has_rebind_other : false_type { };
template <class _Tp, class _Up>
struct __has_rebind_other<_Tp, _Up, __void_t<typename _Tp::template rebind<_Up>::other> > : true_type { };
template <class _Tp, class _Up, bool = __has_rebind_other<_Tp, _Up>::value>
struct __allocator_traits_rebind {
static_assert(__has_rebind_other<_Tp, _Up>::value, "This allocator has to implement rebind");
using type __attribute__((__nodebug__)) = typename _Tp::template rebind<_Up>::other;
};
template <template <class, class...> class _Alloc, class _Tp, class ..._Args, class _Up>
struct __allocator_traits_rebind<_Alloc<_Tp, _Args...>, _Up, true> {
using type __attribute__((__nodebug__)) = typename _Alloc<_Tp, _Args...>::template rebind<_Up>::other;
};
template <template <class, class...> class _Alloc, class _Tp, class ..._Args, class _Up>
struct __allocator_traits_rebind<_Alloc<_Tp, _Args...>, _Up, false> {
using type __attribute__((__nodebug__)) = _Alloc<_Up, _Args...>;
};
#pragma GCC diagnostic pop
template<class _Alloc, class _Tp>
using __allocator_traits_rebind_t = typename __allocator_traits_rebind<_Alloc, _Tp>::type;
#pragma GCC diagnostic push
# 182 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_traits.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated"
# 182 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_traits.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
template <class _Alloc, class _SizeType, class _ConstVoidPtr, class = void>
struct __has_allocate_hint : false_type { };
template <class _Alloc, class _SizeType, class _ConstVoidPtr>
struct __has_allocate_hint<_Alloc, _SizeType, _ConstVoidPtr, decltype(
(void)std::declval<_Alloc>().allocate(std::declval<_SizeType>(), std::declval<_ConstVoidPtr>())
)> : true_type { };
template <class, class _Alloc, class ..._Args>
struct __has_construct_impl : false_type { };
template <class _Alloc, class ..._Args>
struct __has_construct_impl<decltype(
(void)std::declval<_Alloc>().construct(std::declval<_Args>()...)
), _Alloc, _Args...> : true_type { };
template <class _Alloc, class ..._Args>
struct __has_construct : __has_construct_impl<void, _Alloc, _Args...> { };
template <class _Alloc, class _Pointer, class = void>
struct __has_destroy : false_type { };
template <class _Alloc, class _Pointer>
struct __has_destroy<_Alloc, _Pointer, decltype(
(void)std::declval<_Alloc>().destroy(std::declval<_Pointer>())
)> : true_type { };
template <class _Alloc, class = void>
struct __has_max_size : false_type { };
template <class _Alloc>
struct __has_max_size<_Alloc, decltype(
(void)std::declval<_Alloc&>().max_size()
)> : true_type { };
template <class _Alloc, class = void>
struct __has_select_on_container_copy_construction : false_type { };
template <class _Alloc>
struct __has_select_on_container_copy_construction<_Alloc, decltype(
(void)std::declval<_Alloc>().select_on_container_copy_construction()
)> : true_type { };
#pragma GCC diagnostic pop
template <class _Alloc>
struct __attribute__((__type_visibility__("default"))) allocator_traits
{
using allocator_type = _Alloc;
using value_type = typename allocator_type::value_type;
using pointer = typename __pointer<value_type, allocator_type>::type;
using const_pointer = typename __const_pointer<value_type, pointer, allocator_type>::type;
using void_pointer = typename __void_pointer<pointer, allocator_type>::type;
using const_void_pointer = typename __const_void_pointer<pointer, allocator_type>::type;
using difference_type = typename __alloc_traits_difference_type<allocator_type, pointer>::type;
using size_type = typename __size_type<allocator_type, difference_type>::type;
using propagate_on_container_copy_assignment = typename __propagate_on_container_copy_assignment<allocator_type>::type;
using propagate_on_container_move_assignment = typename __propagate_on_container_move_assignment<allocator_type>::type;
using propagate_on_container_swap = typename __propagate_on_container_swap<allocator_type>::type;
using is_always_equal = typename __is_always_equal<allocator_type>::type;
template <class _Tp>
using rebind_alloc = __allocator_traits_rebind_t<allocator_type, _Tp>;
template <class _Tp>
using rebind_traits = allocator_traits<rebind_alloc<_Tp> >;
# 266 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_traits.h" 3
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
static pointer allocate(allocator_type& __a, size_type __n) {
return __a.allocate(__n);
}
template <class _Ap = _Alloc, class =
__enable_if_t<__has_allocate_hint<_Ap, size_type, const_void_pointer>::value> >
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
static pointer allocate(allocator_type& __a, size_type __n, const_void_pointer __hint) {
#pragma GCC diagnostic push
# 275 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_traits.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated"
# 275 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_traits.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
return __a.allocate(__n, __hint);
#pragma GCC diagnostic pop
}
template <class _Ap = _Alloc, class = void, class =
__enable_if_t<!__has_allocate_hint<_Ap, size_type, const_void_pointer>::value> >
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
static pointer allocate(allocator_type& __a, size_type __n, const_void_pointer) {
return __a.allocate(__n);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
static void deallocate(allocator_type& __a, pointer __p, size_type __n) noexcept {
__a.deallocate(__p, __n);
}
template <class _Tp, class... _Args, class =
__enable_if_t<__has_construct<allocator_type, _Tp*, _Args...>::value> >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
static void construct(allocator_type& __a, _Tp* __p, _Args&&... __args) {
#pragma GCC diagnostic push
# 295 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_traits.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated"
# 295 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_traits.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
__a.construct(__p, std::forward<_Args>(__args)...);
#pragma GCC diagnostic pop
}
template <class _Tp, class... _Args, class = void, class =
__enable_if_t<!__has_construct<allocator_type, _Tp*, _Args...>::value> >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
static void construct(allocator_type&, _Tp* __p, _Args&&... __args) {
::new ((void*)__p) _Tp(std::forward<_Args>(__args)...);
}
template <class _Tp, class =
__enable_if_t<__has_destroy<allocator_type, _Tp*>::value> >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
static void destroy(allocator_type& __a, _Tp* __p) {
#pragma GCC diagnostic push
# 314 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_traits.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated"
# 314 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_traits.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
__a.destroy(__p);
#pragma GCC diagnostic pop
}
template <class _Tp, class = void, class =
__enable_if_t<!__has_destroy<allocator_type, _Tp*>::value> >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
static void destroy(allocator_type&, _Tp* __p) {
__p->~_Tp();
}
template <class _Ap = _Alloc, class =
__enable_if_t<__has_max_size<const _Ap>::value> >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
static size_type max_size(const allocator_type& __a) noexcept {
#pragma GCC diagnostic push
# 333 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_traits.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated"
# 333 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_traits.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
return __a.max_size();
#pragma GCC diagnostic pop
}
template <class _Ap = _Alloc, class = void, class =
__enable_if_t<!__has_max_size<const _Ap>::value> >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
static size_type max_size(const allocator_type&) noexcept {
return numeric_limits<size_type>::max() / sizeof(value_type);
}
template <class _Ap = _Alloc, class =
__enable_if_t<__has_select_on_container_copy_construction<const _Ap>::value> >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
static allocator_type select_on_container_copy_construction(const allocator_type& __a) {
return __a.select_on_container_copy_construction();
}
template <class _Ap = _Alloc, class = void, class =
__enable_if_t<!__has_select_on_container_copy_construction<const _Ap>::value> >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
static allocator_type select_on_container_copy_construction(const allocator_type& __a) {
return __a;
}
};
template <class _Traits, class _Tp>
using __rebind_alloc __attribute__((__nodebug__)) = typename _Traits::template rebind_alloc<_Tp>;
template <class _Tp>
struct __is_default_allocator : false_type { };
template <class> class allocator;
template <class _Tp>
struct __is_default_allocator<allocator<_Tp> > : true_type { };
template <class _Alloc, class = void>
struct __is_cpp17_move_insertable
: is_move_constructible<typename _Alloc::value_type>
{ };
template <class _Alloc>
struct __is_cpp17_move_insertable<_Alloc, __enable_if_t<
!__is_default_allocator<_Alloc>::value &&
__has_construct<_Alloc, typename _Alloc::value_type*, typename _Alloc::value_type&&>::value
> > : true_type { };
template <class _Alloc, class = void>
struct __is_cpp17_copy_insertable
: integral_constant<bool,
is_copy_constructible<typename _Alloc::value_type>::value &&
__is_cpp17_move_insertable<_Alloc>::value
>
{ };
template <class _Alloc>
struct __is_cpp17_copy_insertable<_Alloc, __enable_if_t<
!__is_default_allocator<_Alloc>::value &&
__has_construct<_Alloc, typename _Alloc::value_type*, const typename _Alloc::value_type&>::value
> >
: __is_cpp17_move_insertable<_Alloc>
{ };
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocate_at_least.h" 2 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocate_at_least.h" 3
namespace std { inline namespace __1 {
# 46 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocate_at_least.h" 3
template <class _Pointer>
struct __allocation_result {
_Pointer ptr;
size_t count;
};
template <class _Alloc>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
__allocation_result<typename allocator_traits<_Alloc>::pointer> __allocate_at_least(_Alloc& __alloc, size_t __n) {
return {__alloc.allocate(__n), __n};
}
}}
# 885 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/memory" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocation_guard.h" 1 3
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocation_guard.h" 3
namespace std { inline namespace __1 {
# 43 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocation_guard.h" 3
template<class _Alloc>
struct __allocation_guard {
using _Pointer = typename allocator_traits<_Alloc>::pointer;
using _Size = typename allocator_traits<_Alloc>::size_type;
template<class _AllocT>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
explicit __allocation_guard(_AllocT __alloc, _Size __n)
: __alloc_(std::move(__alloc))
, __n_(__n)
, __ptr_(allocator_traits<_Alloc>::allocate(__alloc_, __n_))
{ }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
~__allocation_guard() noexcept {
if (__ptr_ != nullptr) {
allocator_traits<_Alloc>::deallocate(__alloc_, __ptr_, __n_);
}
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_Pointer __release_ptr() noexcept {
_Pointer __tmp = __ptr_;
__ptr_ = nullptr;
return __tmp;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_Pointer __get() const noexcept {
return __ptr_;
}
private:
_Alloc __alloc_;
_Size __n_;
_Pointer __ptr_;
};
}}
# 886 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/memory" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator.h" 1 3
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stdexcept" 1 3
# 52 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/stdexcept" 3
namespace std { inline namespace __1 {
class __attribute__((__visibility__("hidden"))) __libcpp_refstring
{
const char* __imp_;
bool __uses_refcount() const;
public:
explicit __libcpp_refstring(const char* __msg);
__libcpp_refstring(const __libcpp_refstring& __s) noexcept;
__libcpp_refstring& operator=(const __libcpp_refstring& __s) noexcept;
~__libcpp_refstring();
const char* c_str() const noexcept {return __imp_;}
};
}}
namespace std
{
class __attribute__((__visibility__("default"))) logic_error
: public exception
{
private:
std::__libcpp_refstring __imp_;
public:
explicit logic_error(const string&);
explicit logic_error(const char*);
logic_error(const logic_error&) noexcept;
logic_error& operator=(const logic_error&) noexcept;
~logic_error() noexcept override;
const char* what() const noexcept override;
};
class __attribute__((__visibility__("default"))) runtime_error
: public exception
{
private:
std::__libcpp_refstring __imp_;
public:
explicit runtime_error(const string&);
explicit runtime_error(const char*);
runtime_error(const runtime_error&) noexcept;
runtime_error& operator=(const runtime_error&) noexcept;
~runtime_error() noexcept override;
const char* what() const noexcept override;
};
class __attribute__((__visibility__("default"))) domain_error
: public logic_error
{
public:
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) explicit domain_error(const string& __s) : logic_error(__s) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) explicit domain_error(const char* __s) : logic_error(__s) {}
domain_error(const domain_error&) noexcept = default;
~domain_error() noexcept override;
};
class __attribute__((__visibility__("default"))) invalid_argument
: public logic_error
{
public:
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) explicit invalid_argument(const string& __s) : logic_error(__s) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) explicit invalid_argument(const char* __s) : logic_error(__s) {}
invalid_argument(const invalid_argument&) noexcept = default;
~invalid_argument() noexcept override;
};
class __attribute__((__visibility__("default"))) length_error
: public logic_error
{
public:
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) explicit length_error(const string& __s) : logic_error(__s) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) explicit length_error(const char* __s) : logic_error(__s) {}
length_error(const length_error&) noexcept = default;
~length_error() noexcept override;
};
class __attribute__((__visibility__("default"))) out_of_range
: public logic_error
{
public:
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) explicit out_of_range(const string& __s) : logic_error(__s) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) explicit out_of_range(const char* __s) : logic_error(__s) {}
out_of_range(const out_of_range&) noexcept = default;
~out_of_range() noexcept override;
};
class __attribute__((__visibility__("default"))) range_error
: public runtime_error
{
public:
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) explicit range_error(const string& __s) : runtime_error(__s) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) explicit range_error(const char* __s) : runtime_error(__s) {}
range_error(const range_error&) noexcept = default;
~range_error() noexcept override;
};
class __attribute__((__visibility__("default"))) overflow_error
: public runtime_error
{
public:
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) explicit overflow_error(const string& __s) : runtime_error(__s) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) explicit overflow_error(const char* __s) : runtime_error(__s) {}
overflow_error(const overflow_error&) noexcept = default;
~overflow_error() noexcept override;
};
class __attribute__((__visibility__("default"))) underflow_error
: public runtime_error
{
public:
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) explicit underflow_error(const string& __s) : runtime_error(__s) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) explicit underflow_error(const char* __s) : runtime_error(__s) {}
underflow_error(const underflow_error&) noexcept = default;
~underflow_error() noexcept override;
};
}
namespace std { inline namespace __1 {
[[noreturn]] __attribute__((__visibility__("default"))) void __throw_runtime_error(const char*);
[[noreturn]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void __throw_logic_error(const char*__msg)
{
((void)__msg);
std::abort();
}
[[noreturn]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void __throw_domain_error(const char*__msg)
{
((void)__msg);
std::abort();
}
[[noreturn]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void __throw_invalid_argument(const char*__msg)
{
((void)__msg);
std::abort();
}
[[noreturn]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void __throw_length_error(const char*__msg)
{
((void)__msg);
std::abort();
}
[[noreturn]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void __throw_out_of_range(const char*__msg)
{
((void)__msg);
std::abort();
}
[[noreturn]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void __throw_range_error(const char*__msg)
{
((void)__msg);
std::abort();
}
[[noreturn]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void __throw_overflow_error(const char*__msg)
{
((void)__msg);
std::abort();
}
[[noreturn]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void __throw_underflow_error(const char*__msg)
{
((void)__msg);
std::abort();
}
}}
# 24 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator.h" 2 3
# 27 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator.h" 3
namespace std { inline namespace __1 {
template <class _Tp> class allocator;
template <>
class __attribute__((__type_visibility__("default"))) allocator<void>
{
public:
__attribute__((__deprecated__)) typedef void* pointer;
__attribute__((__deprecated__)) typedef const void* const_pointer;
__attribute__((__deprecated__)) typedef void value_type;
template <class _Up> struct __attribute__((__deprecated__)) rebind {typedef allocator<_Up> other;};
};
template <>
class __attribute__((__type_visibility__("default"))) allocator<const void>
{
public:
__attribute__((__deprecated__)) typedef const void* pointer;
__attribute__((__deprecated__)) typedef const void* const_pointer;
__attribute__((__deprecated__)) typedef const void value_type;
template <class _Up> struct __attribute__((__deprecated__)) rebind {typedef allocator<_Up> other;};
};
# 75 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator.h" 3
template <bool _Cond, class _Unique>
struct __non_trivial_if { };
template <class _Unique>
struct __non_trivial_if<true, _Unique> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr __non_trivial_if() noexcept { }
};
template <class _Tp>
class __attribute__((__type_visibility__("default"))) allocator
: private __non_trivial_if<!is_void<_Tp>::value, allocator<_Tp> >
{
static_assert(!is_volatile<_Tp>::value, "std::allocator does not support volatile types");
public:
typedef size_t size_type;
typedef ptrdiff_t difference_type;
typedef _Tp value_type;
typedef true_type propagate_on_container_move_assignment;
typedef true_type is_always_equal;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
allocator() noexcept = default;
template <class _Up>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
allocator(const allocator<_Up>&) noexcept { }
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_Tp* allocate(size_t __n) {
if (__n > allocator_traits<allocator>::max_size(*this))
__throw_bad_array_new_length();
if (__libcpp_is_constant_evaluated()) {
return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
} else {
return static_cast<_Tp*>(std::__libcpp_allocate(__n * sizeof(_Tp), alignof(_Tp)));
}
}
# 126 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator.h" 3
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void deallocate(_Tp* __p, size_t __n) noexcept {
if (__libcpp_is_constant_evaluated()) {
::operator delete(__p);
} else {
std::__libcpp_deallocate((void*)__p, __n * sizeof(_Tp), alignof(_Tp));
}
}
__attribute__((__deprecated__)) typedef _Tp* pointer;
__attribute__((__deprecated__)) typedef const _Tp* const_pointer;
__attribute__((__deprecated__)) typedef _Tp& reference;
__attribute__((__deprecated__)) typedef const _Tp& const_reference;
template <class _Up>
struct __attribute__((__deprecated__)) rebind {
typedef allocator<_Up> other;
};
__attribute__((__deprecated__)) __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
pointer address(reference __x) const noexcept {
return std::addressof(__x);
}
__attribute__((__deprecated__)) __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
const_pointer address(const_reference __x) const noexcept {
return std::addressof(__x);
}
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) __attribute__((__deprecated__))
_Tp* allocate(size_t __n, const void*) {
return allocate(__n);
}
__attribute__((__deprecated__)) __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) size_type max_size() const noexcept {
return size_type(~0) / sizeof(_Tp);
}
template <class _Up, class... _Args>
__attribute__((__deprecated__)) __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void construct(_Up* __p, _Args&&... __args) {
::new ((void*)__p) _Up(std::forward<_Args>(__args)...);
}
__attribute__((__deprecated__)) __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void destroy(pointer __p) {
__p->~_Tp();
}
};
template <class _Tp>
class __attribute__((__type_visibility__("default"))) allocator<const _Tp>
: private __non_trivial_if<!is_void<_Tp>::value, allocator<const _Tp> >
{
static_assert(!is_volatile<_Tp>::value, "std::allocator does not support volatile types");
public:
typedef size_t size_type;
typedef ptrdiff_t difference_type;
typedef const _Tp value_type;
typedef true_type propagate_on_container_move_assignment;
typedef true_type is_always_equal;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
allocator() noexcept = default;
template <class _Up>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
allocator(const allocator<_Up>&) noexcept { }
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
const _Tp* allocate(size_t __n) {
if (__n > allocator_traits<allocator>::max_size(*this))
__throw_bad_array_new_length();
if (__libcpp_is_constant_evaluated()) {
return static_cast<const _Tp*>(::operator new(__n * sizeof(_Tp)));
} else {
return static_cast<const _Tp*>(std::__libcpp_allocate(__n * sizeof(_Tp), alignof(_Tp)));
}
}
# 215 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator.h" 3
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void deallocate(const _Tp* __p, size_t __n) {
if (__libcpp_is_constant_evaluated()) {
::operator delete(const_cast<_Tp*>(__p));
} else {
std::__libcpp_deallocate((void*) const_cast<_Tp *>(__p), __n * sizeof(_Tp), alignof(_Tp));
}
}
__attribute__((__deprecated__)) typedef const _Tp* pointer;
__attribute__((__deprecated__)) typedef const _Tp* const_pointer;
__attribute__((__deprecated__)) typedef const _Tp& reference;
__attribute__((__deprecated__)) typedef const _Tp& const_reference;
template <class _Up>
struct __attribute__((__deprecated__)) rebind {
typedef allocator<_Up> other;
};
__attribute__((__deprecated__)) __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
const_pointer address(const_reference __x) const noexcept {
return std::addressof(__x);
}
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) __attribute__((__deprecated__))
const _Tp* allocate(size_t __n, const void*) {
return allocate(__n);
}
__attribute__((__deprecated__)) __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) size_type max_size() const noexcept {
return size_type(~0) / sizeof(_Tp);
}
template <class _Up, class... _Args>
__attribute__((__deprecated__)) __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void construct(_Up* __p, _Args&&... __args) {
::new ((void*)__p) _Up(std::forward<_Args>(__args)...);
}
__attribute__((__deprecated__)) __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void destroy(pointer __p) {
__p->~_Tp();
}
};
template <class _Tp, class _Up>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
bool operator==(const allocator<_Tp>&, const allocator<_Up>&) noexcept {return true;}
template <class _Tp, class _Up>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
bool operator!=(const allocator<_Tp>&, const allocator<_Up>&) noexcept {return false;}
}}
# 887 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/memory" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_arg_t.h" 1 3
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_arg_t.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/uses_allocator.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/uses_allocator.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct __has_allocator_type
{
private:
template <class _Up> static false_type __test(...);
template <class _Up> static true_type __test(typename _Up::allocator_type* = 0);
public:
static const bool value = decltype(__test<_Tp>(0))::value;
};
template <class _Tp, class _Alloc, bool = __has_allocator_type<_Tp>::value>
struct __uses_allocator
: public integral_constant<bool,
is_convertible<_Alloc, typename _Tp::allocator_type>::value>
{
};
template <class _Tp, class _Alloc>
struct __uses_allocator<_Tp, _Alloc, false>
: public false_type
{
};
template <class _Tp, class _Alloc>
struct __attribute__((__type_visibility__("default"))) uses_allocator
: public __uses_allocator<_Tp, _Alloc>
{
};
template <class _Tp, class _Alloc>
inline constexpr size_t uses_allocator_v = uses_allocator<_Tp, _Alloc>::value;
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_arg_t.h" 2 3
# 22 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_arg_t.h" 3
namespace std { inline namespace __1 {
struct __attribute__((__type_visibility__("default"))) allocator_arg_t { explicit allocator_arg_t() = default; };
constexpr allocator_arg_t allocator_arg = allocator_arg_t();
template <class _Tp, class _Alloc, class ..._Args>
struct __uses_alloc_ctor_imp
{
typedef __attribute__((__nodebug__)) __remove_cvref_t<_Alloc> _RawAlloc;
static const bool __ua = uses_allocator<_Tp, _RawAlloc>::value;
static const bool __ic =
is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>::value;
static const int value = __ua ? 2 - __ic : 0;
};
template <class _Tp, class _Alloc, class ..._Args>
struct __uses_alloc_ctor
: integral_constant<int, __uses_alloc_ctor_imp<_Tp, _Alloc, _Args...>::value>
{};
template <class _Tp, class _Allocator, class... _Args>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void __user_alloc_construct_impl (integral_constant<int, 0>, _Tp *__storage, const _Allocator &, _Args &&... __args )
{
new (__storage) _Tp (std::forward<_Args>(__args)...);
}
template <class _Tp, class _Allocator, class... _Args>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void __user_alloc_construct_impl (integral_constant<int, 1>, _Tp *__storage, const _Allocator &__a, _Args &&... __args )
{
new (__storage) _Tp (allocator_arg, __a, std::forward<_Args>(__args)...);
}
template <class _Tp, class _Allocator, class... _Args>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void __user_alloc_construct_impl (integral_constant<int, 2>, _Tp *__storage, const _Allocator &__a, _Args &&... __args )
{
new (__storage) _Tp (std::forward<_Args>(__args)..., __a);
}
}}
# 888 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/memory" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/assume_aligned.h" 1 3
# 21 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/assume_aligned.h" 3
namespace std { inline namespace __1 {
# 44 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/assume_aligned.h" 3
}}
# 890 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/memory" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/auto_ptr.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/auto_ptr.h" 3
# 891 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/memory" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/compressed_pair.h" 1 3
# 32 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/compressed_pair.h" 3
namespace std { inline namespace __1 {
struct __default_init_tag {};
struct __value_init_tag {};
template <class _Tp, int _Idx, bool _CanBeEmptyBase = is_empty<_Tp>::value && !__libcpp_is_final<_Tp>::value>
struct __compressed_pair_elem {
using _ParamT = _Tp;
using reference = _Tp&;
using const_reference = const _Tp&;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr explicit __compressed_pair_elem(__default_init_tag) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr explicit __compressed_pair_elem(__value_init_tag) : __value_() {}
template <class _Up, class = __enable_if_t<!is_same<__compressed_pair_elem, typename decay<_Up>::type>::value> >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
explicit __compressed_pair_elem(_Up&& __u) : __value_(std::forward<_Up>(__u)) {}
template <class... _Args, size_t... _Indices>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
explicit __compressed_pair_elem(piecewise_construct_t, tuple<_Args...> __args, __tuple_indices<_Indices...>)
: __value_(std::forward<_Args>(std::get<_Indices>(__args))...) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr reference __get() noexcept { return __value_; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr const_reference __get() const noexcept { return __value_; }
private:
_Tp __value_;
};
template <class _Tp, int _Idx>
struct __compressed_pair_elem<_Tp, _Idx, true> : private _Tp {
using _ParamT = _Tp;
using reference = _Tp&;
using const_reference = const _Tp&;
using __value_type = _Tp;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr explicit __compressed_pair_elem() = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr explicit __compressed_pair_elem(__default_init_tag) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr explicit __compressed_pair_elem(__value_init_tag) : __value_type() {}
template <class _Up, class = __enable_if_t<!is_same<__compressed_pair_elem, typename decay<_Up>::type>::value> >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
explicit __compressed_pair_elem(_Up&& __u) : __value_type(std::forward<_Up>(__u)) {}
template <class... _Args, size_t... _Indices>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
__compressed_pair_elem(piecewise_construct_t, tuple<_Args...> __args, __tuple_indices<_Indices...>)
: __value_type(std::forward<_Args>(std::get<_Indices>(__args))...) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr reference __get() noexcept { return *this; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr const_reference __get() const noexcept { return *this; }
};
template <class _T1, class _T2>
class __compressed_pair : private __compressed_pair_elem<_T1, 0>,
private __compressed_pair_elem<_T2, 1> {
public:
static_assert((!is_same<_T1, _T2>::value),
"__compressed_pair cannot be instantiated when T1 and T2 are the same type; "
"The current implementation is NOT ABI-compatible with the previous implementation for this configuration");
using _Base1 __attribute__((__nodebug__)) = __compressed_pair_elem<_T1, 0>;
using _Base2 __attribute__((__nodebug__)) = __compressed_pair_elem<_T2, 1>;
template <bool _Dummy = true,
class = __enable_if_t<
__dependent_type<is_default_constructible<_T1>, _Dummy>::value &&
__dependent_type<is_default_constructible<_T2>, _Dummy>::value
>
>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
explicit __compressed_pair() : _Base1(__value_init_tag()), _Base2(__value_init_tag()) {}
template <class _U1, class _U2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
explicit __compressed_pair(_U1&& __t1, _U2&& __t2) : _Base1(std::forward<_U1>(__t1)), _Base2(std::forward<_U2>(__t2)) {}
template <class... _Args1, class... _Args2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
explicit __compressed_pair(piecewise_construct_t __pc, tuple<_Args1...> __first_args,
tuple<_Args2...> __second_args)
: _Base1(__pc, std::move(__first_args), typename __make_tuple_indices<sizeof...(_Args1)>::type()),
_Base2(__pc, std::move(__second_args), typename __make_tuple_indices<sizeof...(_Args2)>::type()) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
typename _Base1::reference first() noexcept {
return static_cast<_Base1&>(*this).__get();
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
typename _Base1::const_reference first() const noexcept {
return static_cast<_Base1 const&>(*this).__get();
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
typename _Base2::reference second() noexcept {
return static_cast<_Base2&>(*this).__get();
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
typename _Base2::const_reference second() const noexcept {
return static_cast<_Base2 const&>(*this).__get();
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr static
_Base1* __get_first_base(__compressed_pair* __pair) noexcept {
return static_cast<_Base1*>(__pair);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr static
_Base2* __get_second_base(__compressed_pair* __pair) noexcept {
return static_cast<_Base2*>(__pair);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
void swap(__compressed_pair& __x)
noexcept(__is_nothrow_swappable<_T1>::value && __is_nothrow_swappable<_T2>::value) {
using std::swap;
swap(first(), __x.first());
swap(second(), __x.second());
}
};
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
void swap(__compressed_pair<_T1, _T2>& __x, __compressed_pair<_T1, _T2>& __y)
noexcept(__is_nothrow_swappable<_T1>::value && __is_nothrow_swappable<_T2>::value) {
__x.swap(__y);
}
}}
# 892 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/memory" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/concepts.h" 1 3
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/concepts.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/concepts.h" 1 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/concepts.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/arithmetic.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/arithmetic.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_signed_integer.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_signed_integer.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __libcpp_is_signed_integer : public false_type {};
template <> struct __libcpp_is_signed_integer<signed char> : public true_type {};
template <> struct __libcpp_is_signed_integer<signed short> : public true_type {};
template <> struct __libcpp_is_signed_integer<signed int> : public true_type {};
template <> struct __libcpp_is_signed_integer<signed long> : public true_type {};
template <> struct __libcpp_is_signed_integer<signed long long> : public true_type {};
template <> struct __libcpp_is_signed_integer<__int128_t> : public true_type {};
}}
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/arithmetic.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_unsigned_integer.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_unsigned_integer.h" 3
namespace std { inline namespace __1 {
template <class _Tp> struct __libcpp_is_unsigned_integer : public false_type {};
template <> struct __libcpp_is_unsigned_integer<unsigned char> : public true_type {};
template <> struct __libcpp_is_unsigned_integer<unsigned short> : public true_type {};
template <> struct __libcpp_is_unsigned_integer<unsigned int> : public true_type {};
template <> struct __libcpp_is_unsigned_integer<unsigned long> : public true_type {};
template <> struct __libcpp_is_unsigned_integer<unsigned long long> : public true_type {};
template <> struct __libcpp_is_unsigned_integer<__uint128_t> : public true_type {};
}}
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/arithmetic.h" 2 3
# 21 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/arithmetic.h" 3
namespace std { inline namespace __1 {
# 50 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/arithmetic.h" 3
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/concepts.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/derived_from.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/derived_from.h" 3
namespace std { inline namespace __1 {
# 33 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/derived_from.h" 3
}}
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/concepts.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/invocable.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/invocable.h" 3
namespace std { inline namespace __1 {
# 38 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/invocable.h" 3
}}
# 21 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/concepts.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/predicate.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/predicate.h" 3
namespace std { inline namespace __1 {
# 33 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/predicate.h" 3
}}
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/concepts.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/regular.h" 1 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/regular.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/semiregular.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/semiregular.h" 3
namespace std { inline namespace __1 {
# 31 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/semiregular.h" 3
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/regular.h" 2 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/regular.h" 3
namespace std { inline namespace __1 {
# 31 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/regular.h" 3
}}
# 24 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/concepts.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/relation.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/relation.h" 3
namespace std { inline namespace __1 {
# 42 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/relation.h" 3
}}
# 25 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/concepts.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/incrementable_traits.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/incrementable_traits.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_primary_template.h" 1 3
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_primary_template.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_valid_expansion.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_valid_expansion.h" 3
namespace std { inline namespace __1 {
template <template <class...> class _Templ, class ..._Args, class = _Templ<_Args...> >
true_type __sfinae_test_impl(int);
template <template <class...> class, class ...>
false_type __sfinae_test_impl(...);
template <template <class ...> class _Templ, class ..._Args>
using _IsValidExpansion __attribute__((__nodebug__)) = decltype(std::__sfinae_test_impl<_Templ, _Args...>(0));
}}
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_primary_template.h" 2 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_primary_template.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
using __test_for_primary_template = __enable_if_t<
_IsSame<_Tp, typename _Tp::__primary_template>::value
>;
template <class _Tp>
using __is_primary_template = _IsValidExpansion<
__test_for_primary_template, _Tp
>;
}}
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/incrementable_traits.h" 2 3
# 25 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/incrementable_traits.h" 3
namespace std { inline namespace __1 {
# 76 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/incrementable_traits.h" 3
}}
# 31 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/concepts.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/iter_move.h" 1 3
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/iter_move.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/iterator_traits.h" 1 3
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/iterator_traits.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/readable_traits.h" 1 3
# 25 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/readable_traits.h" 3
namespace std { inline namespace __1 {
# 90 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/readable_traits.h" 3
}}
# 24 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/iterator_traits.h" 2 3
# 42 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/iterator_traits.h" 3
namespace std { inline namespace __1 {
# 67 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/iterator_traits.h" 3
template <class _Iter>
struct __attribute__((__type_visibility__("default"))) iterator_traits;
struct __attribute__((__type_visibility__("default"))) input_iterator_tag {};
struct __attribute__((__type_visibility__("default"))) output_iterator_tag {};
struct __attribute__((__type_visibility__("default"))) forward_iterator_tag : public input_iterator_tag {};
struct __attribute__((__type_visibility__("default"))) bidirectional_iterator_tag : public forward_iterator_tag {};
struct __attribute__((__type_visibility__("default"))) random_access_iterator_tag : public bidirectional_iterator_tag {};
template <class _Iter>
struct __iter_traits_cache {
using type = _If<
__is_primary_template<iterator_traits<_Iter> >::value,
_Iter,
iterator_traits<_Iter>
>;
};
template <class _Iter>
using _ITER_TRAITS = typename __iter_traits_cache<_Iter>::type;
struct __iter_concept_concept_test {
template <class _Iter>
using _Apply = typename _ITER_TRAITS<_Iter>::iterator_concept;
};
struct __iter_concept_category_test {
template <class _Iter>
using _Apply = typename _ITER_TRAITS<_Iter>::iterator_category;
};
struct __iter_concept_random_fallback {
template <class _Iter>
using _Apply = __enable_if_t<
__is_primary_template<iterator_traits<_Iter> >::value,
random_access_iterator_tag
>;
};
template <class _Iter, class _Tester> struct __test_iter_concept
: _IsValidExpansion<_Tester::template _Apply, _Iter>,
_Tester
{
};
template <class _Iter>
struct __iter_concept_cache {
using type = _Or<
__test_iter_concept<_Iter, __iter_concept_concept_test>,
__test_iter_concept<_Iter, __iter_concept_category_test>,
__test_iter_concept<_Iter, __iter_concept_random_fallback>
>;
};
template <class _Iter>
using _ITER_CONCEPT = typename __iter_concept_cache<_Iter>::type::template _Apply<_Iter>;
template <class _Tp>
struct __has_iterator_typedefs
{
private:
template <class _Up> static false_type __test(...);
template <class _Up> static true_type __test(__void_t<typename _Up::iterator_category>* = nullptr,
__void_t<typename _Up::difference_type>* = nullptr,
__void_t<typename _Up::value_type>* = nullptr,
__void_t<typename _Up::reference>* = nullptr,
__void_t<typename _Up::pointer>* = nullptr);
public:
static const bool value = decltype(__test<_Tp>(0,0,0,0,0))::value;
};
template <class _Tp>
struct __has_iterator_category
{
private:
template <class _Up> static false_type __test(...);
template <class _Up> static true_type __test(typename _Up::iterator_category* = nullptr);
public:
static const bool value = decltype(__test<_Tp>(nullptr))::value;
};
template <class _Tp>
struct __has_iterator_concept
{
private:
template <class _Up> static false_type __test(...);
template <class _Up> static true_type __test(typename _Up::iterator_concept* = nullptr);
public:
static const bool value = decltype(__test<_Tp>(nullptr))::value;
};
# 386 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/iterator_traits.h" 3
template <class _Iter, bool> struct __iterator_traits {};
template <class _Iter, bool> struct __iterator_traits_impl {};
template <class _Iter>
struct __iterator_traits_impl<_Iter, true>
{
typedef typename _Iter::difference_type difference_type;
typedef typename _Iter::value_type value_type;
typedef typename _Iter::pointer pointer;
typedef typename _Iter::reference reference;
typedef typename _Iter::iterator_category iterator_category;
};
template <class _Iter>
struct __iterator_traits<_Iter, true>
: __iterator_traits_impl
<
_Iter,
is_convertible<typename _Iter::iterator_category, input_iterator_tag>::value ||
is_convertible<typename _Iter::iterator_category, output_iterator_tag>::value
>
{};
template <class _Iter>
struct __attribute__((__type_visibility__("default"))) iterator_traits
: __iterator_traits<_Iter, __has_iterator_typedefs<_Iter>::value> {
using __primary_template = iterator_traits;
};
template<class _Tp>
struct __attribute__((__type_visibility__("default"))) iterator_traits<_Tp*>
{
typedef ptrdiff_t difference_type;
typedef __remove_cv_t<_Tp> value_type;
typedef _Tp* pointer;
typedef _Tp& reference;
typedef random_access_iterator_tag iterator_category;
};
template <class _Tp, class _Up, bool = __has_iterator_category<iterator_traits<_Tp> >::value>
struct __has_iterator_category_convertible_to
: is_convertible<typename iterator_traits<_Tp>::iterator_category, _Up>
{};
template <class _Tp, class _Up>
struct __has_iterator_category_convertible_to<_Tp, _Up, false> : false_type {};
template <class _Tp, class _Up, bool = __has_iterator_concept<_Tp>::value>
struct __has_iterator_concept_convertible_to
: is_convertible<typename _Tp::iterator_concept, _Up>
{};
template <class _Tp, class _Up>
struct __has_iterator_concept_convertible_to<_Tp, _Up, false> : false_type {};
template <class _Tp>
struct __is_cpp17_input_iterator : public __has_iterator_category_convertible_to<_Tp, input_iterator_tag> {};
template <class _Tp>
struct __is_cpp17_forward_iterator : public __has_iterator_category_convertible_to<_Tp, forward_iterator_tag> {};
template <class _Tp>
struct __is_cpp17_bidirectional_iterator : public __has_iterator_category_convertible_to<_Tp, bidirectional_iterator_tag> {};
template <class _Tp>
struct __is_cpp17_random_access_iterator : public __has_iterator_category_convertible_to<_Tp, random_access_iterator_tag> {};
# 481 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/iterator_traits.h" 3
template <class _Tp>
struct __is_cpp17_contiguous_iterator : false_type {};
template <class _Up>
struct __is_cpp17_contiguous_iterator<_Up*> : true_type {};
template <class _Iter>
class __wrap_iter;
template <class _Tp>
struct __is_exactly_cpp17_input_iterator
: public integral_constant<bool,
__has_iterator_category_convertible_to<_Tp, input_iterator_tag>::value &&
!__has_iterator_category_convertible_to<_Tp, forward_iterator_tag>::value> {};
template <class _Tp>
struct __is_exactly_cpp17_forward_iterator
: public integral_constant<bool,
__has_iterator_category_convertible_to<_Tp, forward_iterator_tag>::value &&
!__has_iterator_category_convertible_to<_Tp, bidirectional_iterator_tag>::value> {};
template <class _Tp>
struct __is_exactly_cpp17_bidirectional_iterator
: public integral_constant<bool,
__has_iterator_category_convertible_to<_Tp, bidirectional_iterator_tag>::value &&
!__has_iterator_category_convertible_to<_Tp, random_access_iterator_tag>::value> {};
template<class _InputIterator>
using __iter_value_type = typename iterator_traits<_InputIterator>::value_type;
template<class _InputIterator>
using __iter_key_type = __remove_const_t<typename iterator_traits<_InputIterator>::value_type::first_type>;
template<class _InputIterator>
using __iter_mapped_type = typename iterator_traits<_InputIterator>::value_type::second_type;
template<class _InputIterator>
using __iter_to_alloc_type = pair<
typename add_const<typename iterator_traits<_InputIterator>::value_type::first_type>::type,
typename iterator_traits<_InputIterator>::value_type::second_type>;
template <class _Iter>
using __iterator_category_type = typename iterator_traits<_Iter>::iterator_category;
template <class _Iter>
using __iterator_pointer_type = typename iterator_traits<_Iter>::pointer;
template <class _Iter>
using __iter_diff_t = typename iterator_traits<_Iter>::difference_type;
template<class _InputIterator>
using __iter_value_type = typename iterator_traits<_InputIterator>::value_type;
}}
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/iter_move.h" 2 3
# 24 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/iter_move.h" 3
namespace std { inline namespace __1 {
# 102 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/iter_move.h" 3
}}
# 32 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/concepts.h" 2 3
# 45 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/concepts.h" 3
namespace std { inline namespace __1 {
# 298 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/concepts.h" 3
}}
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/concepts.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/access.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/access.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/enable_borrowed_range.h" 1 3
# 21 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/enable_borrowed_range.h" 3
namespace std { inline namespace __1 {
# 38 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/enable_borrowed_range.h" 3
}}
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/access.h" 2 3
# 28 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/access.h" 3
namespace std { inline namespace __1 {
# 228 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/access.h" 3
}}
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/concepts.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/concepts.h" 1 3
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/concepts.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/data.h" 1 3
# 29 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/data.h" 3
namespace std { inline namespace __1 {
# 110 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/data.h" 3
}}
# 24 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/concepts.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/enable_view.h" 1 3
# 22 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/enable_view.h" 3
namespace std { inline namespace __1 {
# 48 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/enable_view.h" 3
}}
# 26 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/concepts.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/size.h" 1 3
# 29 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/size.h" 3
namespace std { inline namespace __1 {
# 146 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/size.h" 3
}}
# 27 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/concepts.h" 2 3
# 36 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/concepts.h" 3
namespace std { inline namespace __1 {
# 145 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/concepts.h" 3
}}
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/concepts.h" 2 3
# 25 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/concepts.h" 3
namespace std { inline namespace __1 {
# 67 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/concepts.h" 3
}}
# 893 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/memory" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/ranges_construct_at.h" 1 3
# 21 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/ranges_construct_at.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/dangling.h" 1 3
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/dangling.h" 3
namespace std { inline namespace __1 {
# 40 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/dangling.h" 3
}}
# 22 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/ranges_construct_at.h" 2 3
# 29 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/ranges_construct_at.h" 3
namespace std { inline namespace __1 {
# 123 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/ranges_construct_at.h" 3
}}
# 896 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/memory" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/ranges_uninitialized_algorithms.h" 1 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/ranges_uninitialized_algorithms.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/in_out_result.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/in_out_result.h" 3
namespace std { inline namespace __1 {
# 51 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/in_out_result.h" 3
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/ranges_uninitialized_algorithms.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/uninitialized_algorithms.h" 1 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/uninitialized_algorithms.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/copy.h" 1 3
# 12 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/copy.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/copy_move_common.h" 1 3
# 12 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/copy_move_common.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/iterator_operations.h" 1 3
# 12 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/iterator_operations.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/iter_swap.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/iter_swap.h" 3
namespace std { inline namespace __1 {
template <class _ForwardIterator1, class _ForwardIterator2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) void iter_swap(_ForwardIterator1 __a,
_ForwardIterator2 __b)
noexcept(noexcept(swap(*std::declval<_ForwardIterator1>(), *std::declval<_ForwardIterator2>()))) {
swap(*__a, *__b);
}
}}
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/iterator_operations.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/ranges_iterator_concept.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/ranges_iterator_concept.h" 3
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/iterator_operations.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/advance.h" 1 3
# 22 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/advance.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/convert_to_integral.h" 1 3
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__utility/convert_to_integral.h" 3
namespace std { inline namespace __1 {
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
int __convert_to_integral(int __val) { return __val; }
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
unsigned __convert_to_integral(unsigned __val) { return __val; }
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
long __convert_to_integral(long __val) { return __val; }
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
unsigned long __convert_to_integral(unsigned long __val) { return __val; }
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
long long __convert_to_integral(long long __val) { return __val; }
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
unsigned long long __convert_to_integral(unsigned long long __val) {return __val; }
template<typename _Fp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
typename enable_if<is_floating_point<_Fp>::value, long long>::type
__convert_to_integral(_Fp __val) { return __val; }
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
__int128_t __convert_to_integral(__int128_t __val) { return __val; }
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
__uint128_t __convert_to_integral(__uint128_t __val) { return __val; }
template <class _Tp, bool = is_enum<_Tp>::value>
struct __sfinae_underlying_type
{
typedef typename underlying_type<_Tp>::type type;
typedef decltype(((type)1) + 0) __promoted_type;
};
template <class _Tp>
struct __sfinae_underlying_type<_Tp, false> {};
template <class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
typename __sfinae_underlying_type<_Tp>::__promoted_type
__convert_to_integral(_Tp __val) { return __val; }
}}
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/advance.h" 2 3
# 31 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/advance.h" 3
namespace std { inline namespace __1 {
template <class _InputIter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
void __advance(_InputIter& __i, typename iterator_traits<_InputIter>::difference_type __n, input_iterator_tag) {
for (; __n > 0; --__n)
++__i;
}
template <class _BiDirIter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
void __advance(_BiDirIter& __i, typename iterator_traits<_BiDirIter>::difference_type __n, bidirectional_iterator_tag) {
if (__n >= 0)
for (; __n > 0; --__n)
++__i;
else
for (; __n < 0; ++__n)
--__i;
}
template <class _RandIter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
void __advance(_RandIter& __i, typename iterator_traits<_RandIter>::difference_type __n, random_access_iterator_tag) {
__i += __n;
}
template <
class _InputIter, class _Distance,
class _IntegralDistance = decltype(std::__convert_to_integral(std::declval<_Distance>())),
class = __enable_if_t<is_integral<_IntegralDistance>::value> >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
void advance(_InputIter& __i, _Distance __orig_n) {
typedef typename iterator_traits<_InputIter>::difference_type _Difference;
_Difference __n = static_cast<_Difference>(std::__convert_to_integral(__orig_n));
(__builtin_expect(static_cast<bool>(__n >= 0 || __is_cpp17_bidirectional_iterator<_InputIter>::value), 1) ? (void)0 : ::std::__libcpp_verbose_abort("%s:%d: assertion %s failed: %s", __builtin_FILE(), __builtin_LINE(), "__n >= 0 || __is_cpp17_bidirectional_iterator<_InputIter>::value", "Attempt to advance(it, n) with negative n on a non-bidirectional iterator"));
std::__advance(__i, __n, typename iterator_traits<_InputIter>::iterator_category());
}
# 201 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/advance.h" 3
}}
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/iterator_operations.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/distance.h" 1 3
# 25 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/distance.h" 3
namespace std { inline namespace __1 {
template <class _InputIter>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
typename iterator_traits<_InputIter>::difference_type
__distance(_InputIter __first, _InputIter __last, input_iterator_tag)
{
typename iterator_traits<_InputIter>::difference_type __r(0);
for (; __first != __last; ++__first)
++__r;
return __r;
}
template <class _RandIter>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
typename iterator_traits<_RandIter>::difference_type
__distance(_RandIter __first, _RandIter __last, random_access_iterator_tag)
{
return __last - __first;
}
template <class _InputIter>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
typename iterator_traits<_InputIter>::difference_type
distance(_InputIter __first, _InputIter __last)
{
return std::__distance(__first, __last, typename iterator_traits<_InputIter>::iterator_category());
}
# 106 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/distance.h" 3
}}
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/iterator_operations.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/iter_swap.h" 1 3
# 27 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/iter_swap.h" 3
namespace std { inline namespace __1 {
# 111 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/iter_swap.h" 3
}}
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/iterator_operations.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/next.h" 1 3
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/next.h" 3
namespace std { inline namespace __1 {
template <class _InputIter>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
typename enable_if<__is_cpp17_input_iterator<_InputIter>::value, _InputIter>::type
next(_InputIter __x, typename iterator_traits<_InputIter>::difference_type __n = 1) {
(__builtin_expect(static_cast<bool>(__n >= 0 || __is_cpp17_bidirectional_iterator<_InputIter>::value), 1) ? (void)0 : ::std::__libcpp_verbose_abort("%s:%d: assertion %s failed: %s", __builtin_FILE(), __builtin_LINE(), "__n >= 0 || __is_cpp17_bidirectional_iterator<_InputIter>::value", "Attempt to next(it, n) with negative n on a non-bidirectional iterator"));
std::advance(__x, __n);
return __x;
}
# 82 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/next.h" 3
}}
# 22 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/iterator_operations.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/prev.h" 1 3
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/prev.h" 3
namespace std { inline namespace __1 {
template <class _InputIter>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
typename enable_if<__is_cpp17_input_iterator<_InputIter>::value, _InputIter>::type
prev(_InputIter __x, typename iterator_traits<_InputIter>::difference_type __n = 1) {
(__builtin_expect(static_cast<bool>(__n <= 0 || __is_cpp17_bidirectional_iterator<_InputIter>::value), 1) ? (void)0 : ::std::__libcpp_verbose_abort("%s:%d: assertion %s failed: %s", __builtin_FILE(), __builtin_LINE(), "__n <= 0 || __is_cpp17_bidirectional_iterator<_InputIter>::value", "Attempt to prev(it, n) with a positive n on a non-bidirectional iterator"));
std::advance(__x, -__n);
return __x;
}
# 75 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/prev.h" 3
}}
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/iterator_operations.h" 2 3
# 34 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/iterator_operations.h" 3
namespace std { inline namespace __1 {
template <class _AlgPolicy> struct _IterOps;
# 66 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/iterator_operations.h" 3
struct _ClassicAlgPolicy {};
template <>
struct _IterOps<_ClassicAlgPolicy> {
template <class _Iter>
using __value_type = typename iterator_traits<_Iter>::value_type;
template <class _Iter>
using __iterator_category = typename iterator_traits<_Iter>::iterator_category;
template <class _Iter>
using __difference_type = typename iterator_traits<_Iter>::difference_type;
template <class _Iter, class _Distance>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
static void advance(_Iter& __iter, _Distance __count) {
std::advance(__iter, __count);
}
template <class _Iter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
static typename iterator_traits<_Iter>::difference_type distance(_Iter __first, _Iter __last) {
return std::distance(__first, __last);
}
template <class _Iter>
using __deref_t = decltype(*std::declval<_Iter&>());
template <class _Iter>
using __move_t = decltype(std::move(*std::declval<_Iter&>()));
template <class _Iter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
static void __validate_iter_reference() {
static_assert(is_same<__deref_t<_Iter>, typename iterator_traits<__remove_cvref_t<_Iter> >::reference>::value,
"It looks like your iterator's `iterator_traits<It>::reference` does not match the return type of "
"dereferencing the iterator, i.e., calling `*it`. This is undefined behavior according to [input.iterators] "
"and can lead to dangling reference issues at runtime, so we are flagging this.");
}
template <class _Iter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr static
__enable_if_t<
is_reference<__deref_t<_Iter> >::value,
__move_t<_Iter> >
__iter_move(_Iter&& __i) {
__validate_iter_reference<_Iter>();
return std::move(*std::forward<_Iter>(__i));
}
template <class _Iter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr static
__enable_if_t<
!is_reference<__deref_t<_Iter> >::value,
__deref_t<_Iter> >
__iter_move(_Iter&& __i) {
__validate_iter_reference<_Iter>();
return *std::forward<_Iter>(__i);
}
template <class _Iter1, class _Iter2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
static void iter_swap(_Iter1&& __a, _Iter2&& __b) {
std::iter_swap(std::forward<_Iter1>(__a), std::forward<_Iter2>(__b));
}
template <class _Iterator>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr
_Iterator next(_Iterator, _Iterator __last) {
return __last;
}
template <class _Iter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr
__remove_cvref_t<_Iter> next(_Iter&& __it,
typename iterator_traits<__remove_cvref_t<_Iter> >::difference_type __n = 1) {
return std::next(std::forward<_Iter>(__it), __n);
}
template <class _Iter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr
__remove_cvref_t<_Iter> prev(_Iter&& __iter,
typename iterator_traits<__remove_cvref_t<_Iter> >::difference_type __n = 1) {
return std::prev(std::forward<_Iter>(__iter), __n);
}
template <class _Iter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) static constexpr
void __advance_to(_Iter& __first, _Iter __last) {
__first = __last;
}
};
}}
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/copy_move_common.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/unwrap_iter.h" 1 3
# 22 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/unwrap_iter.h" 3
namespace std { inline namespace __1 {
# 35 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/unwrap_iter.h" 3
template <class _Iter, bool = __is_cpp17_contiguous_iterator<_Iter>::value>
struct __unwrap_iter_impl {
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr _Iter __rewrap(_Iter, _Iter __iter) { return __iter; }
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr _Iter __unwrap(_Iter __i) noexcept { return __i; }
};
template <class _Iter>
struct __unwrap_iter_impl<_Iter, true> {
using _ToAddressT = decltype(std::__to_address(std::declval<_Iter>()));
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr _Iter __rewrap(_Iter __orig_iter, _ToAddressT __unwrapped_iter) {
return __orig_iter + (__unwrapped_iter - std::__to_address(__orig_iter));
}
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr _ToAddressT __unwrap(_Iter __i) noexcept {
return std::__to_address(__i);
}
};
template<class _Iter,
class _Impl = __unwrap_iter_impl<_Iter>,
__enable_if_t<is_copy_constructible<_Iter>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
decltype(_Impl::__unwrap(std::declval<_Iter>())) __unwrap_iter(_Iter __i) noexcept {
return _Impl::__unwrap(__i);
}
# 75 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/unwrap_iter.h" 3
template <class _OrigIter, class _Iter, class _Impl = __unwrap_iter_impl<_OrigIter> >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr _OrigIter __rewrap_iter(_OrigIter __orig_iter, _Iter __iter) noexcept {
return _Impl::__rewrap(std::move(__orig_iter), std::move(__iter));
}
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/copy_move_common.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/unwrap_range.h" 1 3
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/unwrap_range.h" 3
namespace std { inline namespace __1 {
# 84 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/unwrap_range.h" 3
template <class _Iter, class _Unwrapped = decltype(std::__unwrap_iter(std::declval<_Iter>()))>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr pair<_Unwrapped, _Unwrapped> __unwrap_range(_Iter __first, _Iter __last) {
return std::make_pair(std::__unwrap_iter(std::move(__first)), std::__unwrap_iter(std::move(__last)));
}
template <class _Iter, class _Unwrapped = decltype(std::__unwrap_iter(std::declval<_Iter>()))>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr _Iter __rewrap_range(_Iter __orig_iter, _Unwrapped __iter) {
return std::__rewrap_iter(std::move(__orig_iter), std::move(__iter));
}
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/copy_move_common.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_always_bitcastable.h" 1 3
# 22 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_always_bitcastable.h" 3
namespace std { inline namespace __1 {
template <class _From, class _To>
struct __is_always_bitcastable {
using _UnqualFrom = __remove_cv_t<_From>;
using _UnqualTo = __remove_cv_t<_To>;
static const bool value =
(is_same<_UnqualFrom, _UnqualTo>::value && is_trivially_copyable<_UnqualFrom>::value) ||
# 72 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/is_always_bitcastable.h" 3
(
sizeof(_From) == sizeof(_To) &&
is_integral<_From>::value &&
is_integral<_To>::value &&
!is_same<_UnqualTo, bool>::value
);
};
}}
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/copy_move_common.h" 2 3
# 31 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/copy_move_common.h" 3
namespace std { inline namespace __1 {
template <class _From, class _To>
struct __can_lower_copy_assignment_to_memmove {
static const bool value =
__is_always_bitcastable<_From, _To>::value &&
is_trivially_assignable<_To&, const _From&>::value &&
!is_volatile<_From>::value &&
!is_volatile<_To>::value;
};
template <class _From, class _To>
struct __can_lower_move_assignment_to_memmove {
static const bool value =
__is_always_bitcastable<_From, _To>::value &&
is_trivially_assignable<_To&, _From&&>::value &&
!is_volatile<_From>::value &&
!is_volatile<_To>::value;
};
template <class _In, class _Out>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr pair<_In*, _Out*>
__copy_trivial_impl(_In* __first, _In* __last, _Out* __result) {
const size_t __n = static_cast<size_t>(__last - __first);
::__builtin_memmove(__result, __first, __n * sizeof(_Out));
return std::make_pair(__last, __result + __n);
}
template <class _In, class _Out>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr pair<_In*, _Out*>
__copy_backward_trivial_impl(_In* __first, _In* __last, _Out* __result) {
const size_t __n = static_cast<size_t>(__last - __first);
__result -= __n;
::__builtin_memmove(__result, __first, __n * sizeof(_Out));
return std::make_pair(__last, __result);
}
template <class _F1, class _F2>
struct __overload : _F1, _F2 {
using _F1::operator();
using _F2::operator();
};
template <class _InIter, class _Sent, class _OutIter, class = void>
struct __can_rewrap : false_type {};
template <class _InIter, class _Sent, class _OutIter>
struct __can_rewrap<_InIter,
_Sent,
_OutIter,
__enable_if_t< is_copy_constructible<_InIter>::value &&
is_copy_constructible<_OutIter>::value > > : true_type {};
template <class _Algorithm,
class _InIter,
class _Sent,
class _OutIter,
__enable_if_t<__can_rewrap<_InIter, _Sent, _OutIter>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr pair<_InIter, _OutIter>
__unwrap_and_dispatch(_InIter __first, _Sent __last, _OutIter __out_first) {
auto __range = std::__unwrap_range(__first, std::move(__last));
auto __result = _Algorithm()(std::move(__range.first), std::move(__range.second), std::__unwrap_iter(__out_first));
return std::make_pair(std::__rewrap_range<_Sent>(std::move(__first), std::move(__result.first)),
std::__rewrap_iter(std::move(__out_first), std::move(__result.second)));
}
template <class _Algorithm,
class _InIter,
class _Sent,
class _OutIter,
__enable_if_t<!__can_rewrap<_InIter, _Sent, _OutIter>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr pair<_InIter, _OutIter>
__unwrap_and_dispatch(_InIter __first, _Sent __last, _OutIter __out_first) {
return _Algorithm()(std::move(__first), std::move(__last), std::move(__out_first));
}
template <class _IterOps, class _InValue, class _OutIter, class = void>
struct __can_copy_without_conversion : false_type {};
template <class _IterOps, class _InValue, class _OutIter>
struct __can_copy_without_conversion<
_IterOps,
_InValue,
_OutIter,
__enable_if_t<is_same<_InValue, typename _IterOps::template __value_type<_OutIter> >::value> > : true_type {};
template <class _AlgPolicy,
class _NaiveAlgorithm,
class _OptimizedAlgorithm,
class _InIter,
class _Sent,
class _OutIter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr pair<_InIter, _OutIter>
__dispatch_copy_or_move(_InIter __first, _Sent __last, _OutIter __out_first) {
# 148 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/copy_move_common.h" 3
if (__libcpp_is_constant_evaluated()) {
using _InValue = typename _IterOps<_AlgPolicy>::template __value_type<_InIter>;
if (!is_trivially_copyable<_InValue>::value ||
!__can_copy_without_conversion<_IterOps<_AlgPolicy>, _InValue, _OutIter>::value) {
return std::__unwrap_and_dispatch<_NaiveAlgorithm>(std::move(__first), std::move(__last), std::move(__out_first));
}
}
using _Algorithm = __overload<_NaiveAlgorithm, _OptimizedAlgorithm>;
return std::__unwrap_and_dispatch<_Algorithm>(std::move(__first), std::move(__last), std::move(__out_first));
}
}}
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/copy.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/min.h" 1 3
# 12 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/min.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/comp.h" 1 3
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/comp.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/predicate_traits.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__type_traits/predicate_traits.h" 3
namespace std { inline namespace __1 {
template <class _Pred, class _Lhs, class _Rhs>
struct __is_trivial_equality_predicate : false_type {};
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/comp.h" 2 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/comp.h" 3
namespace std { inline namespace __1 {
struct __equal_to {
template <class _T1, class _T2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr bool operator()(const _T1& __x, const _T2& __y) const {
return __x == __y;
}
};
template <class _Lhs, class _Rhs>
struct __is_trivial_equality_predicate<__equal_to, _Lhs, _Rhs> : true_type {};
template <class _T1, class _T2 = _T1>
struct __less
{
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
bool operator()(const _T1& __x, const _T2& __y) const {return __x < __y;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
bool operator()(const _T2& __x, const _T1& __y) const {return __x < __y;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
bool operator()(const _T2& __x, const _T2& __y) const {return __x < __y;}
};
template <class _T1>
struct __less<_T1, _T1>
{
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
};
template <class _T1>
struct __less<const _T1, _T1>
{
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
};
template <class _T1>
struct __less<_T1, const _T1>
{
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
};
}}
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/min.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/comp_ref_type.h" 1 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/comp_ref_type.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__debug" 1 3
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__debug" 3
# 211 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__debug" 3
namespace std { inline namespace __1 {
template <class _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr inline void __debug_db_insert_c(_Tp* __c) {
(void)(__c);
}
template <class _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr inline void __debug_db_insert_i(_Tp* __i) {
(void)(__i);
}
template <class _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr inline void __debug_db_erase_c(_Tp* __c) {
(void)(__c);
}
template <class _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr inline void __debug_db_swap(_Tp* __lhs, _Tp* __rhs) {
(void)(__lhs);
(void)(__rhs);
}
template <class _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr inline void __debug_db_invalidate_all(_Tp* __c) {
(void)(__c);
}
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/comp_ref_type.h" 2 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/comp_ref_type.h" 3
namespace std { inline namespace __1 {
template <class _Compare>
struct __debug_less
{
_Compare &__comp_;
constexpr
__debug_less(_Compare& __c) : __comp_(__c) {}
template <class _Tp, class _Up>
constexpr
bool operator()(const _Tp& __x, const _Up& __y)
{
bool __r = __comp_(__x, __y);
if (__r)
__do_compare_assert(0, __y, __x);
return __r;
}
template <class _Tp, class _Up>
constexpr
bool operator()(_Tp& __x, _Up& __y)
{
bool __r = __comp_(__x, __y);
if (__r)
__do_compare_assert(0, __y, __x);
return __r;
}
template <class _LHS, class _RHS>
constexpr
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
decltype((void)std::declval<_Compare&>()(
std::declval<_LHS &>(), std::declval<_RHS &>()))
__do_compare_assert(int, _LHS & __l, _RHS & __r) {
((void)0);
(void)__l;
(void)__r;
}
template <class _LHS, class _RHS>
constexpr
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void __do_compare_assert(long, _LHS &, _RHS &) {}
};
template <class _Comp>
using __comp_ref_type = _Comp&;
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/min.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/min_element.h" 1 3
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/min_element.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/identity.h" 1 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/identity.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct __is_identity : false_type {};
struct __identity {
template <class _Tp>
[[nodiscard]] constexpr _Tp&& operator()(_Tp&& __t) const noexcept {
return std::forward<_Tp>(__t);
}
using is_transparent = void;
};
template <>
struct __is_identity<__identity> : true_type {};
# 55 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/identity.h" 3
}}
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/min_element.h" 2 3
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/min_element.h" 3
namespace std { inline namespace __1 {
template <class _Comp, class _Iter, class _Sent, class _Proj>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
_Iter __min_element(_Iter __first, _Sent __last, _Comp __comp, _Proj& __proj) {
if (__first == __last)
return __first;
_Iter __i = __first;
while (++__i != __last)
if (std::__invoke(__comp, std::__invoke(__proj, *__i), std::__invoke(__proj, *__first)))
__first = __i;
return __first;
}
template <class _Comp, class _Iter, class _Sent>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
_Iter __min_element(_Iter __first, _Sent __last, _Comp __comp) {
auto __proj = __identity();
return std::__min_element<_Comp>(std::move(__first), std::move(__last), __comp, __proj);
}
template <class _ForwardIterator, class _Compare>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr _ForwardIterator
min_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
{
static_assert(__is_cpp17_forward_iterator<_ForwardIterator>::value,
"std::min_element requires a ForwardIterator");
static_assert(__is_callable<_Compare, decltype(*__first), decltype(*__first)>::value,
"The comparator has to be callable");
return std::__min_element<__comp_ref_type<_Compare> >(std::move(__first), std::move(__last), __comp);
}
template <class _ForwardIterator>
[[nodiscard]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr _ForwardIterator
min_element(_ForwardIterator __first, _ForwardIterator __last)
{
return std::min_element(__first, __last,
__less<typename iterator_traits<_ForwardIterator>::value_type>());
}
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/min.h" 2 3
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/min.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__undef_macros" 1 3
# 24 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/min.h" 2 3
namespace std { inline namespace __1 {
template <class _Tp, class _Compare>
[[nodiscard]] inline
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
const _Tp&
min([[_Clang::__lifetimebound__]] const _Tp& __a, [[_Clang::__lifetimebound__]] const _Tp& __b, _Compare __comp)
{
return __comp(__b, __a) ? __b : __a;
}
template <class _Tp>
[[nodiscard]] inline
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
const _Tp&
min([[_Clang::__lifetimebound__]] const _Tp& __a, [[_Clang::__lifetimebound__]] const _Tp& __b)
{
return std::min(__a, __b, __less<_Tp>());
}
template<class _Tp, class _Compare>
[[nodiscard]] inline
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
_Tp
min(initializer_list<_Tp> __t, _Compare __comp)
{
return *std::__min_element<__comp_ref_type<_Compare> >(__t.begin(), __t.end(), __comp);
}
template<class _Tp>
[[nodiscard]] inline
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
_Tp
min(initializer_list<_Tp> __t)
{
return *std::min_element(__t.begin(), __t.end(), __less<_Tp>());
}
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/copy.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/segmented_iterator.h" 1 3
# 49 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/segmented_iterator.h" 3
namespace std { inline namespace __1 {
template <class _Iterator>
struct __segmented_iterator_traits;
# 68 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/segmented_iterator.h" 3
template <class _Tp, size_t = 0>
struct __has_specialization : false_type {};
template <class _Tp>
struct __has_specialization<_Tp, sizeof(_Tp) * 0> : true_type {};
template <class _Iterator>
using __is_segmented_iterator = __has_specialization<__segmented_iterator_traits<_Iterator> >;
}}
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/copy.h" 2 3
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/copy.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__undef_macros" 1 3
# 27 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/copy.h" 2 3
namespace std { inline namespace __1 {
template <class, class _InIter, class _Sent, class _OutIter>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr pair<_InIter, _OutIter> __copy(_InIter, _Sent, _OutIter);
template <class _AlgPolicy>
struct __copy_loop {
template <class _InIter, class _Sent, class _OutIter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr pair<_InIter, _OutIter>
operator()(_InIter __first, _Sent __last, _OutIter __result) const {
while (__first != __last) {
*__result = *__first;
++__first;
++__result;
}
return std::make_pair(std::move(__first), std::move(__result));
}
template <class _InIter, class _OutIter, __enable_if_t<__is_segmented_iterator<_InIter>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr pair<_InIter, _OutIter>
operator()(_InIter __first, _InIter __last, _OutIter __result) const {
using _Traits = __segmented_iterator_traits<_InIter>;
auto __sfirst = _Traits::__segment(__first);
auto __slast = _Traits::__segment(__last);
if (__sfirst == __slast) {
auto __iters = std::__copy<_AlgPolicy>(_Traits::__local(__first), _Traits::__local(__last), std::move(__result));
return std::make_pair(__last, std::move(__iters.second));
}
__result = std::__copy<_AlgPolicy>(_Traits::__local(__first), _Traits::__end(__sfirst), std::move(__result)).second;
++__sfirst;
while (__sfirst != __slast) {
__result =
std::__copy<_AlgPolicy>(_Traits::__begin(__sfirst), _Traits::__end(__sfirst), std::move(__result)).second;
++__sfirst;
}
__result =
std::__copy<_AlgPolicy>(_Traits::__begin(__sfirst), _Traits::__local(__last), std::move(__result)).second;
return std::make_pair(__last, std::move(__result));
}
template <class _InIter,
class _OutIter,
__enable_if_t<__is_cpp17_random_access_iterator<_InIter>::value &&
!__is_segmented_iterator<_InIter>::value && __is_segmented_iterator<_OutIter>::value,
int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr pair<_InIter, _OutIter>
operator()(_InIter __first, _InIter __last, _OutIter __result) {
using _Traits = __segmented_iterator_traits<_OutIter>;
using _DiffT = typename common_type<__iter_diff_t<_InIter>, __iter_diff_t<_OutIter> >::type;
if (__first == __last)
return std::make_pair(std::move(__first), std::move(__result));
auto __local_first = _Traits::__local(__result);
auto __segment_iterator = _Traits::__segment(__result);
while (true) {
auto __local_last = _Traits::__end(__segment_iterator);
auto __size = std::min<_DiffT>(__local_last - __local_first, __last - __first);
auto __iters = std::__copy<_AlgPolicy>(__first, __first + __size, __local_first);
__first = std::move(__iters.first);
if (__first == __last)
return std::make_pair(std::move(__first), _Traits::__compose(__segment_iterator, std::move(__iters.second)));
__local_first = _Traits::__begin(++__segment_iterator);
}
}
};
struct __copy_trivial {
template <class _In, class _Out,
__enable_if_t<__can_lower_copy_assignment_to_memmove<_In, _Out>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr pair<_In*, _Out*>
operator()(_In* __first, _In* __last, _Out* __result) const {
return std::__copy_trivial_impl(__first, __last, __result);
}
};
template <class _AlgPolicy, class _InIter, class _Sent, class _OutIter>
pair<_InIter, _OutIter> inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
__copy(_InIter __first, _Sent __last, _OutIter __result) {
return std::__dispatch_copy_or_move<_AlgPolicy, __copy_loop<_AlgPolicy>, __copy_trivial>(
std::move(__first), std::move(__last), std::move(__result));
}
template <class _InputIterator, class _OutputIterator>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) _OutputIterator
copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result) {
return std::__copy<_ClassicAlgPolicy>(__first, __last, __result).second;
}
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/uninitialized_algorithms.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/move.h" 1 3
# 24 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/move.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__undef_macros" 1 3
# 28 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__algorithm/move.h" 2 3
namespace std { inline namespace __1 {
template <class _AlgPolicy, class _InIter, class _Sent, class _OutIter>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr pair<_InIter, _OutIter>
__move(_InIter __first, _Sent __last, _OutIter __result);
template <class _AlgPolicy>
struct __move_loop {
template <class _InIter, class _Sent, class _OutIter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr pair<_InIter, _OutIter>
operator()(_InIter __first, _Sent __last, _OutIter __result) const {
while (__first != __last) {
*__result = _IterOps<_AlgPolicy>::__iter_move(__first);
++__first;
++__result;
}
return std::make_pair(std::move(__first), std::move(__result));
}
template <class _InIter, class _OutIter, __enable_if_t<__is_segmented_iterator<_InIter>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr pair<_InIter, _OutIter>
operator()(_InIter __first, _InIter __last, _OutIter __result) const {
using _Traits = __segmented_iterator_traits<_InIter>;
auto __sfirst = _Traits::__segment(__first);
auto __slast = _Traits::__segment(__last);
if (__sfirst == __slast) {
auto __iters = std::__move<_AlgPolicy>(_Traits::__local(__first), _Traits::__local(__last), std::move(__result));
return std::make_pair(__last, std::move(__iters.second));
}
__result = std::__move<_AlgPolicy>(_Traits::__local(__first), _Traits::__end(__sfirst), std::move(__result)).second;
++__sfirst;
while (__sfirst != __slast) {
__result =
std::__move<_AlgPolicy>(_Traits::__begin(__sfirst), _Traits::__end(__sfirst), std::move(__result)).second;
++__sfirst;
}
__result =
std::__move<_AlgPolicy>(_Traits::__begin(__sfirst), _Traits::__local(__last), std::move(__result)).second;
return std::make_pair(__last, std::move(__result));
}
template <class _InIter,
class _OutIter,
__enable_if_t<__is_cpp17_random_access_iterator<_InIter>::value &&
!__is_segmented_iterator<_InIter>::value && __is_segmented_iterator<_OutIter>::value,
int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr pair<_InIter, _OutIter>
operator()(_InIter __first, _InIter __last, _OutIter __result) {
using _Traits = __segmented_iterator_traits<_OutIter>;
using _DiffT = typename common_type<__iter_diff_t<_InIter>, __iter_diff_t<_OutIter> >::type;
if (__first == __last)
return std::make_pair(std::move(__first), std::move(__result));
auto __local_first = _Traits::__local(__result);
auto __segment_iterator = _Traits::__segment(__result);
while (true) {
auto __local_last = _Traits::__end(__segment_iterator);
auto __size = std::min<_DiffT>(__local_last - __local_first, __last - __first);
auto __iters = std::__move<_AlgPolicy>(__first, __first + __size, __local_first);
__first = std::move(__iters.first);
if (__first == __last)
return std::make_pair(std::move(__first), _Traits::__compose(__segment_iterator, std::move(__iters.second)));
__local_first = _Traits::__begin(++__segment_iterator);
}
}
};
struct __move_trivial {
template <class _In, class _Out,
__enable_if_t<__can_lower_move_assignment_to_memmove<_In, _Out>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr pair<_In*, _Out*>
operator()(_In* __first, _In* __last, _Out* __result) const {
return std::__copy_trivial_impl(__first, __last, __result);
}
};
template <class _AlgPolicy, class _InIter, class _Sent, class _OutIter>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr pair<_InIter, _OutIter>
__move(_InIter __first, _Sent __last, _OutIter __result) {
return std::__dispatch_copy_or_move<_AlgPolicy, __move_loop<_AlgPolicy>, __move_trivial>(
std::move(__first), std::move(__last), std::move(__result));
}
template <class _InputIterator, class _OutputIterator>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) _OutputIterator
move(_InputIterator __first, _InputIterator __last, _OutputIterator __result) {
static_assert(is_copy_constructible<_InputIterator>::value, "Iterators has to be copy constructible.");
static_assert(is_copy_constructible<_OutputIterator>::value, "The output iterator has to be copy constructible.");
return std::__move<_ClassicAlgPolicy>(std::move(__first), std::move(__last), std::move(__result)).second;
}
}}
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/uninitialized_algorithms.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/reverse_iterator.h" 1 3
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/reverse_iterator.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/iterator.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/iterator.h" 3
namespace std { inline namespace __1 {
template<class _Category, class _Tp, class _Distance = ptrdiff_t,
class _Pointer = _Tp*, class _Reference = _Tp&>
struct __attribute__((__type_visibility__("default"))) __attribute__((__deprecated__)) iterator
{
typedef _Tp value_type;
typedef _Distance difference_type;
typedef _Pointer pointer;
typedef _Reference reference;
typedef _Category iterator_category;
};
}}
# 24 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/reverse_iterator.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/subrange.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/subrange.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/different_from.h" 1 3
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/different_from.h" 3
namespace std { inline namespace __1 {
# 29 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__concepts/different_from.h" 3
}}
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/subrange.h" 2 3
# 31 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/subrange.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/view_interface.h" 1 3
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/view_interface.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/empty.h" 1 3
# 21 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/empty.h" 3
namespace std { inline namespace __1 {
# 80 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/empty.h" 3
}}
# 24 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/view_interface.h" 2 3
# 30 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/view_interface.h" 3
namespace std { inline namespace __1 {
# 175 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/view_interface.h" 3
}}
# 32 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/subrange.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/pair_like.h" 1 3
# 13 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/pair_like.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/tuple_like.h" 1 3
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/tuple_like.h" 3
namespace std { inline namespace __1 {
# 49 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/tuple_like.h" 3
}}
# 14 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/pair_like.h" 2 3
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/pair_like.h" 3
namespace std { inline namespace __1 {
# 30 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__tuple_dir/pair_like.h" 3
}}
# 33 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/subrange.h" 2 3
# 47 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/subrange.h" 3
namespace std { inline namespace __1 {
# 289 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__ranges/subrange.h" 3
}}
# 33 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/reverse_iterator.h" 2 3
# 45 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/reverse_iterator.h" 3
namespace std { inline namespace __1 {
#pragma GCC diagnostic push
# 49 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/reverse_iterator.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated"
# 49 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/reverse_iterator.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
template <class _Iter>
class __attribute__((__type_visibility__("default"))) reverse_iterator
: public iterator<typename iterator_traits<_Iter>::iterator_category,
typename iterator_traits<_Iter>::value_type,
typename iterator_traits<_Iter>::difference_type,
typename iterator_traits<_Iter>::pointer,
typename iterator_traits<_Iter>::reference>
{
#pragma GCC diagnostic pop
private:
_Iter __t_;
protected:
_Iter current;
public:
using iterator_type = _Iter;
using iterator_category = _If<__is_cpp17_random_access_iterator<_Iter>::value,
random_access_iterator_tag,
typename iterator_traits<_Iter>::iterator_category>;
using pointer = typename iterator_traits<_Iter>::pointer;
using value_type = typename iterator_traits<_Iter>::value_type;
using difference_type = typename iterator_traits<_Iter>::difference_type;
using reference = typename iterator_traits<_Iter>::reference;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
reverse_iterator() : __t_(), current() {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
explicit reverse_iterator(_Iter __x) : __t_(__x), current(__x) {}
template <class _Up, class = __enable_if_t<
!is_same<_Up, _Iter>::value && is_convertible<_Up const&, _Iter>::value
> >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
reverse_iterator(const reverse_iterator<_Up>& __u)
: __t_(__u.base()), current(__u.base())
{ }
template <class _Up, class = __enable_if_t<
!is_same<_Up, _Iter>::value &&
is_convertible<_Up const&, _Iter>::value &&
is_assignable<_Iter&, _Up const&>::value
> >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
reverse_iterator& operator=(const reverse_iterator<_Up>& __u) {
__t_ = current = __u.base();
return *this;
}
# 142 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/reverse_iterator.h" 3
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
_Iter base() const {return current;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
reference operator*() const {_Iter __tmp = current; return *--__tmp;}
# 159 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/reverse_iterator.h" 3
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
pointer operator->() const {
return std::addressof(operator*());
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
reverse_iterator& operator++() {--current; return *this;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
reverse_iterator operator++(int) {reverse_iterator __tmp(*this); --current; return __tmp;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
reverse_iterator& operator--() {++current; return *this;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
reverse_iterator operator--(int) {reverse_iterator __tmp(*this); ++current; return __tmp;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
reverse_iterator operator+(difference_type __n) const {return reverse_iterator(current - __n);}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
reverse_iterator& operator+=(difference_type __n) {current -= __n; return *this;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
reverse_iterator operator-(difference_type __n) const {return reverse_iterator(current + __n);}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
reverse_iterator& operator-=(difference_type __n) {current += __n; return *this;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
reference operator[](difference_type __n) const {return *(*this + __n);}
# 204 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/reverse_iterator.h" 3
};
template <class _Iter1, class _Iter2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
bool
operator==(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
{
return __x.base() == __y.base();
}
template <class _Iter1, class _Iter2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
bool
operator<(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
{
return __x.base() > __y.base();
}
template <class _Iter1, class _Iter2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
bool
operator!=(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
{
return __x.base() != __y.base();
}
template <class _Iter1, class _Iter2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
bool
operator>(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
{
return __x.base() < __y.base();
}
template <class _Iter1, class _Iter2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
bool
operator>=(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
{
return __x.base() <= __y.base();
}
template <class _Iter1, class _Iter2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
bool
operator<=(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
{
return __x.base() >= __y.base();
}
# 295 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/reverse_iterator.h" 3
template <class _Iter1, class _Iter2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
auto
operator-(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
-> decltype(__y.base() - __x.base())
{
return __y.base() - __x.base();
}
# 313 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/reverse_iterator.h" 3
template <class _Iter>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
reverse_iterator<_Iter>
operator+(typename reverse_iterator<_Iter>::difference_type __n, const reverse_iterator<_Iter>& __x)
{
return reverse_iterator<_Iter>(__x.base() - __n);
}
# 328 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/reverse_iterator.h" 3
template <class _Iter>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
reverse_iterator<_Iter> make_reverse_iterator(_Iter __i)
{
return reverse_iterator<_Iter>(__i);
}
template <class _Iter>
using __unconstrained_reverse_iterator = reverse_iterator<_Iter>;
# 485 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/reverse_iterator.h" 3
template <template <class> class _RevIter1, template <class> class _RevIter2, class _Iter>
struct __unwrap_reverse_iter_impl {
using _UnwrappedIter = decltype(__unwrap_iter_impl<_Iter>::__unwrap(std::declval<_Iter>()));
using _ReverseWrapper = _RevIter1<_RevIter2<_Iter> >;
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr _ReverseWrapper
__rewrap(_ReverseWrapper __orig_iter, _UnwrappedIter __unwrapped_iter) {
return _ReverseWrapper(
_RevIter2<_Iter>(__unwrap_iter_impl<_Iter>::__rewrap(__orig_iter.base().base(), __unwrapped_iter)));
}
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr _UnwrappedIter __unwrap(_ReverseWrapper __i) noexcept {
return __unwrap_iter_impl<_Iter>::__unwrap(__i.base().base());
}
};
# 511 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/reverse_iterator.h" 3
template <class _Iter, bool __b>
struct __unwrap_iter_impl<reverse_iterator<reverse_iterator<_Iter> >, __b>
: __unwrap_reverse_iter_impl<reverse_iterator, reverse_iterator, _Iter> {};
# 531 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__iterator/reverse_iterator.h" 3
}}
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/uninitialized_algorithms.h" 2 3
# 41 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/uninitialized_algorithms.h" 3
namespace std { inline namespace __1 {
struct __unreachable_sentinel {
template <class _Iter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) friend constexpr bool operator!=(const _Iter&, __unreachable_sentinel) noexcept {
return true;
}
};
template <class _ValueType, class _InputIterator, class _Sentinel1, class _ForwardIterator, class _Sentinel2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) pair<_InputIterator, _ForwardIterator>
__uninitialized_copy(_InputIterator __ifirst, _Sentinel1 __ilast,
_ForwardIterator __ofirst, _Sentinel2 __olast) {
_ForwardIterator __idx = __ofirst;
for (; __ifirst != __ilast && __idx != __olast; ++__ifirst, (void)++__idx)
::new (std::__voidify(*__idx)) _ValueType(*__ifirst);
return pair<_InputIterator, _ForwardIterator>(std::move(__ifirst), std::move(__idx));
}
template <class _InputIterator, class _ForwardIterator>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_ForwardIterator uninitialized_copy(_InputIterator __ifirst, _InputIterator __ilast,
_ForwardIterator __ofirst) {
typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
auto __result = std::__uninitialized_copy<_ValueType>(std::move(__ifirst), std::move(__ilast),
std::move(__ofirst), __unreachable_sentinel());
return std::move(__result.second);
}
template <class _ValueType, class _InputIterator, class _Size, class _ForwardIterator, class _Sentinel>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) pair<_InputIterator, _ForwardIterator>
__uninitialized_copy_n(_InputIterator __ifirst, _Size __n,
_ForwardIterator __ofirst, _Sentinel __olast) {
_ForwardIterator __idx = __ofirst;
for (; __n > 0 && __idx != __olast; ++__ifirst, (void)++__idx, (void)--__n)
::new (std::__voidify(*__idx)) _ValueType(*__ifirst);
return pair<_InputIterator, _ForwardIterator>(std::move(__ifirst), std::move(__idx));
}
template <class _InputIterator, class _Size, class _ForwardIterator>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) _ForwardIterator uninitialized_copy_n(_InputIterator __ifirst, _Size __n,
_ForwardIterator __ofirst) {
typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
auto __result = std::__uninitialized_copy_n<_ValueType>(std::move(__ifirst), __n, std::move(__ofirst),
__unreachable_sentinel());
return std::move(__result.second);
}
template <class _ValueType, class _ForwardIterator, class _Sentinel, class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_ForwardIterator __uninitialized_fill(_ForwardIterator __first, _Sentinel __last, const _Tp& __x)
{
_ForwardIterator __idx = __first;
for (; __idx != __last; ++__idx)
::new (std::__voidify(*__idx)) _ValueType(__x);
# 139 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/uninitialized_algorithms.h" 3
return __idx;
}
template <class _ForwardIterator, class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __x)
{
typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
(void)std::__uninitialized_fill<_ValueType>(__first, __last, __x);
}
template <class _ValueType, class _ForwardIterator, class _Size, class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_ForwardIterator __uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x)
{
_ForwardIterator __idx = __first;
for (; __n > 0; ++__idx, (void) --__n)
::new (std::__voidify(*__idx)) _ValueType(__x);
# 172 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/uninitialized_algorithms.h" 3
return __idx;
}
template <class _ForwardIterator, class _Size, class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_ForwardIterator uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x)
{
typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
return std::__uninitialized_fill_n<_ValueType>(__first, __n, __x);
}
template <class _ValueType, class _ForwardIterator, class _Sentinel>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_ForwardIterator __uninitialized_default_construct(_ForwardIterator __first, _Sentinel __last) {
auto __idx = __first;
for (; __idx != __last; ++__idx)
::new (std::__voidify(*__idx)) _ValueType;
return __idx;
}
template <class _ForwardIterator>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void uninitialized_default_construct(_ForwardIterator __first, _ForwardIterator __last) {
using _ValueType = typename iterator_traits<_ForwardIterator>::value_type;
(void)std::__uninitialized_default_construct<_ValueType>(
std::move(__first), std::move(__last));
}
template <class _ValueType, class _ForwardIterator, class _Size>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_ForwardIterator __uninitialized_default_construct_n(_ForwardIterator __first, _Size __n) {
auto __idx = __first;
for (; __n > 0; ++__idx, (void) --__n)
::new (std::__voidify(*__idx)) _ValueType;
return __idx;
}
template <class _ForwardIterator, class _Size>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_ForwardIterator uninitialized_default_construct_n(_ForwardIterator __first, _Size __n) {
using _ValueType = typename iterator_traits<_ForwardIterator>::value_type;
return std::__uninitialized_default_construct_n<_ValueType>(std::move(__first), __n);
}
template <class _ValueType, class _ForwardIterator, class _Sentinel>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_ForwardIterator __uninitialized_value_construct(_ForwardIterator __first, _Sentinel __last) {
auto __idx = __first;
for (; __idx != __last; ++__idx)
::new (std::__voidify(*__idx)) _ValueType();
return __idx;
}
template <class _ForwardIterator>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void uninitialized_value_construct(_ForwardIterator __first, _ForwardIterator __last) {
using _ValueType = typename iterator_traits<_ForwardIterator>::value_type;
(void)std::__uninitialized_value_construct<_ValueType>(
std::move(__first), std::move(__last));
}
template <class _ValueType, class _ForwardIterator, class _Size>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_ForwardIterator __uninitialized_value_construct_n(_ForwardIterator __first, _Size __n) {
auto __idx = __first;
for (; __n > 0; ++__idx, (void) --__n)
::new (std::__voidify(*__idx)) _ValueType();
return __idx;
}
template <class _ForwardIterator, class _Size>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_ForwardIterator uninitialized_value_construct_n(_ForwardIterator __first, _Size __n) {
using _ValueType = typename iterator_traits<_ForwardIterator>::value_type;
return std::__uninitialized_value_construct_n<_ValueType>(std::move(__first), __n);
}
template <class _ValueType, class _InputIterator, class _Sentinel1, class _ForwardIterator, class _Sentinel2,
class _IterMove>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) pair<_InputIterator, _ForwardIterator>
__uninitialized_move(_InputIterator __ifirst, _Sentinel1 __ilast,
_ForwardIterator __ofirst, _Sentinel2 __olast, _IterMove __iter_move) {
auto __idx = __ofirst;
for (; __ifirst != __ilast && __idx != __olast; ++__idx, (void)++__ifirst) {
::new (std::__voidify(*__idx)) _ValueType(__iter_move(__ifirst));
}
return {std::move(__ifirst), std::move(__idx)};
}
template <class _InputIterator, class _ForwardIterator>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) _ForwardIterator uninitialized_move(_InputIterator __ifirst, _InputIterator __ilast,
_ForwardIterator __ofirst) {
using _ValueType = typename iterator_traits<_ForwardIterator>::value_type;
auto __iter_move = [](auto&& __iter) -> decltype(auto) { return std::move(*__iter); };
auto __result = std::__uninitialized_move<_ValueType>(std::move(__ifirst), std::move(__ilast),
std::move(__ofirst), __unreachable_sentinel(), __iter_move);
return std::move(__result.second);
}
template <class _ValueType, class _InputIterator, class _Size, class _ForwardIterator, class _Sentinel, class _IterMove>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) pair<_InputIterator, _ForwardIterator>
__uninitialized_move_n(_InputIterator __ifirst, _Size __n,
_ForwardIterator __ofirst, _Sentinel __olast, _IterMove __iter_move) {
auto __idx = __ofirst;
for (; __n > 0 && __idx != __olast; ++__idx, (void)++__ifirst, --__n)
::new (std::__voidify(*__idx)) _ValueType(__iter_move(__ifirst));
return {std::move(__ifirst), std::move(__idx)};
}
template <class _InputIterator, class _Size, class _ForwardIterator>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) pair<_InputIterator, _ForwardIterator>
uninitialized_move_n(_InputIterator __ifirst, _Size __n, _ForwardIterator __ofirst) {
using _ValueType = typename iterator_traits<_ForwardIterator>::value_type;
auto __iter_move = [](auto&& __iter) -> decltype(auto) { return std::move(*__iter); };
return std::__uninitialized_move_n<_ValueType>(std::move(__ifirst), __n, std::move(__ofirst),
__unreachable_sentinel(), __iter_move);
}
# 373 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/uninitialized_algorithms.h" 3
template<class _Alloc, class _BidirIter, class = __enable_if_t<
__is_cpp17_bidirectional_iterator<_BidirIter>::value
>>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr void __allocator_destroy_multidimensional(_Alloc& __alloc, _BidirIter __first, _BidirIter __last) noexcept {
using _ValueType = typename iterator_traits<_BidirIter>::value_type;
static_assert(is_same_v<typename allocator_traits<_Alloc>::value_type, _ValueType>,
"The allocator should already be rebound to the correct type");
if (__first == __last)
return;
if constexpr (is_array_v<_ValueType>) {
static_assert(!__libcpp_is_unbounded_array<_ValueType>::value,
"arrays of unbounded arrays don't exist, but if they did we would mess up here");
using _Element = remove_extent_t<_ValueType>;
__allocator_traits_rebind_t<_Alloc, _Element> __elem_alloc(__alloc);
do {
--__last;
decltype(auto) __array = *__last;
std::__allocator_destroy_multidimensional(__elem_alloc, __array, __array + extent_v<_ValueType>);
} while (__last != __first);
} else {
do {
--__last;
allocator_traits<_Alloc>::destroy(__alloc, std::addressof(*__last));
} while (__last != __first);
}
}
# 411 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/uninitialized_algorithms.h" 3
template<class _Alloc, class _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr void __allocator_construct_at_multidimensional(_Alloc& __alloc, _Tp* __loc) {
static_assert(is_same_v<typename allocator_traits<_Alloc>::value_type, _Tp>,
"The allocator should already be rebound to the correct type");
if constexpr (is_array_v<_Tp>) {
using _Element = remove_extent_t<_Tp>;
__allocator_traits_rebind_t<_Alloc, _Element> __elem_alloc(__alloc);
size_t __i = 0;
_Tp& __array = *__loc;
auto __guard = std::__make_exception_guard([&]() {
std::__allocator_destroy_multidimensional(__elem_alloc, __array, __array + __i);
});
for (; __i != extent_v<_Tp>; ++__i) {
std::__allocator_construct_at_multidimensional(__elem_alloc, std::addressof(__array[__i]));
}
__guard.__complete();
} else {
allocator_traits<_Alloc>::construct(__alloc, __loc);
}
}
# 447 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/uninitialized_algorithms.h" 3
template<class _Alloc, class _Tp, class _Arg>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
constexpr void __allocator_construct_at_multidimensional(_Alloc& __alloc, _Tp* __loc, _Arg const& __arg) {
static_assert(is_same_v<typename allocator_traits<_Alloc>::value_type, _Tp>,
"The allocator should already be rebound to the correct type");
if constexpr (is_array_v<_Tp>) {
static_assert(is_array_v<_Arg>,
"Provided non-array initialization argument to __allocator_construct_at_multidimensional when "
"trying to construct an array.");
using _Element = remove_extent_t<_Tp>;
__allocator_traits_rebind_t<_Alloc, _Element> __elem_alloc(__alloc);
size_t __i = 0;
_Tp& __array = *__loc;
auto __guard = std::__make_exception_guard([&]() {
std::__allocator_destroy_multidimensional(__elem_alloc, __array, __array + __i);
});
for (; __i != extent_v<_Tp>; ++__i) {
std::__allocator_construct_at_multidimensional(__elem_alloc, std::addressof(__array[__i]), __arg[__i]);
}
__guard.__complete();
} else {
allocator_traits<_Alloc>::construct(__alloc, __loc, __arg);
}
}
# 483 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/uninitialized_algorithms.h" 3
template<class _Alloc, class _BidirIter, class _Tp, class _Size = typename iterator_traits<_BidirIter>::difference_type>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr void
__uninitialized_allocator_fill_n_multidimensional(_Alloc& __alloc, _BidirIter __it, _Size __n, _Tp const& __value) {
using _ValueType = typename iterator_traits<_BidirIter>::value_type;
__allocator_traits_rebind_t<_Alloc, _ValueType> __value_alloc(__alloc);
_BidirIter __begin = __it;
auto __guard = std::__make_exception_guard([&]() { std::__allocator_destroy_multidimensional(__value_alloc, __begin, __it); });
for (; __n != 0; --__n, ++__it) {
std::__allocator_construct_at_multidimensional(__value_alloc, std::addressof(*__it), __value);
}
__guard.__complete();
}
template <class _Alloc, class _BidirIter, class _Size = typename iterator_traits<_BidirIter>::difference_type>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr void
__uninitialized_allocator_value_construct_n_multidimensional(_Alloc& __alloc, _BidirIter __it, _Size __n) {
using _ValueType = typename iterator_traits<_BidirIter>::value_type;
__allocator_traits_rebind_t<_Alloc, _ValueType> __value_alloc(__alloc);
_BidirIter __begin = __it;
auto __guard = std::__make_exception_guard([&]() { std::__allocator_destroy_multidimensional(__value_alloc, __begin, __it); });
for (; __n != 0; --__n, ++__it) {
std::__allocator_construct_at_multidimensional(__value_alloc, std::addressof(*__it));
}
__guard.__complete();
}
template <class _Alloc, class _Iter, class _Sent>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) void
__allocator_destroy(_Alloc& __alloc, _Iter __first, _Sent __last) {
for (; __first != __last; ++__first)
allocator_traits<_Alloc>::destroy(__alloc, std::__to_address(__first));
}
template <class _Alloc, class _Iter>
class _AllocatorDestroyRangeReverse {
public:
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr
_AllocatorDestroyRangeReverse(_Alloc& __alloc, _Iter& __first, _Iter& __last)
: __alloc_(__alloc), __first_(__first), __last_(__last) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) constexpr void operator()() const {
std::__allocator_destroy(__alloc_, std::reverse_iterator<_Iter>(__last_), std::reverse_iterator<_Iter>(__first_));
}
private:
_Alloc& __alloc_;
_Iter& __first_;
_Iter& __last_;
};
template <class _Alloc, class _Iter1, class _Sent1, class _Iter2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) _Iter2
__uninitialized_allocator_copy(_Alloc& __alloc, _Iter1 __first1, _Sent1 __last1, _Iter2 __first2) {
auto __destruct_first = __first2;
auto __guard =
std::__make_exception_guard(_AllocatorDestroyRangeReverse<_Alloc, _Iter2>(__alloc, __destruct_first, __first2));
while (__first1 != __last1) {
allocator_traits<_Alloc>::construct(__alloc, std::__to_address(__first2), *__first1);
++__first1;
++__first2;
}
__guard.__complete();
return __first2;
}
template <class _Alloc, class _Type>
struct __allocator_has_trivial_copy_construct : _Not<__has_construct<_Alloc, _Type*, const _Type&> > {};
template <class _Type>
struct __allocator_has_trivial_copy_construct<allocator<_Type>, _Type> : true_type {};
template <class _Alloc,
class _Type,
class _RawType = __remove_const_t<_Type>,
__enable_if_t<
is_trivially_copy_constructible<_RawType>::value && is_trivially_copy_assignable<_RawType>::value &&
__allocator_has_trivial_copy_construct<_Alloc, _RawType>::value>* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) _Type*
__uninitialized_allocator_copy(_Alloc&, const _Type* __first1, const _Type* __last1, _Type* __first2) {
if (__libcpp_is_constant_evaluated()) {
while (__first1 != __last1) {
std::__construct_at(std::__to_address(__first2), *__first1);
++__first1;
++__first2;
}
return __first2;
} else {
return std::copy(__first1, __last1, const_cast<_RawType*>(__first2));
}
}
template <class _Alloc, class _Iter1, class _Sent1, class _Iter2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) _Iter2 __uninitialized_allocator_move_if_noexcept(
_Alloc& __alloc, _Iter1 __first1, _Sent1 __last1, _Iter2 __first2) {
static_assert(__is_cpp17_move_insertable<_Alloc>::value,
"The specified type does not meet the requirements of Cpp17MoveInsertable");
auto __destruct_first = __first2;
auto __guard =
std::__make_exception_guard(_AllocatorDestroyRangeReverse<_Alloc, _Iter2>(__alloc, __destruct_first, __first2));
while (__first1 != __last1) {
allocator_traits<_Alloc>::construct(__alloc, std::__to_address(__first2), std::move(*__first1));
++__first1;
++__first2;
}
__guard.__complete();
return __first2;
}
template <class _Alloc, class _Type>
struct __allocator_has_trivial_move_construct : _Not<__has_construct<_Alloc, _Type*, _Type&&> > {};
template <class _Type>
struct __allocator_has_trivial_move_construct<allocator<_Type>, _Type> : true_type {};
template <
class _Alloc,
class _Iter1,
class _Iter2,
class _Type = typename iterator_traits<_Iter1>::value_type,
class = __enable_if_t<is_trivially_move_constructible<_Type>::value && is_trivially_move_assignable<_Type>::value &&
__allocator_has_trivial_move_construct<_Alloc, _Type>::value> >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) _Iter2
__uninitialized_allocator_move_if_noexcept(_Alloc&, _Iter1 __first1, _Iter1 __last1, _Iter2 __first2) {
if (__libcpp_is_constant_evaluated()) {
while (__first1 != __last1) {
std::__construct_at(std::__to_address(__first2), std::move(*__first1));
++__first1;
++__first2;
}
return __first2;
} else {
return std::move(__first1, __last1, __first2);
}
}
}}
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/ranges_uninitialized_algorithms.h" 2 3
# 32 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/ranges_uninitialized_algorithms.h" 3
namespace std { inline namespace __1 {
# 317 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/ranges_uninitialized_algorithms.h" 3
}}
# 897 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/memory" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/raw_storage_iterator.h" 1 3
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/raw_storage_iterator.h" 3
namespace std { inline namespace __1 {
#pragma GCC diagnostic push
# 29 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/raw_storage_iterator.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated"
# 29 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/raw_storage_iterator.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
template <class _OutputIterator, class _Tp>
class __attribute__((__type_visibility__("default"))) __attribute__((__deprecated__)) raw_storage_iterator
: public iterator<output_iterator_tag, void, void, void, void>
{
#pragma GCC diagnostic pop
private:
_OutputIterator __x_;
public:
typedef output_iterator_tag iterator_category;
typedef void value_type;
typedef void difference_type;
typedef void pointer;
typedef void reference;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) explicit raw_storage_iterator(_OutputIterator __x) : __x_(__x) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) raw_storage_iterator& operator*() {return *this;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) raw_storage_iterator& operator=(const _Tp& __element)
{::new ((void*)std::addressof(*__x_)) _Tp(__element); return *this;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) raw_storage_iterator& operator=(_Tp&& __element)
{::new ((void*)std::addressof(*__x_)) _Tp(std::move(__element)); return *this;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) raw_storage_iterator& operator++() {++__x_; return *this;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) raw_storage_iterator operator++(int)
{raw_storage_iterator __t(*this); ++__x_; return __t;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) _OutputIterator base() const { return __x_; }
};
}}
# 898 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/memory" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/shared_ptr.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/shared_ptr.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/binary_function.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/binary_function.h" 3
namespace std { inline namespace __1 {
# 33 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/binary_function.h" 3
template <class _Arg1, class _Arg2, class _Result> struct __binary_function_keep_layout_base {
using first_argument_type __attribute__((__deprecated__)) = _Arg1;
using second_argument_type __attribute__((__deprecated__)) = _Arg2;
using result_type __attribute__((__deprecated__)) = _Result;
};
# 48 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/binary_function.h" 3
template <class _Arg1, class _Arg2, class _Result>
using __binary_function = __binary_function_keep_layout_base<_Arg1, _Arg2, _Result>;
}}
# 18 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/shared_ptr.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/operations.h" 1 3
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/operations.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/unary_function.h" 1 3
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/unary_function.h" 3
namespace std { inline namespace __1 {
# 31 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/unary_function.h" 3
template <class _Arg, class _Result> struct __unary_function_keep_layout_base {
using argument_type __attribute__((__deprecated__)) = _Arg;
using result_type __attribute__((__deprecated__)) = _Result;
};
# 45 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/unary_function.h" 3
template <class _Arg, class _Result>
using __unary_function = __unary_function_keep_layout_base<_Arg, _Result>;
}}
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/operations.h" 2 3
# 22 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/operations.h" 3
namespace std { inline namespace __1 {
template <class _Tp = void>
struct __attribute__((__type_visibility__("default"))) plus
: __binary_function<_Tp, _Tp, _Tp>
{
typedef _Tp __result_type;
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_Tp operator()(const _Tp& __x, const _Tp& __y) const
{return __x + __y;}
};
template <class ..._Tag> plus(typename _Tag::__allow_ctad...) -> plus<_Tag...>;
template <>
struct __attribute__((__type_visibility__("default"))) plus<void>
{
template <class _T1, class _T2>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
auto operator()(_T1&& __t, _T2&& __u) const
noexcept(noexcept(std::forward<_T1>(__t) + std::forward<_T2>(__u)))
-> decltype( std::forward<_T1>(__t) + std::forward<_T2>(__u))
{ return std::forward<_T1>(__t) + std::forward<_T2>(__u); }
typedef void is_transparent;
};
template <class _Tp = void>
struct __attribute__((__type_visibility__("default"))) minus
: __binary_function<_Tp, _Tp, _Tp>
{
typedef _Tp __result_type;
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_Tp operator()(const _Tp& __x, const _Tp& __y) const
{return __x - __y;}
};
template <class ..._Tag> minus(typename _Tag::__allow_ctad...) -> minus<_Tag...>;
template <>
struct __attribute__((__type_visibility__("default"))) minus<void>
{
template <class _T1, class _T2>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
auto operator()(_T1&& __t, _T2&& __u) const
noexcept(noexcept(std::forward<_T1>(__t) - std::forward<_T2>(__u)))
-> decltype( std::forward<_T1>(__t) - std::forward<_T2>(__u))
{ return std::forward<_T1>(__t) - std::forward<_T2>(__u); }
typedef void is_transparent;
};
template <class _Tp = void>
struct __attribute__((__type_visibility__("default"))) multiplies
: __binary_function<_Tp, _Tp, _Tp>
{
typedef _Tp __result_type;
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_Tp operator()(const _Tp& __x, const _Tp& __y) const
{return __x * __y;}
};
template <class ..._Tag> multiplies(typename _Tag::__allow_ctad...) -> multiplies<_Tag...>;
template <>
struct __attribute__((__type_visibility__("default"))) multiplies<void>
{
template <class _T1, class _T2>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
auto operator()(_T1&& __t, _T2&& __u) const
noexcept(noexcept(std::forward<_T1>(__t) * std::forward<_T2>(__u)))
-> decltype( std::forward<_T1>(__t) * std::forward<_T2>(__u))
{ return std::forward<_T1>(__t) * std::forward<_T2>(__u); }
typedef void is_transparent;
};
template <class _Tp = void>
struct __attribute__((__type_visibility__("default"))) divides
: __binary_function<_Tp, _Tp, _Tp>
{
typedef _Tp __result_type;
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_Tp operator()(const _Tp& __x, const _Tp& __y) const
{return __x / __y;}
};
template <class ..._Tag> divides(typename _Tag::__allow_ctad...) -> divides<_Tag...>;
template <>
struct __attribute__((__type_visibility__("default"))) divides<void>
{
template <class _T1, class _T2>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
auto operator()(_T1&& __t, _T2&& __u) const
noexcept(noexcept(std::forward<_T1>(__t) / std::forward<_T2>(__u)))
-> decltype( std::forward<_T1>(__t) / std::forward<_T2>(__u))
{ return std::forward<_T1>(__t) / std::forward<_T2>(__u); }
typedef void is_transparent;
};
template <class _Tp = void>
struct __attribute__((__type_visibility__("default"))) modulus
: __binary_function<_Tp, _Tp, _Tp>
{
typedef _Tp __result_type;
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_Tp operator()(const _Tp& __x, const _Tp& __y) const
{return __x % __y;}
};
template <class ..._Tag> modulus(typename _Tag::__allow_ctad...) -> modulus<_Tag...>;
template <>
struct __attribute__((__type_visibility__("default"))) modulus<void>
{
template <class _T1, class _T2>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
auto operator()(_T1&& __t, _T2&& __u) const
noexcept(noexcept(std::forward<_T1>(__t) % std::forward<_T2>(__u)))
-> decltype( std::forward<_T1>(__t) % std::forward<_T2>(__u))
{ return std::forward<_T1>(__t) % std::forward<_T2>(__u); }
typedef void is_transparent;
};
template <class _Tp = void>
struct __attribute__((__type_visibility__("default"))) negate
: __unary_function<_Tp, _Tp>
{
typedef _Tp __result_type;
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_Tp operator()(const _Tp& __x) const
{return -__x;}
};
template <class ..._Tag> negate(typename _Tag::__allow_ctad...) -> negate<_Tag...>;
template <>
struct __attribute__((__type_visibility__("default"))) negate<void>
{
template <class _Tp>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
auto operator()(_Tp&& __x) const
noexcept(noexcept(- std::forward<_Tp>(__x)))
-> decltype( - std::forward<_Tp>(__x))
{ return - std::forward<_Tp>(__x); }
typedef void is_transparent;
};
template <class _Tp = void>
struct __attribute__((__type_visibility__("default"))) bit_and
: __binary_function<_Tp, _Tp, _Tp>
{
typedef _Tp __result_type;
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_Tp operator()(const _Tp& __x, const _Tp& __y) const
{return __x & __y;}
};
template <class ..._Tag> bit_and(typename _Tag::__allow_ctad...) -> bit_and<_Tag...>;
template <>
struct __attribute__((__type_visibility__("default"))) bit_and<void>
{
template <class _T1, class _T2>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
auto operator()(_T1&& __t, _T2&& __u) const
noexcept(noexcept(std::forward<_T1>(__t) & std::forward<_T2>(__u)))
-> decltype( std::forward<_T1>(__t) & std::forward<_T2>(__u))
{ return std::forward<_T1>(__t) & std::forward<_T2>(__u); }
typedef void is_transparent;
};
template <class _Tp = void>
struct __attribute__((__type_visibility__("default"))) bit_not
: __unary_function<_Tp, _Tp>
{
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_Tp operator()(const _Tp& __x) const
{return ~__x;}
};
template <class ..._Tag> bit_not(typename _Tag::__allow_ctad...) -> bit_not<_Tag...>;
template <>
struct __attribute__((__type_visibility__("default"))) bit_not<void>
{
template <class _Tp>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
auto operator()(_Tp&& __x) const
noexcept(noexcept(~std::forward<_Tp>(__x)))
-> decltype( ~std::forward<_Tp>(__x))
{ return ~std::forward<_Tp>(__x); }
typedef void is_transparent;
};
template <class _Tp = void>
struct __attribute__((__type_visibility__("default"))) bit_or
: __binary_function<_Tp, _Tp, _Tp>
{
typedef _Tp __result_type;
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_Tp operator()(const _Tp& __x, const _Tp& __y) const
{return __x | __y;}
};
template <class ..._Tag> bit_or(typename _Tag::__allow_ctad...) -> bit_or<_Tag...>;
template <>
struct __attribute__((__type_visibility__("default"))) bit_or<void>
{
template <class _T1, class _T2>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
auto operator()(_T1&& __t, _T2&& __u) const
noexcept(noexcept(std::forward<_T1>(__t) | std::forward<_T2>(__u)))
-> decltype( std::forward<_T1>(__t) | std::forward<_T2>(__u))
{ return std::forward<_T1>(__t) | std::forward<_T2>(__u); }
typedef void is_transparent;
};
template <class _Tp = void>
struct __attribute__((__type_visibility__("default"))) bit_xor
: __binary_function<_Tp, _Tp, _Tp>
{
typedef _Tp __result_type;
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_Tp operator()(const _Tp& __x, const _Tp& __y) const
{return __x ^ __y;}
};
template <class ..._Tag> bit_xor(typename _Tag::__allow_ctad...) -> bit_xor<_Tag...>;
template <>
struct __attribute__((__type_visibility__("default"))) bit_xor<void>
{
template <class _T1, class _T2>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
auto operator()(_T1&& __t, _T2&& __u) const
noexcept(noexcept(std::forward<_T1>(__t) ^ std::forward<_T2>(__u)))
-> decltype( std::forward<_T1>(__t) ^ std::forward<_T2>(__u))
{ return std::forward<_T1>(__t) ^ std::forward<_T2>(__u); }
typedef void is_transparent;
};
template <class _Tp = void>
struct __attribute__((__type_visibility__("default"))) equal_to
: __binary_function<_Tp, _Tp, bool>
{
typedef bool __result_type;
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
bool operator()(const _Tp& __x, const _Tp& __y) const
{return __x == __y;}
};
template <class ..._Tag> equal_to(typename _Tag::__allow_ctad...) -> equal_to<_Tag...>;
template <>
struct __attribute__((__type_visibility__("default"))) equal_to<void>
{
template <class _T1, class _T2>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
auto operator()(_T1&& __t, _T2&& __u) const
noexcept(noexcept(std::forward<_T1>(__t) == std::forward<_T2>(__u)))
-> decltype( std::forward<_T1>(__t) == std::forward<_T2>(__u))
{ return std::forward<_T1>(__t) == std::forward<_T2>(__u); }
typedef void is_transparent;
};
template <class _Tp>
struct __is_trivial_equality_predicate<equal_to<_Tp>, _Tp, _Tp> : true_type {};
template <class _Tp>
struct __is_trivial_equality_predicate<equal_to<>, _Tp, _Tp> : true_type {};
template <class _Tp = void>
struct __attribute__((__type_visibility__("default"))) not_equal_to
: __binary_function<_Tp, _Tp, bool>
{
typedef bool __result_type;
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
bool operator()(const _Tp& __x, const _Tp& __y) const
{return __x != __y;}
};
template <class ..._Tag> not_equal_to(typename _Tag::__allow_ctad...) -> not_equal_to<_Tag...>;
template <>
struct __attribute__((__type_visibility__("default"))) not_equal_to<void>
{
template <class _T1, class _T2>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
auto operator()(_T1&& __t, _T2&& __u) const
noexcept(noexcept(std::forward<_T1>(__t) != std::forward<_T2>(__u)))
-> decltype( std::forward<_T1>(__t) != std::forward<_T2>(__u))
{ return std::forward<_T1>(__t) != std::forward<_T2>(__u); }
typedef void is_transparent;
};
template <class _Tp = void>
struct __attribute__((__type_visibility__("default"))) less
: __binary_function<_Tp, _Tp, bool>
{
typedef bool __result_type;
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
bool operator()(const _Tp& __x, const _Tp& __y) const
{return __x < __y;}
};
template <class ..._Tag> less(typename _Tag::__allow_ctad...) -> less<_Tag...>;
template <>
struct __attribute__((__type_visibility__("default"))) less<void>
{
template <class _T1, class _T2>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
auto operator()(_T1&& __t, _T2&& __u) const
noexcept(noexcept(std::forward<_T1>(__t) < std::forward<_T2>(__u)))
-> decltype( std::forward<_T1>(__t) < std::forward<_T2>(__u))
{ return std::forward<_T1>(__t) < std::forward<_T2>(__u); }
typedef void is_transparent;
};
template <class _Tp = void>
struct __attribute__((__type_visibility__("default"))) less_equal
: __binary_function<_Tp, _Tp, bool>
{
typedef bool __result_type;
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
bool operator()(const _Tp& __x, const _Tp& __y) const
{return __x <= __y;}
};
template <class ..._Tag> less_equal(typename _Tag::__allow_ctad...) -> less_equal<_Tag...>;
template <>
struct __attribute__((__type_visibility__("default"))) less_equal<void>
{
template <class _T1, class _T2>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
auto operator()(_T1&& __t, _T2&& __u) const
noexcept(noexcept(std::forward<_T1>(__t) <= std::forward<_T2>(__u)))
-> decltype( std::forward<_T1>(__t) <= std::forward<_T2>(__u))
{ return std::forward<_T1>(__t) <= std::forward<_T2>(__u); }
typedef void is_transparent;
};
template <class _Tp = void>
struct __attribute__((__type_visibility__("default"))) greater_equal
: __binary_function<_Tp, _Tp, bool>
{
typedef bool __result_type;
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
bool operator()(const _Tp& __x, const _Tp& __y) const
{return __x >= __y;}
};
template <class ..._Tag> greater_equal(typename _Tag::__allow_ctad...) -> greater_equal<_Tag...>;
template <>
struct __attribute__((__type_visibility__("default"))) greater_equal<void>
{
template <class _T1, class _T2>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
auto operator()(_T1&& __t, _T2&& __u) const
noexcept(noexcept(std::forward<_T1>(__t) >= std::forward<_T2>(__u)))
-> decltype( std::forward<_T1>(__t) >= std::forward<_T2>(__u))
{ return std::forward<_T1>(__t) >= std::forward<_T2>(__u); }
typedef void is_transparent;
};
template <class _Tp = void>
struct __attribute__((__type_visibility__("default"))) greater
: __binary_function<_Tp, _Tp, bool>
{
typedef bool __result_type;
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
bool operator()(const _Tp& __x, const _Tp& __y) const
{return __x > __y;}
};
template <class ..._Tag> greater(typename _Tag::__allow_ctad...) -> greater<_Tag...>;
template <>
struct __attribute__((__type_visibility__("default"))) greater<void>
{
template <class _T1, class _T2>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
auto operator()(_T1&& __t, _T2&& __u) const
noexcept(noexcept(std::forward<_T1>(__t) > std::forward<_T2>(__u)))
-> decltype( std::forward<_T1>(__t) > std::forward<_T2>(__u))
{ return std::forward<_T1>(__t) > std::forward<_T2>(__u); }
typedef void is_transparent;
};
template <class _Tp = void>
struct __attribute__((__type_visibility__("default"))) logical_and
: __binary_function<_Tp, _Tp, bool>
{
typedef bool __result_type;
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
bool operator()(const _Tp& __x, const _Tp& __y) const
{return __x && __y;}
};
template <class ..._Tag> logical_and(typename _Tag::__allow_ctad...) -> logical_and<_Tag...>;
template <>
struct __attribute__((__type_visibility__("default"))) logical_and<void>
{
template <class _T1, class _T2>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
auto operator()(_T1&& __t, _T2&& __u) const
noexcept(noexcept(std::forward<_T1>(__t) && std::forward<_T2>(__u)))
-> decltype( std::forward<_T1>(__t) && std::forward<_T2>(__u))
{ return std::forward<_T1>(__t) && std::forward<_T2>(__u); }
typedef void is_transparent;
};
template <class _Tp = void>
struct __attribute__((__type_visibility__("default"))) logical_not
: __unary_function<_Tp, bool>
{
typedef bool __result_type;
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
bool operator()(const _Tp& __x) const
{return !__x;}
};
template <class ..._Tag> logical_not(typename _Tag::__allow_ctad...) -> logical_not<_Tag...>;
template <>
struct __attribute__((__type_visibility__("default"))) logical_not<void>
{
template <class _Tp>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
auto operator()(_Tp&& __x) const
noexcept(noexcept(!std::forward<_Tp>(__x)))
-> decltype( !std::forward<_Tp>(__x))
{ return !std::forward<_Tp>(__x); }
typedef void is_transparent;
};
template <class _Tp = void>
struct __attribute__((__type_visibility__("default"))) logical_or
: __binary_function<_Tp, _Tp, bool>
{
typedef bool __result_type;
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
bool operator()(const _Tp& __x, const _Tp& __y) const
{return __x || __y;}
};
template <class ..._Tag> logical_or(typename _Tag::__allow_ctad...) -> logical_or<_Tag...>;
template <>
struct __attribute__((__type_visibility__("default"))) logical_or<void>
{
template <class _T1, class _T2>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
auto operator()(_T1&& __t, _T2&& __u) const
noexcept(noexcept(std::forward<_T1>(__t) || std::forward<_T2>(__u)))
-> decltype( std::forward<_T1>(__t) || std::forward<_T2>(__u))
{ return std::forward<_T1>(__t) || std::forward<_T2>(__u); }
typedef void is_transparent;
};
}}
# 19 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/shared_ptr.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/reference_wrapper.h" 1 3
# 15 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/reference_wrapper.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/weak_result_type.h" 1 3
# 23 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/weak_result_type.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
struct __has_result_type
{
private:
template <class _Up> static false_type __test(...);
template <class _Up> static true_type __test(typename _Up::result_type* = 0);
public:
static const bool value = decltype(__test<_Tp>(0))::value;
};
template <class _Tp>
struct __derives_from_unary_function
{
private:
struct __two {char __lx; char __lxx;};
static __two __test(...);
template <class _Ap, class _Rp>
static __unary_function<_Ap, _Rp>
__test(const volatile __unary_function<_Ap, _Rp>*);
public:
static const bool value = !is_same<decltype(__test((_Tp*)0)), __two>::value;
typedef decltype(__test((_Tp*)0)) type;
};
template <class _Tp>
struct __derives_from_binary_function
{
private:
struct __two {char __lx; char __lxx;};
static __two __test(...);
template <class _A1, class _A2, class _Rp>
static __binary_function<_A1, _A2, _Rp>
__test(const volatile __binary_function<_A1, _A2, _Rp>*);
public:
static const bool value = !is_same<decltype(__test((_Tp*)0)), __two>::value;
typedef decltype(__test((_Tp*)0)) type;
};
template <class _Tp, bool = __derives_from_unary_function<_Tp>::value>
struct __maybe_derive_from_unary_function
: public __derives_from_unary_function<_Tp>::type
{
};
template <class _Tp>
struct __maybe_derive_from_unary_function<_Tp, false>
{
};
template <class _Tp, bool = __derives_from_binary_function<_Tp>::value>
struct __maybe_derive_from_binary_function
: public __derives_from_binary_function<_Tp>::type
{
};
template <class _Tp>
struct __maybe_derive_from_binary_function<_Tp, false>
{
};
template <class _Tp, bool = __has_result_type<_Tp>::value>
struct __weak_result_type_imp
: public __maybe_derive_from_unary_function<_Tp>,
public __maybe_derive_from_binary_function<_Tp>
{
using result_type __attribute__((__nodebug__)) __attribute__((__deprecated__)) = typename _Tp::result_type;
};
template <class _Tp>
struct __weak_result_type_imp<_Tp, false>
: public __maybe_derive_from_unary_function<_Tp>,
public __maybe_derive_from_binary_function<_Tp>
{
};
template <class _Tp>
struct __weak_result_type
: public __weak_result_type_imp<_Tp>
{
};
template <class _Rp>
struct __weak_result_type<_Rp ()>
{
using result_type __attribute__((__nodebug__)) __attribute__((__deprecated__)) = _Rp;
};
template <class _Rp>
struct __weak_result_type<_Rp (&)()>
{
using result_type __attribute__((__nodebug__)) __attribute__((__deprecated__)) = _Rp;
};
template <class _Rp>
struct __weak_result_type<_Rp (*)()>
{
using result_type __attribute__((__nodebug__)) __attribute__((__deprecated__)) = _Rp;
};
template <class _Rp, class _A1>
struct __weak_result_type<_Rp (_A1)>
: public __unary_function<_A1, _Rp>
{
};
template <class _Rp, class _A1>
struct __weak_result_type<_Rp (&)(_A1)>
: public __unary_function<_A1, _Rp>
{
};
template <class _Rp, class _A1>
struct __weak_result_type<_Rp (*)(_A1)>
: public __unary_function<_A1, _Rp>
{
};
template <class _Rp, class _Cp>
struct __weak_result_type<_Rp (_Cp::*)()>
: public __unary_function<_Cp*, _Rp>
{
};
template <class _Rp, class _Cp>
struct __weak_result_type<_Rp (_Cp::*)() const>
: public __unary_function<const _Cp*, _Rp>
{
};
template <class _Rp, class _Cp>
struct __weak_result_type<_Rp (_Cp::*)() volatile>
: public __unary_function<volatile _Cp*, _Rp>
{
};
template <class _Rp, class _Cp>
struct __weak_result_type<_Rp (_Cp::*)() const volatile>
: public __unary_function<const volatile _Cp*, _Rp>
{
};
template <class _Rp, class _A1, class _A2>
struct __weak_result_type<_Rp (_A1, _A2)>
: public __binary_function<_A1, _A2, _Rp>
{
};
template <class _Rp, class _A1, class _A2>
struct __weak_result_type<_Rp (*)(_A1, _A2)>
: public __binary_function<_A1, _A2, _Rp>
{
};
template <class _Rp, class _A1, class _A2>
struct __weak_result_type<_Rp (&)(_A1, _A2)>
: public __binary_function<_A1, _A2, _Rp>
{
};
template <class _Rp, class _Cp, class _A1>
struct __weak_result_type<_Rp (_Cp::*)(_A1)>
: public __binary_function<_Cp*, _A1, _Rp>
{
};
template <class _Rp, class _Cp, class _A1>
struct __weak_result_type<_Rp (_Cp::*)(_A1) const>
: public __binary_function<const _Cp*, _A1, _Rp>
{
};
template <class _Rp, class _Cp, class _A1>
struct __weak_result_type<_Rp (_Cp::*)(_A1) volatile>
: public __binary_function<volatile _Cp*, _A1, _Rp>
{
};
template <class _Rp, class _Cp, class _A1>
struct __weak_result_type<_Rp (_Cp::*)(_A1) const volatile>
: public __binary_function<const volatile _Cp*, _A1, _Rp>
{
};
template <class _Rp, class _A1, class _A2, class _A3, class ..._A4>
struct __weak_result_type<_Rp (_A1, _A2, _A3, _A4...)>
{
using result_type __attribute__((__nodebug__)) __attribute__((__deprecated__)) = _Rp;
};
template <class _Rp, class _A1, class _A2, class _A3, class ..._A4>
struct __weak_result_type<_Rp (&)(_A1, _A2, _A3, _A4...)>
{
using result_type __attribute__((__nodebug__)) __attribute__((__deprecated__)) = _Rp;
};
template <class _Rp, class _A1, class _A2, class _A3, class ..._A4>
struct __weak_result_type<_Rp (*)(_A1, _A2, _A3, _A4...)>
{
using result_type __attribute__((__nodebug__)) __attribute__((__deprecated__)) = _Rp;
};
template <class _Rp, class _Cp, class _A1, class _A2, class ..._A3>
struct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...)>
{
using result_type __attribute__((__nodebug__)) __attribute__((__deprecated__)) = _Rp;
};
template <class _Rp, class _Cp, class _A1, class _A2, class ..._A3>
struct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...) const>
{
using result_type __attribute__((__nodebug__)) __attribute__((__deprecated__)) = _Rp;
};
template <class _Rp, class _Cp, class _A1, class _A2, class ..._A3>
struct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...) volatile>
{
using result_type __attribute__((__nodebug__)) __attribute__((__deprecated__)) = _Rp;
};
template <class _Rp, class _Cp, class _A1, class _A2, class ..._A3>
struct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...) const volatile>
{
using result_type __attribute__((__nodebug__)) __attribute__((__deprecated__)) = _Rp;
};
template <class _Tp, class ..._Args>
struct __invoke_return
{
typedef decltype(std::__invoke(std::declval<_Tp>(), std::declval<_Args>()...)) type;
};
}}
# 16 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/reference_wrapper.h" 2 3
# 24 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/reference_wrapper.h" 3
namespace std { inline namespace __1 {
template <class _Tp>
class __attribute__((__type_visibility__("default"))) reference_wrapper : public __weak_result_type<_Tp>
{
public:
typedef _Tp type;
private:
type* __f_;
static void __fun(_Tp&) noexcept;
static void __fun(_Tp&&) = delete;
public:
template <class _Up, class = __enable_if_t<!__is_same_uncvref<_Up, reference_wrapper>::value, decltype(__fun(std::declval<_Up>())) > >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
reference_wrapper(_Up&& __u) noexcept(noexcept(__fun(std::declval<_Up>()))) {
type& __f = static_cast<_Up&&>(__u);
__f_ = std::addressof(__f);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
operator type&() const noexcept {return *__f_;}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
type& get() const noexcept {return *__f_;}
template <class... _ArgTypes>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
typename __invoke_of<type&, _ArgTypes...>::type
operator() (_ArgTypes&&... __args) const
noexcept(is_nothrow_invocable_v<_Tp&, _ArgTypes...>)
{
return std::__invoke(get(), std::forward<_ArgTypes>(__args)...);
}
};
template <class _Tp>
reference_wrapper(_Tp&) -> reference_wrapper<_Tp>;
template <class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
reference_wrapper<_Tp>
ref(_Tp& __t) noexcept
{
return reference_wrapper<_Tp>(__t);
}
template <class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
reference_wrapper<_Tp>
ref(reference_wrapper<_Tp> __t) noexcept
{
return __t;
}
template <class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
reference_wrapper<const _Tp>
cref(const _Tp& __t) noexcept
{
return reference_wrapper<const _Tp>(__t);
}
template <class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
reference_wrapper<const _Tp>
cref(reference_wrapper<_Tp> __t) noexcept
{
return __t;
}
template <class _Tp> void ref(const _Tp&&) = delete;
template <class _Tp> void cref(const _Tp&&) = delete;
}}
# 20 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/shared_ptr.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_destructor.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/allocator_destructor.h" 3
namespace std { inline namespace __1 {
template <class _Alloc>
class __allocator_destructor
{
typedef __attribute__((__nodebug__)) allocator_traits<_Alloc> __alloc_traits;
public:
typedef __attribute__((__nodebug__)) typename __alloc_traits::pointer pointer;
typedef __attribute__((__nodebug__)) typename __alloc_traits::size_type size_type;
private:
_Alloc& __alloc_;
size_type __s_;
public:
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) __allocator_destructor(_Alloc& __a, size_type __s)
noexcept
: __alloc_(__a), __s_(__s) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
void operator()(pointer __p) noexcept
{__alloc_traits::deallocate(__alloc_, __p, __s_);}
};
}}
# 25 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/shared_ptr.h" 2 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/unique_ptr.h" 1 3
# 17 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__memory/unique_ptr.h" 3
# 1 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/hash.h" 1 3
# 33 "/b/sanitizer-aarch64-linux-bootstrap-ubsan/build/libcxx_build_ubsan/include/c++/v1/__functional/hash.h" 3
namespace std { inline namespace __1 {
template <class _Size>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
_Size
__loadword(const void* __p)
{
_Size __r;
std::memcpy(&__r, __p, sizeof(__r));
return __r;
}
template <class _Size, size_t = sizeof(_Size)*8>
struct __murmur2_or_cityhash;
template <class _Size>
struct __murmur2_or_cityhash<_Size, 32>
{
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) __attribute__((__no_sanitize__("unsigned-integer-overflow")))
_Size operator()(const void* __key, _Size __len) const {
const _Size __m = 0x5bd1e995;
const _Size __r = 24;
_Size __h = __len;
const unsigned char* __data = static_cast<const unsigned char*>(__key);
for (; __len >= 4; __data += 4, __len -= 4)
{
_Size __k = std::__loadword<_Size>(__data);
__k *= __m;
__k ^= __k >> __r;
__k *= __m;
__h *= __m;
__h ^= __k;
}
switch (__len)
{
case 3:
__h ^= static_cast<_Size>(__data[2] << 16);
[[fallthrough]];
case 2:
__h ^= static_cast<_Size>(__data[1] << 8);
[[fallthrough]];
case 1:
__h ^= __data[0];
__h *= __m;
}
__h ^= __h >> 13;
__h *= __m;
__h ^= __h >> 15;
return __h;
}
};
template <class _Size>
struct __murmur2_or_cityhash<_Size, 64>
{
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) __attribute__((__no_sanitize__("unsigned-integer-overflow")))
_Size operator()(const void* __key, _Size __len) const {
const char* __s = static_cast<const char*>(__key);
if (__len <= 32) {
if (__len <= 16) {
return __hash_len_0_to_16(__s, __len);
} else {
return __hash_len_17_to_32(__s, __len);
}
} else if (__len <= 64) {
return __hash_len_33_to_64(__s, __len);
}
_Size __x = std::__loadword<_Size>(__s + __len - 40);
_Size __y = std::__loadword<_Size>(__s + __len - 16) +
std::__loadword<_Size>(__s + __len - 56);
_Size __z = __hash_len_16(std::__loadword<_Size>(__s + __len - 48) + __len,
std::__loadword<_Size>(__s + __len - 24));
pair<_Size, _Size> __v = __weak_hash_len_32_with_seeds(__s + __len - 64, __len, __z);
pair<_Size, _Size> __w = __weak_hash_len_32_with_seeds(__s + __len - 32, __y + __k1, __x);
__x = __x * __k1 + std::__loadword<_Size>(__s);
__len = (__len - 1) & ~static_cast<_Size>(63);
do {
__x = __rotate(__x + __y + __v.first + std::__loadword<_Size>(__s + 8), 37) * __k1;
__y = __rotate(__y + __v.second + std::__loadword<_Size>(__s + 48), 42) * __k1;
__x ^= __w.second;
__y += __v.first + std::__loadword<_Size>(__s + 40);
__z = __rotate(__z + __w.first, 33) * __k1;
__v = __weak_hash_len_32_with_seeds(__s, __v.second * __k1, __x + __w.first);
__w = __weak_hash_len_32_with_seeds(__s + 32, __z + __w.second,
__y + std::__loadword<_Size>(__s + 16));
std::swap(__z, __x);
__s += 64;
__len -= 64;
} while (__len != 0);
return __hash_len_16(
__hash_len_16(__v.first, __w.first) + __shift_mix(__y) * __k1 + __z,
__hash_len_16(__v.second, __w.second) + __x);
}
private:
static const _Size __k0 = 0xc3a5c85c97cb3127ULL;
static const _Size __k1 = 0xb492b66fbe98f273ULL;
static const _Size __k2 = 0x9ae16a3b2f90404fULL;
static const _Size __k3 = 0xc949d7c7509e6557ULL;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
static _Size __rotate(_Size __val, int __shift) {
return __shift == 0 ? __val : ((__val >> __shift) | (__val << (64 - __shift)));
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
static _Size __rotate_by_at_least_1(_Size __val, int __shift) {
return (__val >> __shift) | (__val << (64 - __shift));
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000")))
static _Size __shift_mix(_Size __val) {
return __val ^ (__val >> 47);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) __attribute__((__no_sanitize__("unsigned-integer-overflow")))
static _Size __hash_len_16(_Size __u, _Size __v) {
const _Size __mul = 0x9ddfea08eb382d69ULL;
_Size __a = (__u ^ __v) * __mul;
__a ^= (__a >> 47);
_Size __b = (__v ^ __a) * __mul;
__b ^= (__b >> 47);
__b *= __mul;
return __b;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__abi_tag__("v170000"))) __attribute__((__no_sanitize__("unsigned-integer-overflow")))
static _Size __hash_len_0_to_16(const char* __s, _Size __len) {
if (__len > 8) {
const _Size __a = std::__loadword<_Size>(__s);
const _Size __b = std::__loadword<_Size>(__s + __len - 8);
return __hash_len_16(__a, __rotate_by_at_least_1(__b + __len, __len)) ^ __b;
}
if (__len >= 4) {
const uint32_t __a = std::__loadword<uint32_t>(__s);
const uint32_t __b = std::__loadword<uint32_t>(__s + __len - 4);
return __hash_len_16(__len + (__a << 3), __b);
}
if (__len > 0) {
const unsigned char __a = static_cast<unsigned char>(__s[0]);
const unsigned char __b = static_cast<unsigned char>(__s[__len >> 1]);
const unsigned char __c = static_cast<unsigned char>(__s[__len - 1]);
const uint32_t __y = static_cast<uint32_t>(__a) +
(static_cast<uint32_t>(__b) << 8);
const uint32_t __z = __len + (static_cast<uint32_t>(__c) << 2);
return __shift_mix(__y * __k2 ^ __z * __k3) * __k2;
}
return __k2;
}
__attribute__((__
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment