Module Name:    src
Committed By:   christos
Date:           Fri Mar 18 17:07:23 UTC 2016

Modified Files:
        src/external/cddl/osnet/dist/tools/ctf/cvt: ctftools.h dwarf.c merge.c
            output.c tdata.c traverse.c

Log Message:
Add support for c++ classes.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 \
    src/external/cddl/osnet/dist/tools/ctf/cvt/ctftools.h
cvs rdiff -u -r1.21 -r1.22 src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c
cvs rdiff -u -r1.5 -r1.6 src/external/cddl/osnet/dist/tools/ctf/cvt/merge.c \
    src/external/cddl/osnet/dist/tools/ctf/cvt/traverse.c
cvs rdiff -u -r1.7 -r1.8 src/external/cddl/osnet/dist/tools/ctf/cvt/output.c \
    src/external/cddl/osnet/dist/tools/ctf/cvt/tdata.c

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

Modified files:

Index: src/external/cddl/osnet/dist/tools/ctf/cvt/ctftools.h
diff -u src/external/cddl/osnet/dist/tools/ctf/cvt/ctftools.h:1.6 src/external/cddl/osnet/dist/tools/ctf/cvt/ctftools.h:1.7
--- src/external/cddl/osnet/dist/tools/ctf/cvt/ctftools.h:1.6	Fri Mar 18 10:55:34 2016
+++ src/external/cddl/osnet/dist/tools/ctf/cvt/ctftools.h	Fri Mar 18 13:07:23 2016
@@ -142,6 +142,7 @@ typedef enum stabtype {
 	FUNCTION,
 	STRUCT,
 	UNION,
+	CLASS,
 	ENUM,
 	FORWARD,
 	TYPEDEF,

Index: src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c
diff -u src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c:1.21 src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c:1.22
--- src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c:1.21	Fri Mar 18 12:32:03 2016
+++ src/external/cddl/osnet/dist/tools/ctf/cvt/dwarf.c	Fri Mar 18 13:07:23 2016
@@ -186,6 +186,7 @@ tdesc_size(tdesc_t *tdp)
 		case FUNCTION:
 		case STRUCT:
 		case UNION:
+		case CLASS:
 		case ENUM:
 			return (tdp->t_size);
 
@@ -223,6 +224,7 @@ tdesc_bitsize(tdesc_t *tdp)
 		case FUNCTION:
 		case STRUCT:
 		case UNION:
+		case CLASS:
 		case ENUM:
 		case POINTER:
 		case REFERENCE:
@@ -1162,6 +1164,12 @@ die_union_create(dwarf_t *dw, Dwarf_Die 
 	die_sou_create(dw, die, off, tdp, UNION, "union");
 }
 
+static void
+die_class_create(dwarf_t *dw, Dwarf_Die die, Dwarf_Off off, tdesc_t *tdp)
+{
+	die_sou_create(dw, die, off, tdp, CLASS, "class");
+}
+
 /*ARGSUSED1*/
 static int
 die_sou_resolve(tdesc_t *tdp, tdesc_t **tdpp __unused, void *private)
@@ -1196,7 +1204,8 @@ die_sou_resolve(tdesc_t *tdp, tdesc_t **
 			if (mt->t_type == ARRAY && mt->t_ardef->ad_nelems == 0)
 				continue;
 			if ((mt->t_flags & TDESC_F_RESOLVED) != 0 &&
-			    (mt->t_type == STRUCT || mt->t_type == UNION))
+			    (mt->t_type == STRUCT || mt->t_type == UNION ||
+			     mt->t_type == CLASS))
 				continue;
 
 			if (mt->t_type == STRUCT && 
@@ -1819,6 +1828,7 @@ static const die_creator_t die_creators[
 	{ DW_TAG_subroutine_type,	0,		die_funcptr_create },
 	{ DW_TAG_typedef,		0,		die_typedef_create },
 	{ DW_TAG_union_type,		0,		die_union_create },
+	{ DW_TAG_class_type,		0,		die_class_create },
 	{ DW_TAG_base_type,		0,		die_base_create },
 	{ DW_TAG_const_type,		0,		die_const_create },
 	{ DW_TAG_subprogram,		DW_F_NOTDP,	die_function_create },
@@ -1895,6 +1905,7 @@ static tdtrav_cb_f die_resolvers[] = {
 	NULL,			/* function */
 	die_sou_resolve,	/* struct */
 	die_sou_resolve,	/* union */
+	die_sou_resolve,	/* class */
 	die_enum_resolve,	/* enum */
 	die_fwd_resolve,	/* forward */
 	NULL,			/* typedef */
@@ -1913,6 +1924,7 @@ static tdtrav_cb_f die_fail_reporters[] 
 	NULL,			/* function */
 	die_sou_failed,		/* struct */
 	die_sou_failed,		/* union */
+	die_sou_failed,		/* class */
 	NULL,			/* enum */
 	NULL,			/* forward */
 	NULL,			/* typedef */

Index: src/external/cddl/osnet/dist/tools/ctf/cvt/merge.c
diff -u src/external/cddl/osnet/dist/tools/ctf/cvt/merge.c:1.5 src/external/cddl/osnet/dist/tools/ctf/cvt/merge.c:1.6
--- src/external/cddl/osnet/dist/tools/ctf/cvt/merge.c:1.5	Fri Mar 18 10:55:34 2016
+++ src/external/cddl/osnet/dist/tools/ctf/cvt/merge.c	Fri Mar 18 13:07:23 2016
@@ -548,6 +548,7 @@ static tdtrav_cb_f map_pre[] = {
 	map_td_tree_pre,	/* function */
 	map_td_tree_pre,	/* struct */
 	map_td_tree_pre,	/* union */
+	map_td_tree_pre,	/* class */
 	map_td_tree_pre,	/* enum */
 	map_td_tree_pre,	/* forward */
 	map_td_tree_pre,	/* typedef */
@@ -566,6 +567,7 @@ static tdtrav_cb_f map_post[] = {
 	map_td_tree_post,	/* function */
 	map_td_tree_post,	/* struct */
 	map_td_tree_post,	/* union */
+	map_td_tree_post,	/* class */
 	map_td_tree_post,	/* enum */
 	map_td_tree_post,	/* forward */
 	map_td_tree_post,	/* typedef */
@@ -584,6 +586,7 @@ static tdtrav_cb_f map_self_post[] = {
 	map_td_tree_self_post,	/* function */
 	map_td_tree_self_post,	/* struct */
 	map_td_tree_self_post,	/* union */
+	map_td_tree_self_post,	/* class */
 	map_td_tree_self_post,	/* enum */
 	map_td_tree_self_post,	/* forward */
 	map_td_tree_self_post,	/* typedef */
@@ -901,6 +904,7 @@ static tdtrav_cb_f fwd_redir_cbs[] = {
 	NULL,			/* function */
 	NULL,			/* struct */
 	NULL,			/* union */
+	NULL,			/* class */
 	NULL,			/* enum */
 	fwd_redir,		/* forward */
 	NULL,			/* typedef */
@@ -1143,6 +1147,7 @@ tdesc_ops_t tdesc_ops[] = {
 	{ "function", 		equiv_function,		conjure_function },
 	{ "struct",		equiv_su,		conjure_su },
 	{ "union",		equiv_su,		conjure_su },
+	{ "class",		equiv_su,		conjure_su },
 	{ "enum",		equiv_enum,		conjure_enum },
 	{ "forward",		NULL,			conjure_forward },
 	{ "typedef",		equiv_plain,		conjure_plain },
Index: src/external/cddl/osnet/dist/tools/ctf/cvt/traverse.c
diff -u src/external/cddl/osnet/dist/tools/ctf/cvt/traverse.c:1.5 src/external/cddl/osnet/dist/tools/ctf/cvt/traverse.c:1.6
--- src/external/cddl/osnet/dist/tools/ctf/cvt/traverse.c:1.5	Fri Mar 18 10:55:34 2016
+++ src/external/cddl/osnet/dist/tools/ctf/cvt/traverse.c	Fri Mar 18 13:07:23 2016
@@ -124,6 +124,7 @@ static tdtrav_cb_f tdnops[] = {
 	NULL,			/* function */
 	NULL,			/* struct */
 	NULL,			/* union */
+	NULL,			/* class */
 	NULL,			/* enum */
 	NULL,			/* forward */
 	NULL,			/* typedef */
@@ -142,6 +143,7 @@ static int (*tddescenders[])(tdesc_t *, 
 	tdtrav_func,		/* function */
 	tdtrav_su,		/* struct */
 	tdtrav_su,		/* union */
+	tdtrav_su,		/* class */
 	NULL,			/* enum */
 	NULL,			/* forward */
 	tdtrav_plain,		/* typedef */

Index: src/external/cddl/osnet/dist/tools/ctf/cvt/output.c
diff -u src/external/cddl/osnet/dist/tools/ctf/cvt/output.c:1.7 src/external/cddl/osnet/dist/tools/ctf/cvt/output.c:1.8
--- src/external/cddl/osnet/dist/tools/ctf/cvt/output.c:1.7	Fri Mar 18 11:26:31 2016
+++ src/external/cddl/osnet/dist/tools/ctf/cvt/output.c	Fri Mar 18 13:07:23 2016
@@ -109,6 +109,7 @@ static tdtrav_cb_f burst_types_cbs[] = {
 	save_type_by_id,	/* function */
 	save_type_by_id,	/* struct */
 	save_type_by_id,	/* union */
+	save_type_by_id,	/* class */
 	save_type_by_id,	/* enum */
 	save_type_by_id,	/* forward */
 	save_type_by_id,	/* typedef */
Index: src/external/cddl/osnet/dist/tools/ctf/cvt/tdata.c
diff -u src/external/cddl/osnet/dist/tools/ctf/cvt/tdata.c:1.7 src/external/cddl/osnet/dist/tools/ctf/cvt/tdata.c:1.8
--- src/external/cddl/osnet/dist/tools/ctf/cvt/tdata.c:1.7	Fri Mar 18 12:37:09 2016
+++ src/external/cddl/osnet/dist/tools/ctf/cvt/tdata.c	Fri Mar 18 13:07:23 2016
@@ -243,6 +243,7 @@ static void (*free_cbs[])(tdesc_t *) = {
 	NULL,		/* function */
 	free_mlist,	/* struct */
 	free_mlist,	/* union */
+	free_mlist,	/* class */
 	free_elist,	/* enum */
 	NULL,		/* forward */
 	NULL,		/* typedef */
@@ -439,6 +440,7 @@ static tdtrav_cb_f build_hashes_cbs[] = 
 	build_hashes,	/* function */
 	build_hashes,	/* struct */
 	build_hashes,	/* union */
+	build_hashes,	/* class */
 	build_hashes,	/* enum */
 	build_hashes,	/* forward */
 	build_hashes,	/* typedef */

Reply via email to