164ab3302SCarolineConcatto //===-- lib/Common/default-kinds.cpp --------------------------------------===// 264ab3302SCarolineConcatto // 364ab3302SCarolineConcatto // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 464ab3302SCarolineConcatto // See https://llvm.org/LICENSE.txt for license information. 564ab3302SCarolineConcatto // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 664ab3302SCarolineConcatto // 764ab3302SCarolineConcatto //===----------------------------------------------------------------------===// 864ab3302SCarolineConcatto 964ab3302SCarolineConcatto #include "flang/Common/default-kinds.h" 1064ab3302SCarolineConcatto #include "flang/Common/idioms.h" 1164ab3302SCarolineConcatto 1264ab3302SCarolineConcatto namespace Fortran::common { 1364ab3302SCarolineConcatto 14*d1d952c2SPeter Klausler IntrinsicTypeDefaultKinds::IntrinsicTypeDefaultKinds() {} 1564ab3302SCarolineConcatto 1664ab3302SCarolineConcatto IntrinsicTypeDefaultKinds &IntrinsicTypeDefaultKinds::set_defaultIntegerKind( 1764ab3302SCarolineConcatto int k) { 1864ab3302SCarolineConcatto defaultIntegerKind_ = k; 1964ab3302SCarolineConcatto return *this; 2064ab3302SCarolineConcatto } 2164ab3302SCarolineConcatto 2264ab3302SCarolineConcatto IntrinsicTypeDefaultKinds &IntrinsicTypeDefaultKinds::set_subscriptIntegerKind( 2364ab3302SCarolineConcatto int k) { 2464ab3302SCarolineConcatto subscriptIntegerKind_ = k; 2564ab3302SCarolineConcatto return *this; 2664ab3302SCarolineConcatto } 2764ab3302SCarolineConcatto 2864ab3302SCarolineConcatto IntrinsicTypeDefaultKinds &IntrinsicTypeDefaultKinds::set_sizeIntegerKind( 2964ab3302SCarolineConcatto int k) { 3064ab3302SCarolineConcatto sizeIntegerKind_ = k; 3164ab3302SCarolineConcatto return *this; 3264ab3302SCarolineConcatto } 3364ab3302SCarolineConcatto 3464ab3302SCarolineConcatto IntrinsicTypeDefaultKinds &IntrinsicTypeDefaultKinds::set_defaultRealKind( 3564ab3302SCarolineConcatto int k) { 3664ab3302SCarolineConcatto defaultRealKind_ = k; 3764ab3302SCarolineConcatto return *this; 3864ab3302SCarolineConcatto } 3964ab3302SCarolineConcatto 4064ab3302SCarolineConcatto IntrinsicTypeDefaultKinds &IntrinsicTypeDefaultKinds::set_doublePrecisionKind( 4164ab3302SCarolineConcatto int k) { 4264ab3302SCarolineConcatto doublePrecisionKind_ = k; 4364ab3302SCarolineConcatto return *this; 4464ab3302SCarolineConcatto } 4564ab3302SCarolineConcatto 4664ab3302SCarolineConcatto IntrinsicTypeDefaultKinds &IntrinsicTypeDefaultKinds::set_quadPrecisionKind( 4764ab3302SCarolineConcatto int k) { 4864ab3302SCarolineConcatto quadPrecisionKind_ = k; 4964ab3302SCarolineConcatto return *this; 5064ab3302SCarolineConcatto } 5164ab3302SCarolineConcatto 5264ab3302SCarolineConcatto IntrinsicTypeDefaultKinds &IntrinsicTypeDefaultKinds::set_defaultCharacterKind( 5364ab3302SCarolineConcatto int k) { 5464ab3302SCarolineConcatto defaultCharacterKind_ = k; 5564ab3302SCarolineConcatto return *this; 5664ab3302SCarolineConcatto } 5764ab3302SCarolineConcatto 5864ab3302SCarolineConcatto IntrinsicTypeDefaultKinds &IntrinsicTypeDefaultKinds::set_defaultLogicalKind( 5964ab3302SCarolineConcatto int k) { 6064ab3302SCarolineConcatto defaultLogicalKind_ = k; 6164ab3302SCarolineConcatto return *this; 6264ab3302SCarolineConcatto } 6364ab3302SCarolineConcatto 6464ab3302SCarolineConcatto int IntrinsicTypeDefaultKinds::GetDefaultKind(TypeCategory category) const { 6564ab3302SCarolineConcatto switch (category) { 661f879005STim Keith case TypeCategory::Integer: 67fc97d2e6SPeter Klausler case TypeCategory::Unsigned: 681f879005STim Keith return defaultIntegerKind_; 6964ab3302SCarolineConcatto case TypeCategory::Real: 701f879005STim Keith case TypeCategory::Complex: 711f879005STim Keith return defaultRealKind_; 721f879005STim Keith case TypeCategory::Character: 731f879005STim Keith return defaultCharacterKind_; 741f879005STim Keith case TypeCategory::Logical: 751f879005STim Keith return defaultLogicalKind_; 761f879005STim Keith default: 771f879005STim Keith CRASH_NO_CASE; 781f879005STim Keith return 0; 7964ab3302SCarolineConcatto } 8064ab3302SCarolineConcatto } 811f879005STim Keith } // namespace Fortran::common 82