fix from upstream for building w/clang From 95019c2a3c4ed5943ad16e17c8dcf36fd6492adc Mon Sep 17 00:00:00 2001 From: Yunlian Jiang 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 Cc: Thomas Wood Signed-off-by: Yunlian Jiang Signed-off-by: Thomas Wood --- 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