From 87eaf587b4f95b3c302ced798a32d44a70db3d02 Mon Sep 17 00:00:00 2001 From: Michael Forney Date: Thu, 22 Apr 2021 12:57:15 -0700 Subject: targ: Use correct char signedness for aarch64 and riscv64 --- cc.h | 1 + targ.c | 12 ++++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/cc.h b/cc.h index 3df0880..8143528 100644 --- a/cc.h +++ b/cc.h @@ -434,6 +434,7 @@ extern struct type typevalist, typevalistptr; struct target { const char *name; struct type *typewchar; + int signedchar; }; extern struct target *targ; diff --git a/targ.c b/targ.c index d079218..6ffef9e 100644 --- a/targ.c +++ b/targ.c @@ -9,6 +9,7 @@ static struct target alltargs[] = { { .name = "x86_64", .typewchar = &typeint, + .signedchar = 1, }, { .name = "aarch64", @@ -28,13 +29,12 @@ targinit(const char *name) if (!name) { /* TODO: provide a way to set this default */ targ = &alltargs[0]; - return; } - for (i = 0; i < LEN(alltargs); ++i) { - if (strcmp(alltargs[i].name, name) == 0) { + for (i = 0; i < LEN(alltargs) && !targ; ++i) { + if (strcmp(alltargs[i].name, name) == 0) targ = &alltargs[i]; - return; - } } - fatal("unknown target '%s'", name); + if (!targ) + fatal("unknown target '%s'", name); + typechar.basic.issigned = targ->signedchar; } -- cgit v1.2.3