aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2021-09-06 13:38:00 -0700
committerMichael Forney <mforney@mforney.org>2021-09-06 13:38:00 -0700
commit34ae0d48e9669687003c26f94e07fa00d12dd41f (patch)
treef2de13fb240b5a1f35fa8ed9869a1431529547e9
parente07ea69d611991a24d67076df906866c198252c0 (diff)
Add tests for char/wchar_t signedness
-rw-r--r--test/char-sign+aarch64.c4
-rw-r--r--test/char-sign+aarch64.qbe10
-rw-r--r--test/char-sign+riscv64.c4
-rw-r--r--test/char-sign+riscv64.qbe10
-rw-r--r--test/char-sign+x86_64.c4
-rw-r--r--test/char-sign+x86_64.qbe10
-rw-r--r--test/wchar-sign+aarch64.c4
-rw-r--r--test/wchar-sign+aarch64.qbe9
-rw-r--r--test/wchar-sign+riscv64.c4
-rw-r--r--test/wchar-sign+riscv64.qbe9
-rw-r--r--test/wchar-sign+x86_64.c4
-rw-r--r--test/wchar-sign+x86_64.qbe9
12 files changed, 81 insertions, 0 deletions
diff --git a/test/char-sign+aarch64.c b/test/char-sign+aarch64.c
new file mode 100644
index 0000000..84d35ee
--- /dev/null
+++ b/test/char-sign+aarch64.c
@@ -0,0 +1,4 @@
+int x = (char)-1 < 0;
+int main(void) {
+ return (char)-1 < 0;
+}
diff --git a/test/char-sign+aarch64.qbe b/test/char-sign+aarch64.qbe
new file mode 100644
index 0000000..002f645
--- /dev/null
+++ b/test/char-sign+aarch64.qbe
@@ -0,0 +1,10 @@
+export data $x = align 4 { w 0, }
+export
+function w $main() {
+@start.1
+@body.2
+ %.1 =w sub 0, 1
+ %.2 =w extub %.1
+ %.3 =w csltw %.2, 0
+ ret %.3
+}
diff --git a/test/char-sign+riscv64.c b/test/char-sign+riscv64.c
new file mode 100644
index 0000000..84d35ee
--- /dev/null
+++ b/test/char-sign+riscv64.c
@@ -0,0 +1,4 @@
+int x = (char)-1 < 0;
+int main(void) {
+ return (char)-1 < 0;
+}
diff --git a/test/char-sign+riscv64.qbe b/test/char-sign+riscv64.qbe
new file mode 100644
index 0000000..002f645
--- /dev/null
+++ b/test/char-sign+riscv64.qbe
@@ -0,0 +1,10 @@
+export data $x = align 4 { w 0, }
+export
+function w $main() {
+@start.1
+@body.2
+ %.1 =w sub 0, 1
+ %.2 =w extub %.1
+ %.3 =w csltw %.2, 0
+ ret %.3
+}
diff --git a/test/char-sign+x86_64.c b/test/char-sign+x86_64.c
new file mode 100644
index 0000000..1dae89b
--- /dev/null
+++ b/test/char-sign+x86_64.c
@@ -0,0 +1,4 @@
+int x = (char)-1 > 0;
+int main(void) {
+ return (char)-1 > 0;
+}
diff --git a/test/char-sign+x86_64.qbe b/test/char-sign+x86_64.qbe
new file mode 100644
index 0000000..0e44442
--- /dev/null
+++ b/test/char-sign+x86_64.qbe
@@ -0,0 +1,10 @@
+export data $x = align 4 { w 0, }
+export
+function w $main() {
+@start.1
+@body.2
+ %.1 =w sub 0, 1
+ %.2 =w extsb %.1
+ %.3 =w csgtw %.2, 0
+ ret %.3
+}
diff --git a/test/wchar-sign+aarch64.c b/test/wchar-sign+aarch64.c
new file mode 100644
index 0000000..605cfb5
--- /dev/null
+++ b/test/wchar-sign+aarch64.c
@@ -0,0 +1,4 @@
+int x = -L'\001' < 0;
+int main(void) {
+ return -L'\001' < 0;
+}
diff --git a/test/wchar-sign+aarch64.qbe b/test/wchar-sign+aarch64.qbe
new file mode 100644
index 0000000..c81124d
--- /dev/null
+++ b/test/wchar-sign+aarch64.qbe
@@ -0,0 +1,9 @@
+export data $x = align 4 { w 0, }
+export
+function w $main() {
+@start.1
+@body.2
+ %.1 =w sub 0, 1
+ %.2 =w cultw %.1, 0
+ ret %.2
+}
diff --git a/test/wchar-sign+riscv64.c b/test/wchar-sign+riscv64.c
new file mode 100644
index 0000000..2edb6e4
--- /dev/null
+++ b/test/wchar-sign+riscv64.c
@@ -0,0 +1,4 @@
+int x = -L'\001' > 0;
+int main(void) {
+ return -L'\001' > 0;
+}
diff --git a/test/wchar-sign+riscv64.qbe b/test/wchar-sign+riscv64.qbe
new file mode 100644
index 0000000..8f84971
--- /dev/null
+++ b/test/wchar-sign+riscv64.qbe
@@ -0,0 +1,9 @@
+export data $x = align 4 { w 0, }
+export
+function w $main() {
+@start.1
+@body.2
+ %.1 =w sub 0, 1
+ %.2 =w csgtw %.1, 0
+ ret %.2
+}
diff --git a/test/wchar-sign+x86_64.c b/test/wchar-sign+x86_64.c
new file mode 100644
index 0000000..2edb6e4
--- /dev/null
+++ b/test/wchar-sign+x86_64.c
@@ -0,0 +1,4 @@
+int x = -L'\001' > 0;
+int main(void) {
+ return -L'\001' > 0;
+}
diff --git a/test/wchar-sign+x86_64.qbe b/test/wchar-sign+x86_64.qbe
new file mode 100644
index 0000000..8f84971
--- /dev/null
+++ b/test/wchar-sign+x86_64.qbe
@@ -0,0 +1,9 @@
+export data $x = align 4 { w 0, }
+export
+function w $main() {
+@start.1
+@body.2
+ %.1 =w sub 0, 1
+ %.2 =w csgtw %.1, 0
+ ret %.2
+}