[Midnightbsd-cvs] src [7884] trunk/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.c: fix issue with dtrace; D compiler fails to generate error on sizeof() on an undefined struct

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Wed Sep 14 12:51:53 EDT 2016


Revision: 7884
          http://svnweb.midnightbsd.org/src/?rev=7884
Author:   laffer1
Date:     2016-09-14 12:51:53 -0400 (Wed, 14 Sep 2016)
Log Message:
-----------
fix issue with dtrace; D compiler fails to generate error on sizeof() on an undefined struct

Modified Paths:
--------------
    trunk/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.c

Modified: trunk/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.c
===================================================================
--- trunk/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.c	2016-09-14 16:51:03 UTC (rev 7883)
+++ trunk/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.c	2016-09-14 16:51:53 UTC (rev 7884)
@@ -22,7 +22,7 @@
 
 /*
  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2011, Joyent Inc. All rights reserved.
  */
 
 #pragma ident	"%Z%%M%	%I%	%E% SMI"
@@ -725,6 +725,8 @@
 size_t
 dt_node_type_size(const dt_node_t *dnp)
 {
+	ctf_id_t base;
+
 	if (dnp->dn_kind == DT_NODE_STRING)
 		return (strlen(dnp->dn_string) + 1);
 
@@ -731,6 +733,11 @@
 	if (dt_node_is_dynamic(dnp) && dnp->dn_ident != NULL)
 		return (dt_ident_size(dnp->dn_ident));
 
+	base = ctf_type_resolve(dnp->dn_ctfp, dnp->dn_type);
+
+	if (ctf_type_kind(dnp->dn_ctfp, base) == CTF_K_FORWARD)
+		return (0);
+
 	return (ctf_type_size(dnp->dn_ctfp, dnp->dn_type));
 }
 



More information about the Midnightbsd-cvs mailing list