Module Name:    src
Committed By:   christos
Date:           Fri Jul 12 23:32:45 UTC 2019

Modified Files:
        src/usr.bin/xlint/lint1: tree.c

Log Message:
allow c9x struct casts (in new libXt)


To generate a diff of this commit:
cvs rdiff -u -r1.86 -r1.87 src/usr.bin/xlint/lint1/tree.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/xlint/lint1/tree.c
diff -u src/usr.bin/xlint/lint1/tree.c:1.86 src/usr.bin/xlint/lint1/tree.c:1.87
--- src/usr.bin/xlint/lint1/tree.c:1.86	Fri Sep  7 11:16:15 2018
+++ src/usr.bin/xlint/lint1/tree.c	Fri Jul 12 19:32:45 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: tree.c,v 1.86 2018/09/07 15:16:15 christos Exp $	*/
+/*	$NetBSD: tree.c,v 1.87 2019/07/12 23:32:45 christos Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: tree.c,v 1.86 2018/09/07 15:16:15 christos Exp $");
+__RCSID("$NetBSD: tree.c,v 1.87 2019/07/12 23:32:45 christos Exp $");
 #endif
 
 #include <stdlib.h>
@@ -3199,8 +3199,10 @@ cast(tnode_t *tn, type_t *tp)
 		return NULL;
 	} else if (nt == STRUCT || nt == ARRAY || nt == FUNC) {
 		/* invalid cast expression */
-		error(147);
-		return (NULL);
+		if (!Sflag || nt == ARRAY || nt == FUNC) {
+			error(147);
+			return (NULL);
+		}
 	} else if (ot == STRUCT || ot == UNION) {
 		/* invalid cast expression */
 		error(147);

Reply via email to