[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