From 8e47fea00d4523c43e35d841b7aa75a6cb12bd56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C3=ABl=20Kooi?= <48814281+RA-Kooi@users.noreply.github.com> Date: Sun, 11 Sep 2022 07:32:41 +0200 Subject: [PATCH] Add support for ((un)signed) long long --- DwarfOne2C/Tags.cs | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/DwarfOne2C/Tags.cs b/DwarfOne2C/Tags.cs index 04cfaf3..ae8e29d 100644 --- a/DwarfOne2C/Tags.cs +++ b/DwarfOne2C/Tags.cs @@ -172,7 +172,12 @@ public enum BuiltInType Label = -22, // FT_label; Unused (fortran) - Unknown = -23, // For when AT_fund_type() is empty... + // Metrowerks extensions + LongLong = -23, // FT_long_long; long long + SignedLongLong = -24, // FT_signed_long_long; signed long long + UnsignedLongLong = -25, // FT_unsigned_long_long; unsigned long long + + Unknown = -26, // For when AT_fund_type() is empty... } public enum Modifier @@ -229,6 +234,12 @@ public static string BuiltInToString(BuiltInType builtInType) return "void"; case BuiltInType.Pointer: return "void *"; + case BuiltInType.LongLong: + return "long long"; + case BuiltInType.SignedLongLong: + return "signed long long"; + case BuiltInType.UnsignedLongLong: + return "unsigned long long"; case BuiltInType.Unknown: return "UnknownType"; } @@ -283,6 +294,12 @@ public static BuiltInType FTToBuiltInType(string FT) return BuiltInType.Void; case "FT_pointer": return BuiltInType.Pointer; + case "FT_long_long": + return BuiltInType.LongLong; + case "FT_signed_long_long": + return BuiltInType.SignedLongLong; + case "FT_unsigned_long_long": + return BuiltInType.UnsignedLongLong; } throw new ArgumentException(FT + " is not a built-in type."); @@ -308,21 +325,21 @@ public static int BuiltInTypeSize(BuiltInType builtInType) case BuiltInType.SignedLong: case BuiltInType.UnsignedLong: case BuiltInType.Float: + case BuiltInType.Pointer: return 4; + case BuiltInType.Double: case BuiltInType.DoublePrecFloat: + case BuiltInType.LongLong: + case BuiltInType.SignedLongLong: + case BuiltInType.UnsignedLongLong: return 8; case BuiltInType.ExtPrecFloat: - return 12; - case BuiltInType.Double: - return 8; case BuiltInType.DoublePrecDouble: return 12; case BuiltInType.ExtPrecDouble: return 16; case BuiltInType.Void: return 0; - case BuiltInType.Pointer: - return 4; } throw new ArgumentException(