shithub: scc

Download patch

ref: 72ff9501d14892e97a95cbf5c0a384ddc333b1dd
parent: 93727d79bb03c9e3bc5adb9b0c2eadb95308563a
author: Roberto E. Vargas Caballero <k0ga@shike2.com>
date: Thu Feb 23 04:27:32 EST 2017

[cc1] Set base type of voidtype

pvoidtype is a function that should be not dereferenced,
but there is a few places in the code where it is to
do some semantic tests, and having a pointer without
base type is a bit dangerous

--- a/cc1/arch/amd64-sysv/arch.c
+++ b/cc1/arch/amd64-sysv/arch.c
@@ -39,6 +39,7 @@
 		.op = PTR,
 		.letter = L_POINTER,
 		.prop = TDEFINED,
+		.type = &types[5],  /* chartype */
 		.size = 8,
 		.align = 8,
 	},
--- a/cc1/arch/i386-sysv/arch.c
+++ b/cc1/arch/i386-sysv/arch.c
@@ -39,6 +39,7 @@
 		.op = PTR,
 		.letter = L_POINTER,
 		.prop = TDEFINED,
+		.type = &types[5],  /* chartype */
 		.size = 4,
 		.align = 4,
 	},
--- a/cc1/arch/qbe/arch.c
+++ b/cc1/arch/qbe/arch.c
@@ -39,6 +39,7 @@
 		.op = PTR,
 		.letter = L_POINTER,
 		.prop = TDEFINED,
+		.type = &types[5], /* char type */
 		.size = 8,
 		.align = 8,
 	},
--- a/cc1/arch/z80/arch.c
+++ b/cc1/arch/z80/arch.c
@@ -39,6 +39,7 @@
 		.op = PTR,
 		.letter = L_POINTER,
 		.prop = TDEFINED,
+		.type = &types[5], /* char type */
 		.size = 2,
 		.align = 2,
 	},