tags 455420 +patch
thanks

Hi,

I'm attaching a patch to fix this problem.  Please take into account that the
gcc 4.3 issues are marked as release goals bugs, so if you don't upload a fix
soon it would probably be NMUed.

This patch was taken from the new upstream release (libpfm-3.3) which fixes
this issue.

Thanks,
-- 
"Programming today is a race between software engineers striving to build
bigger and better idiot-proof programs, and the Universe trying to produce
bigger and better idiots. So far, the Universe is winning."
                -- (Rich Cook)
Saludos /\/\ /\ >< `/
--- libpfm3-3.2-3.2.070507.orig/lib/pfmlib_pentium4.c
+++ libpfm3-3.2-3.2.070507/lib/pfmlib_pentium4.c
@@ -270,7 +270,7 @@
 {
 	unsigned int assigned_pmcs[PENTIUM4_NUM_PMCS] = {0};
 	unsigned int event, event_mask, mask;
-	unsigned int tag_value, tag_enable;
+	unsigned int bit, tag_value, tag_enable;
 	unsigned int plm;
 	unsigned int i, j, k, m, n;
 	int escr, escr_pmc;
@@ -361,13 +361,14 @@
 				tag_enable = 0;
 				for (n = 0; n < input->pfp_events[i].num_masks; n++) {
 					mask = input->pfp_events[i].unit_masks[n];
-					if (mask < EVENT_MASK_BITS &&
-					    pentium4_events[event].event_masks[mask].name) {
-						event_mask |= (1 << pentium4_events[event].event_masks[mask].bit);
+					bit = pentium4_events[event].event_masks[mask].bit;
+					if (bit < EVENT_MASK_BITS &&
+							pentium4_events[event].event_masks[mask].name) {
+						event_mask |= (1 << bit);
 					}
-					if (mask >= EVENT_MASK_BITS &&
-					    pentium4_events[event].event_masks[mask].name) {
-						tag_value |= (1 << (pentium4_events[event].event_masks[mask].bit - EVENT_MASK_BITS));
+					if (bit >= EVENT_MASK_BITS &&
+							pentium4_events[event].event_masks[mask].name) {
+						tag_value |= (1 << (bit - EVENT_MASK_BITS));
 						tag_enable = 1;
 					}
 				}

Reply via email to