diff --git a/flang/include/flang/Common/default-kinds.h b/flang/include/flang/Common/default-kinds.h --- a/flang/include/flang/Common/default-kinds.h +++ b/flang/include/flang/Common/default-kinds.h @@ -31,14 +31,20 @@ int doublePrecisionKind() const { return doublePrecisionKind_; } int quadPrecisionKind() const { return quadPrecisionKind_; } - IntrinsicTypeDefaultKinds &set_defaultIntegerKind(int); - IntrinsicTypeDefaultKinds &set_subscriptIntegerKind(int); - IntrinsicTypeDefaultKinds &set_sizeIntegerKind(int); - IntrinsicTypeDefaultKinds &set_defaultRealKind(int); - IntrinsicTypeDefaultKinds &set_doublePrecisionKind(int); - IntrinsicTypeDefaultKinds &set_quadPrecisionKind(int); - IntrinsicTypeDefaultKinds &set_defaultCharacterKind(int); - IntrinsicTypeDefaultKinds &set_defaultLogicalKind(int); +#define SET_DEFAULT_KIND(NAME) \ + IntrinsicTypeDefaultKinds &set_##NAME##Kind(int k) { \ + NAME##Kind_ = k; \ + return *this; \ + } + + SET_DEFAULT_KIND(defaultInteger); + SET_DEFAULT_KIND(subscriptInteger); + SET_DEFAULT_KIND(sizeInteger); + SET_DEFAULT_KIND(defaultReal); + SET_DEFAULT_KIND(doublePrecision); + SET_DEFAULT_KIND(quadPrecision); + SET_DEFAULT_KIND(defaultCharacter); + SET_DEFAULT_KIND(defaultLogical); int GetDefaultKind(TypeCategory) const; diff --git a/flang/lib/Common/default-kinds.cpp b/flang/lib/Common/default-kinds.cpp --- a/flang/lib/Common/default-kinds.cpp +++ b/flang/lib/Common/default-kinds.cpp @@ -17,54 +17,6 @@ #endif } -IntrinsicTypeDefaultKinds &IntrinsicTypeDefaultKinds::set_defaultIntegerKind( - int k) { - defaultIntegerKind_ = k; - return *this; -} - -IntrinsicTypeDefaultKinds &IntrinsicTypeDefaultKinds::set_subscriptIntegerKind( - int k) { - subscriptIntegerKind_ = k; - return *this; -} - -IntrinsicTypeDefaultKinds &IntrinsicTypeDefaultKinds::set_sizeIntegerKind( - int k) { - sizeIntegerKind_ = k; - return *this; -} - -IntrinsicTypeDefaultKinds &IntrinsicTypeDefaultKinds::set_defaultRealKind( - int k) { - defaultRealKind_ = k; - return *this; -} - -IntrinsicTypeDefaultKinds &IntrinsicTypeDefaultKinds::set_doublePrecisionKind( - int k) { - doublePrecisionKind_ = k; - return *this; -} - -IntrinsicTypeDefaultKinds &IntrinsicTypeDefaultKinds::set_quadPrecisionKind( - int k) { - quadPrecisionKind_ = k; - return *this; -} - -IntrinsicTypeDefaultKinds &IntrinsicTypeDefaultKinds::set_defaultCharacterKind( - int k) { - defaultCharacterKind_ = k; - return *this; -} - -IntrinsicTypeDefaultKinds &IntrinsicTypeDefaultKinds::set_defaultLogicalKind( - int k) { - defaultLogicalKind_ = k; - return *this; -} - int IntrinsicTypeDefaultKinds::GetDefaultKind(TypeCategory category) const { switch (category) { case TypeCategory::Integer: