From aefb830ede6316f5fcf4c3c48b79a661c66c9f2e Mon Sep 17 00:00:00 2001 From: Michael Forney Date: Mon, 6 Dec 2021 13:58:50 -0800 Subject: decl: Fix typedefs with type qualifiers Previously, the qualifiers were saved, but accidentally ignored when the typedef was referenced. --- decl.c | 1 + test/typedef-qual.c | 3 +++ test/typedef-qual.qbe | 1 + 3 files changed, 5 insertions(+) create mode 100644 test/typedef-qual.c create mode 100644 test/typedef-qual.qbe diff --git a/decl.c b/decl.c index 53aca7f..d81f54b 100644 --- a/decl.c +++ b/decl.c @@ -349,6 +349,7 @@ declspecs(struct scope *s, enum storageclass *sc, enum funcspec *fs, int *align) if (!d || d->kind != DECLTYPE) goto done; t = d->type; + tq |= d->qual; ++ntypes; next(); break; diff --git a/test/typedef-qual.c b/test/typedef-qual.c new file mode 100644 index 0000000..b027dab --- /dev/null +++ b/test/typedef-qual.c @@ -0,0 +1,3 @@ +typedef const int T; +const int x; +T x; diff --git a/test/typedef-qual.qbe b/test/typedef-qual.qbe new file mode 100644 index 0000000..7cf0e40 --- /dev/null +++ b/test/typedef-qual.qbe @@ -0,0 +1 @@ +export data $x = align 4 { z 4 } -- cgit v1.2.3