Replace the block_found global with explicit data-flow

Message ID 55BC92D8.8070407@adacore.com
State New, archived
Headers

Commit Message

Pierre-Marie de Rodat Aug. 1, 2015, 9:35 a.m. UTC
  On 08/01/2015 11:08 AM, Pierre-Marie de Rodat wrote:
> On 08/01/2015 10:57 AM, Pierre-Marie de Rodat wrote:
>> This is pushed, now.
>
> Sergio's buildbot detected a compilation error:
>
> ../../binutils-gdb/gdb/ft32-tdep.c: In function 'ft32_skip_prologue':
> ../../binutils-gdb/gdb/ft32-tdep.c:253:8: error: incompatible types when
> assigning to type 'struct symbol *' from type 'struct block_symbol'
>      sym = lookup_symbol (func_name, NULL, VAR_DOMAIN, NULL);
>
> Strange, I don't have this problem locally. Investigating how the
> buildbot's build is different (mhm… probably this --enable-targets=all).

Indeed, that was the problem. I've updated my scripts to always build 
with this option, I've fixed the obvious errors (patch attached) and I 
saw no regression on x86_64-linux.

Ok to push?
  

Comments

Luis Machado Aug. 1, 2015, 4:04 p.m. UTC | #1
On 08/01/2015 06:35 AM, Pierre-Marie de Rodat wrote:
> On 08/01/2015 11:08 AM, Pierre-Marie de Rodat wrote:
> gdb/
>
> 	* alpha-mdebug-tdep.c (find_proc_desc): Update call to
> 	lookup_symbol.
> 	* ft32-tdep.c (ft32_skip_prologue): Likewise.
> 	* moxie-tdep.c (moxie_skip_prologue): Likewise.
> 	* mt-tdep.c (mt_skip_prologue): Likewise.
> 	* xstormy16-tdep.c (xstormy16_skip_prologue): Likewise.
> ---
>   gdb/ChangeLog           | 9 +++++++++
>   gdb/alpha-mdebug-tdep.c | 3 ++-
>   gdb/ft32-tdep.c         | 2 +-
>   gdb/moxie-tdep.c        | 2 +-
>   gdb/mt-tdep.c           | 2 +-
>   gdb/xstormy16-tdep.c    | 2 +-
>   6 files changed, 15 insertions(+), 5 deletions(-)
>
> diff --git a/gdb/ChangeLog b/gdb/ChangeLog
> index e8c04c0..a62415f 100644
> --- a/gdb/ChangeLog
> +++ b/gdb/ChangeLog
> @@ -1,5 +1,14 @@
>   2015-08-01  Pierre-Marie de Rodat<derodat@adacore.com>
>
> +	* alpha-mdebug-tdep.c (find_proc_desc): Update call to
> +	lookup_symbol.
> +	* ft32-tdep.c (ft32_skip_prologue): Likewise.
> +	* moxie-tdep.c (moxie_skip_prologue): Likewise.
> +	* mt-tdep.c (mt_skip_prologue): Likewise.
> +	* xstormy16-tdep.c (xstormy16_skip_prologue): Likewise.
> +
> +2015-08-01  Pierre-Marie de Rodat<derodat@adacore.com>
> +
>   	* ada-exp.y (write_object_renaming): Replace struct
>   	ada_symbol_info with struct block_symbol.  Update field
>   	references accordingly.
> diff --git a/gdb/alpha-mdebug-tdep.c b/gdb/alpha-mdebug-tdep.c
> index 2f58c64..a8a511b 100644
> --- a/gdb/alpha-mdebug-tdep.c
> +++ b/gdb/alpha-mdebug-tdep.c
> @@ -107,7 +107,8 @@ find_proc_desc (CORE_ADDR pc)
>   	   symbol reading.  */
>   	sym = NULL;
>         else
> -	sym = lookup_symbol (MDEBUG_EFI_SYMBOL_NAME, b, LABEL_DOMAIN, 0);
> +	sym = lookup_symbol (MDEBUG_EFI_SYMBOL_NAME, b, LABEL_DOMAIN,
> +			     0).symbol;
>       }

