From c0b269bf46d6257112f08a3c48904dd5654c97e8 Mon Sep 17 00:00:00 2001 From: Vexu Date: Wed, 6 May 2020 11:48:46 +0300 Subject: [PATCH] translate-c: small patch to fix bultin type detection --- src-self-hosted/translate_c.zig | 5 ++--- test/run_translated_c.zig | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src-self-hosted/translate_c.zig b/src-self-hosted/translate_c.zig index f7b080a749..b515791f77 100644 --- a/src-self-hosted/translate_c.zig +++ b/src-self-hosted/translate_c.zig @@ -669,7 +669,7 @@ fn transTypeDefAsBuiltin(c: *Context, typedef_decl: *const ZigClangTypedefNameDe } fn checkForBuiltinTypedef(checked_name: []const u8) !?[]const u8 { - const table = comptime [_][2][]const u8{ + const table = [_][2][]const u8{ .{ "uint8_t", "u8" }, .{ "int8_t", "i8" }, .{ "uint16_t", "u16" }, @@ -1409,10 +1409,9 @@ fn transDeclStmt(rp: RestorePoint, scope: *Scope, stmt: *const ZigClangDeclStmt) const underlying_qual = ZigClangTypedefNameDecl_getUnderlyingType(typedef_decl); const underlying_type = ZigClangQualType_getTypePtr(underlying_qual); - const underlying_name = try c.str(ZigClangType_getTypeClassName(underlying_type)); const mangled_name = try block_scope.makeMangledName(c, name); - if (try checkForBuiltinTypedef(underlying_name)) |builtin| { + if (try checkForBuiltinTypedef(name)) |builtin| { try block_scope.variables.push(.{ .alias = builtin, .name = mangled_name, diff --git a/test/run_translated_c.zig b/test/run_translated_c.zig index 83569f1241..7dc64f068f 100644 --- a/test/run_translated_c.zig +++ b/test/run_translated_c.zig @@ -245,12 +245,12 @@ pub fn addCases(cases: *tests.RunTranslatedCContext) void { , ""); cases.add("scoped typedef", - \\#include \\int main(int argc, char **argv) { \\ typedef int Foo; \\ typedef Foo Bar; \\ typedef void (*func)(int); - \\ typedef uint32_t Number; + \\ typedef int uint32_t; + \\ uint32_t a; \\ Foo i; \\ Bar j; \\ return 0;