fix from upstream for building w/clang

From 95019c2a3c4ed5943ad16e17c8dcf36fd6492adc Mon Sep 17 00:00:00 2001
From: Yunlian Jiang <yunlian@google.com>
Date: Tue, 26 May 2015 10:22:31 -0700
Subject: [PATCH] debugger: remove unnecessary struct per_thread_data

This removes unnecessary 'struct per_thread_data' and avoids the
compilation error 'variable length array in structure extension
will never be supported' by clang. The bug entry is
https://code.google.com/p/chromium/issues/detail?id=476001

Cc: Benjamin Widawsky <benjamin.widawsky@intel.com>
Cc: Thomas Wood <thomas.wood@intel.com>
Signed-off-by: Yunlian Jiang <yunlian@google.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
---
 debugger/eudb.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/debugger/eudb.c b/debugger/eudb.c
index 0e810db..39c5cca 100644
--- a/debugger/eudb.c
+++ b/debugger/eudb.c
@@ -207,15 +207,11 @@ wait_for_attn(int timeout, int *out_bits) {
 #define eu_tid(bit) eu_info->debuggees[bit].tid
 static struct eu_state *
 find_eu_shmem(int bit, volatile uint8_t *buf) {
-	struct per_thread_data {
-		uint8_t ____[dh.per_thread_scratch];
-	}__attribute__((packed)) *data;
 	struct eu_state *eu;
 	int mem_tid, mem_euid, i;
 
-	data = (struct per_thread_data *)buf;
 	for(i = 0; i < eu_info->num_threads; i++) {
-		eu = (struct eu_state *)&data[i];
+		eu = (struct eu_state *)(buf + i * dh.per_thread_scratch);
 		mem_tid = eu->sr0 & 0x7;
 		mem_euid = (eu->sr0 >> 8) & 0xf;
 		if (mem_tid == eu_tid(bit) && mem_euid == eu_id(bit))
-- 
2.4.1