It is probably a matter of personal taste, but i find it easier and 
cleaner to get the result of lookup_symbol (...) assigned to a variable 
and then have the code access its 'symbol' field as opposed to chaining 
things like the above.

The current codebase doesn't show many occurrences like the above.
  
Pedro Alves Aug. 2, 2015, 6:17 p.m. UTC | #2
On 08/01/2015 10:35 AM, Pierre-Marie de Rodat wrote:
> On 08/01/2015 11:08 AM, Pierre-Marie de Rodat wrote:
>> On 08/01/2015 10:57 AM, Pierre-Marie de Rodat wrote:
>>> This is pushed, now.
>>
>> Sergio's buildbot detected a compilation error:
>>
>> ../../binutils-gdb/gdb/ft32-tdep.c: In function 'ft32_skip_prologue':
>> ../../binutils-gdb/gdb/ft32-tdep.c:253:8: error: incompatible types when
>> assigning to type 'struct symbol *' from type 'struct block_symbol'
>>      sym = lookup_symbol (func_name, NULL, VAR_DOMAIN, NULL);
>>
>> Strange, I don't have this problem locally. Investigating how the
>> buildbot's build is different (mhm… probably this --enable-targets=all).
> 
> Indeed, that was the problem. I've updated my scripts to always build 
> with this option, I've fixed the obvious errors (patch attached) and I 
> saw no regression on x86_64-linux.
> 
> Ok to push?
> 

Thanks, this is OK.  I went ahead and pushed this for you, to avoid
keeping the tree broken for too long.
  
Pierre-Marie de Rodat Aug. 3, 2015, 7:44 a.m. UTC | #3
On 08/02/2015 08:17 PM, Pedro Alves wrote:
> Thanks, this is OK.  I went ahead and pushed this for you, to avoid
> keeping the tree broken for too long.

Great, thank you very much! As discussed on IRC, I will push the fix "as 
obvious" the next time a similar situation occurs.
  

Patch

From 347dc1ee346ba9bf8d72c1cbc1b48676ed048b75 Mon Sep 17 00:00:00 2001
From: Pierre-Marie de Rodat <derodat@adacore.com>
Date: Sat, 1 Aug 2015 11:25:44 +0200
Subject: [PATCH] Complete the previous commit (block_found refactoring)

The previous commit (Replace the block_found global with explicit
data-flow) lacks updates in a couple of files because it was not tested
building GDB with --enable-targets=all... but buildbots did.  This adds
the appropriate simple updates to fix buildbots.

gdb/

	* alpha-mdebug-tdep.c (find_proc_desc): Update call to
	lookup_symbol.
	* ft32-tdep.c (ft32_skip_prologue): Likewise.
	* moxie-tdep.c (moxie_skip_prologue): Likewise.
	* mt-tdep.c (mt_skip_prologue): Likewise.
	* xstormy16-tdep.c (xstormy16_skip_prologue): Likewise.
---
 gdb/ChangeLog           | 9 +++++++++
 gdb/alpha-mdebug-tdep.c | 3 ++-
 gdb/ft32-tdep.c         | 2 +-
 gdb/moxie-tdep.c        | 2 +-
 gdb/mt-tdep.c           | 2 +-
 gdb/xstormy16-tdep.c    | 2 +-
 6 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index e8c04c0..a62415f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,14 @@ 
 2015-08-01  Pierre-Marie de Rodat  <derodat@adacore.com>
 
+	* alpha-mdebug-tdep.c (find_proc_desc): Update call to
+	lookup_symbol.
+	* ft32-tdep.c (ft32_skip_prologue): Likewise.
+	* moxie-tdep.c (moxie_skip_prologue): Likewise.
+	* mt-tdep.c (mt_skip_prologue): Likewise.
+	* xstormy16-tdep.c (xstormy16_skip_prologue): Likewise.
+
+2015-08-01  Pierre-Marie de Rodat  <derodat@adacore.com>
+
 	* ada-exp.y (write_object_renaming): Replace struct
 	ada_symbol_info with struct block_symbol.  Update field
 	references accordingly.
