[PATCH] Don't handle blocks as exprlocs for DWARF version 4 or higher.

Jakub Jelinek jakub@redhat.com
Thu Feb 18 20:06:35 GMT 2021


On Thu, Feb 18, 2021 at 09:01:43PM +0100, Mark Wielaard wrote:
> @@ -6875,6 +6874,30 @@ read_debug_info (DSO *dso, int kind, unsigned int *die_count)
>  		    }
>  		}
>  
> +	      /* Get length of expr/blocks first.  Canonicalize all,
> +		 except exprloc, to DW_FORM_block1.  */
> +	      switch (form)
> +		{
> +		case DW_FORM_block1:
> +		  len = *ptr++;
> +		  break;
> +		case DW_FORM_block2:
> +		  len = read_16 (ptr);
> +		  form = DW_FORM_block1;
> +		  break;
> +		case DW_FORM_block4:
> +		  len = read_32 (ptr);
> +		  form = DW_FORM_block1;
> +		  break;
> +		case DW_FORM_block:
> +		  len = read_uleb128 (ptr);
> +		  form = DW_FORM_block1;
> +		  break;
> +		case DW_FORM_exprloc:
> +		  len = read_uleb128 (ptr);
> +		  break;

Can you please add
		default:
		  break;
here?

Otherwise LGTM, thanks.

	Jakub



More information about the Dwz mailing list