Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Dec 2007 03:24:29 GMT
From:      John Birrell <jb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 131207 for review
Message-ID:  <200712190324.lBJ3OTZl008003@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=131207

Change 131207 by jb@jb_freebsd1 on 2007/12/19 03:24:25

	Rather than just accepting compiler warnings given that the code has
	been linted, let's just code it cleanly.
	
	This is necessary for FreeBSD/arm. gcc 4.2 gets stroppy if it thinks
	we're dereferencing pointers that aren't 32-bit aligned.

Affected files ...

.. //depot/projects/dtrace/src/contrib/opensolaris/tools/ctf/dump/dump.c#9 edit

Differences ...

==== //depot/projects/dtrace/src/contrib/opensolaris/tools/ctf/dump/dump.c#9 (text) ====

@@ -203,9 +203,8 @@
 static int
 print_labeltable(const ctf_header_t *hp, const ctf_data_t *cd)
 {
-	/* LINTED - pointer alignment */
-	const ctf_lblent_t *ctl = (ctf_lblent_t *)(cd->cd_ctfdata +
-	    hp->cth_lbloff);
+	void *v = (void *) (cd->cd_ctfdata + hp->cth_lbloff);
+	const ctf_lblent_t *ctl = v;
 	ulong_t i, n = (hp->cth_objtoff - hp->cth_lbloff) / sizeof (*ctl);
 
 	print_line("- Label Table ");
@@ -267,8 +266,8 @@
 static int
 read_data(const ctf_header_t *hp, const ctf_data_t *cd)
 {
-	/* LINTED - pointer alignment */
-	const ushort_t *idp = (ushort_t *)(cd->cd_ctfdata + hp->cth_objtoff);
+	void *v = (void *) (cd->cd_ctfdata + hp->cth_objtoff);
+	const ushort_t *idp = v;
 	ulong_t n = (hp->cth_funcoff - hp->cth_objtoff) / sizeof (ushort_t);
 
 	if (flags != F_STATS)
@@ -311,11 +310,11 @@
 static int
 read_funcs(const ctf_header_t *hp, const ctf_data_t *cd)
 {
-	/* LINTED - pointer alignment */
-	const ushort_t *fp = (ushort_t *)(cd->cd_ctfdata + hp->cth_funcoff);
+	void *v = (void *) (cd->cd_ctfdata + hp->cth_funcoff);
+	const ushort_t *fp = v;
 
-	/* LINTED - pointer alignment */
-	const ushort_t *end = (ushort_t *)(cd->cd_ctfdata + hp->cth_typeoff);
+	v = (void *) (cd->cd_ctfdata + hp->cth_typeoff);
+	const ushort_t *end = v;
 
 	ulong_t id;
 	int symidx;
@@ -388,11 +387,11 @@
 static int
 read_types(const ctf_header_t *hp, const ctf_data_t *cd)
 {
-	/* LINTED - pointer alignment */
-	const ctf_type_t *tp = (ctf_type_t *)(cd->cd_ctfdata + hp->cth_typeoff);
+	void *v = (void *) (cd->cd_ctfdata + hp->cth_typeoff);
+	const ctf_type_t *tp = v;
 
-	/* LINTED - pointer alignment */
-	const ctf_type_t *end = (ctf_type_t *)(cd->cd_ctfdata + hp->cth_stroff);
+	v = (void *) (cd->cd_ctfdata + hp->cth_stroff);
+	const ctf_type_t *end = v;
 
 	ulong_t id;
 
@@ -930,15 +929,15 @@
 	if (cd.cd_ctflen < sizeof (ctf_preamble_t))
 		die("%s does not contain a CTF preamble\n", filename);
 
-	/* LINTED - pointer alignment */
-	pp = (const ctf_preamble_t *)cd.cd_ctfdata;
+	void *v = (void *) cd.cd_ctfdata;
+	pp = v;
 
 	if (pp->ctp_magic != CTF_MAGIC)
 		die("%s does not appear to contain CTF data\n", filename);
 
 	if (pp->ctp_version == CTF_VERSION) {
-		/* LINTED - pointer alignment */
-		hp = (ctf_header_t *)cd.cd_ctfdata;
+		v = (void *) cd.cd_ctfdata;
+		hp = v;
 		cd.cd_ctfdata = (caddr_t)cd.cd_ctfdata + sizeof (ctf_header_t);
 
 		if (cd.cd_ctflen < sizeof (ctf_header_t)) {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200712190324.lBJ3OTZl008003>