commit 26096e79d1610218106faa75f7dbb10b4b5bbe5a (tree)
parent 8d5c4a67a7dfe2e1fc07f84515d59405c4100b5c
Author: Andrew Kelley <superjoe30@gmail.com>
Date: Tue, 28 Nov 2017 03:17:28 -0500
translate-c: fix clobbering primitive types
Diffstat:
2 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/src/translate_c.cpp b/src/translate_c.cpp
@@ -400,6 +400,9 @@ static AstNode *get_global(Context *c, Buf *name) {
if (entry)
return entry->value;
}
+ if (c->codegen->primitive_type_table.maybe_get(name) != nullptr) {
+ return trans_create_node_symbol(c, name);
+ }
return nullptr;
}
diff --git a/test/translate_c.zig b/test/translate_c.zig
@@ -1162,4 +1162,14 @@ pub fn addCases(cases: &tests.TranslateCContext) {
\\ return ~x;
\\}
);
+
+ cases.add("primitive types included in defined symbols",
+ \\int foo(int u32) {
+ \\ return u32;
+ \\}
+ ,
+ \\pub fn foo(u32_0: c_int) -> c_int {
+ \\ return u32_0;
+ \\}
+ );
}