diff mbox

PATCH i-g-t Fix a clang compile error.

Message ID CAMsPy2sTdxBwdAkCS7CvUZimJMDVXpADHLjzMyyrT28Fh95Nyw@mail.gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Yunlian Jiang May 1, 2015, 10:03 p.m. UTC
Hi Dave,
     I have updated the patch to use
 +   eu = (struct eu_state *)&buf[i * dh.per_thread_scratch];
     and I think
 +               eu = (struct eu_state *)(buf + i*dh.per_thread_scratch);
    is better.

    So I attach the patch in the attachment.

    Thanks for reviewing.

On Thu, Apr 30, 2015 at 7:15 AM, Dave Gordon <david.s.gordon@intel.com> wrote:
> On 27/04/15 17:20, Yunlian Jiang wrote:
>> Thomas,
>>     Thanks for the review. This time I put the patch in the attachment so
>> it should be applied cleanly.
>>  I added Signed-off-by line too.
>>       Thanks
>>
>> From c2f6ecc1c8837abd87aa2da5510281a4833b2a27 Mon Sep 17 00:00:00 2001
>> From: Yunlian Jiang <yunlian@chromium.com>
>> Date: Mon, 27 Apr 2015 09:14:33 -0700
>> Subject: [PATCH 3432/3432] Remove struct per_thread_data to make it compile
>>  with clang.
>>
>> The bug enty is https://code.google.com/p/chromium/issues/detail?id=476001
>> This patch makes clang happy.
>>
>> Cc:Benjamin Widawsky <benjamin.widawsky at intel.com>
>> Cc:Thomas Wood <thomas.wood at intel.com>
>> Signed-off-by: Yunlian Jiang <yunlian at chromium.org>
>> ---
>>  debugger/eudb.c | 6 +-----
>>  1 file changed, 1 insertion(+), 5 deletions(-)
>>
>> diff --git a/debugger/eudb.c b/debugger/eudb.c
>> index 0e810db..21405ef 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 *)&data[i * dh.per_thread_scratc];
>
> This line can't be right! AFAICS, you don't have anything called 'data'
> in scope now (you deleted the declaration); also, there's an 'h' missing
> right at the end, just before the closing ']' :(
>
> Perhaps it should say:
>
> +               eu = (struct eu_state *)&buf[i * dh.per_thread_scratch];
>
> or even:
>
> +               eu = (struct eu_state *)(buf + i*dh.per_thread_scratch);
>
> .Dave.
>
>>               mem_tid = eu->sr0 & 0x7;
>>               mem_euid = (eu->sr0 >> 8) & 0xf;
>>               if (mem_tid == eu_tid(bit) && mem_euid == eu_id(bit))
>> -- 2.2.0.rc0.207.ga3a616c
>
>
>
diff mbox

Patch

From bdfb2390a1f819b091043bb30284b1b961fdb07a Mon Sep 17 00:00:00 2001
From: Yunlian Jiang <yunlian@google.com>
Date: Mon, 27 Apr 2015 12:45:09 -0700
Subject: [PATCH 3442/3442] Remove struct per_thread_data to make it compile
 with clang.

The bug enty is https://code.google.com/p/chromium/issues/detail?id=476001
This patch makes clang happy.

Cc:Benjamin Widawsky <benjamin.widawsky at intel.com>
Cc:Thomas Wood <thomas.wood at intel.com>
Signed-off-by: Yunlian Jiang <yunlian at chromium.org>
---
 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.2.0.rc0.207.ga3a616c