diff --git a/gdb/alpha-mdebug-tdep.c b/gdb/alpha-mdebug-tdep.c
index 2f58c64..a8a511b 100644
--- a/gdb/alpha-mdebug-tdep.c
+++ b/gdb/alpha-mdebug-tdep.c
@@ -107,7 +107,8 @@  find_proc_desc (CORE_ADDR pc)
 	   symbol reading.  */
 	sym = NULL;
       else
-	sym = lookup_symbol (MDEBUG_EFI_SYMBOL_NAME, b, LABEL_DOMAIN, 0);
+	sym = lookup_symbol (MDEBUG_EFI_SYMBOL_NAME, b, LABEL_DOMAIN,
+			     0).symbol;
     }
 
   if (sym)
diff --git a/gdb/ft32-tdep.c b/gdb/ft32-tdep.c
index e7f4d1a..2e5deca 100644
--- a/gdb/ft32-tdep.c
+++ b/gdb/ft32-tdep.c
@@ -250,7 +250,7 @@  ft32_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
 	  plg_end = ft32_analyze_prologue (func_addr,
 					   func_end, &cache, gdbarch);
 	  /* Found a function.  */
-	  sym = lookup_symbol (func_name, NULL, VAR_DOMAIN, NULL);
+	  sym = lookup_symbol (func_name, NULL, VAR_DOMAIN, NULL).symbol;
 	  /* Don't use line number debug info for assembly source files.  */
 	  if ((sym != NULL) && SYMBOL_LANGUAGE (sym) != language_asm)
 	    {
diff --git a/gdb/moxie-tdep.c b/gdb/moxie-tdep.c
index 555151d..9496314 100644
--- a/gdb/moxie-tdep.c
+++ b/gdb/moxie-tdep.c
@@ -241,7 +241,7 @@  moxie_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
 	  plg_end = moxie_analyze_prologue (func_addr, 
 					    func_end, &cache, gdbarch);
 	  /* Found a function.  */
-	  sym = lookup_symbol (func_name, NULL, VAR_DOMAIN, NULL);
+	  sym = lookup_symbol (func_name, NULL, VAR_DOMAIN, NULL).symbol;
 	  /* Don't use line number debug info for assembly source
 	     files.  */
 	  if (sym && SYMBOL_LANGUAGE (sym) != language_asm)
diff --git a/gdb/mt-tdep.c b/gdb/mt-tdep.c
index 74d54a7..a9c1fbb 100644
--- a/gdb/mt-tdep.c
+++ b/gdb/mt-tdep.c
@@ -415,7 +415,7 @@  mt_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
       struct symbol *sym;
 
       /* Found a function.  */
-      sym = lookup_symbol (func_name, NULL, VAR_DOMAIN, NULL);
+      sym = lookup_symbol (func_name, NULL, VAR_DOMAIN, NULL).symbol;
       if (sym && SYMBOL_LANGUAGE (sym) != language_asm)
 	{
 	  /* Don't use this trick for assembly source files.  */
diff --git a/gdb/xstormy16-tdep.c b/gdb/xstormy16-tdep.c
index 4faad2e..05b3039 100644
--- a/gdb/xstormy16-tdep.c
+++ b/gdb/xstormy16-tdep.c
@@ -433,7 +433,7 @@  xstormy16_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
         return plg_end;
 
       /* Found a function.  */
-      sym = lookup_symbol (func_name, NULL, VAR_DOMAIN, NULL);
+      sym = lookup_symbol (func_name, NULL, VAR_DOMAIN, NULL).symbol;
       /* Don't use line number debug info for assembly source files.  */
       if (sym && SYMBOL_LANGUAGE (sym) != language_asm)
 	{
-- 
2.4.6