From efe8c5b078701dac6fdc35ef8fe6973bd0c105e0 Mon Sep 17 00:00:00 2001
From: Axel Naumann <Axel.Naumann@cern.ch>
Date: Fri, 5 Jul 2019 13:11:55 +0200
Subject: [PATCH] [meta] Fix testTEnum on 32bit:

Instead of guessing the golden underlying type, use std::underlying_type.
---
 core/meta/test/testTEnum.cxx | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/core/meta/test/testTEnum.cxx b/core/meta/test/testTEnum.cxx
index d439f0303c5..a88f0ea37c7 100644
--- a/core/meta/test/testTEnum.cxx
+++ b/core/meta/test/testTEnum.cxx
@@ -4,6 +4,8 @@
 #include "gtest/gtest.h"
 #include "gmock/gmock.h"
 
+#include <type_traits>
+
 TEST(TEnum, UnderlyingType)
 {
    gInterpreter->Declare(R"CODE(
@@ -42,9 +44,13 @@ enum class ECcl: short;
 )CODE"
 			);
 
-   EXPECT_EQ(TEnum::GetEnum("E0")->GetUnderlyingType(), kUInt_t);
-   EXPECT_EQ(TEnum::GetEnum("E1")->GetUnderlyingType(), kULong_t);
-   EXPECT_EQ(TEnum::GetEnum("E2")->GetUnderlyingType(), kULong_t);
+   enum E0 { kE0One };
+   enum E1 { kE1One = LONG_MAX };
+   enum E2 { kE2One = ULONG_MAX };
+
+   EXPECT_EQ(TEnum::GetEnum("E0")->GetUnderlyingType(), TDataType::GetType(typeid(std::underlying_type<E0>::type)));
+   EXPECT_EQ(TEnum::GetEnum("E1")->GetUnderlyingType(), TDataType::GetType(typeid(std::underlying_type<E1>::type)));
+   EXPECT_EQ(TEnum::GetEnum("E2")->GetUnderlyingType(), TDataType::GetType(typeid(std::underlying_type<E2>::type)));
    EXPECT_EQ(TEnum::GetEnum("E3")->GetUnderlyingType(), kChar_t);
 
    EXPECT_EQ(TEnum::GetEnum("Eb")->GetUnderlyingType(), kBool_t);
-- 
GitLab