Hello.

Looks there's real issues spotted by -Wchkp:

../../gcc/c-family/c-ada-spec.c: In function ‘void 
print_ada_macros.chkp(pretty_printer*, 
\xe2\x80\x98pointer_bounds_typ\xe2\x80\x99 not supported by dump_type#<type 
error>, cpp_hashnode**, \xe2\x80\x98pointer_bounds_typ\xe2\x80\x99 not 
supported by dump_type#<type error>, int, void, ...)’:
../../gcc/c-family/c-ada-spec.c:80:15: error: memory access check always fail 
[-Werror=chkp]
    *param_len += NODE_LEN (param);
    ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~       
../../gcc/c-family/c-ada-spec.c:80:15: error: memory access check always fail 
[-Werror=chkp]
../../gcc/c-family/c-ada-spec.c:84:19: error: memory access check always fail 
[-Werror=chkp]
        *param_len += 2;  /* ", " */
        ~~~~~~~~~~~^~~~
../../gcc/c-family/c-ada-spec.c:84:19: error: memory access check always fail 
[-Werror=chkp]
../../gcc/c-family/c-ada-spec.c:92:18: error: memory access check always fail 
[-Werror=chkp]
       *param_len += 2;  /* ")\0" */
       ~~~~~~~~~~~^~~~
../../gcc/c-family/c-ada-spec.c:92:18: error: memory access check always fail 
[-Werror=chkp]

I prepared quite obvious fix for that and tested make check -k 
RUNTESTFLAGS="dg.exp=dump-ada-spec-*"
on x86_64-linux-gnu.

Ready to be installed?
Martin
>From 9137ddcf413585f557c4ef263d731bf457cb79f4 Mon Sep 17 00:00:00 2001
From: marxin <mli...@suse.cz>
Date: Tue, 7 Mar 2017 11:10:30 +0100
Subject: [PATCH] Increment value instead of a pointer in ADA macro processing.

gcc/c-family/ChangeLog:

2017-03-07  Martin Liska  <mli...@suse.cz>

	* c-ada-spec.c (macro_length): Increment value instead of a pointer.
---
 gcc/c-family/c-ada-spec.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/c-family/c-ada-spec.c b/gcc/c-family/c-ada-spec.c
index 6db741107a3..18c5ccf1054 100644
--- a/gcc/c-family/c-ada-spec.c
+++ b/gcc/c-family/c-ada-spec.c
@@ -72,7 +72,7 @@ macro_length (const cpp_macro *macro, int *supported, int *buffer_len,
 
   if (macro->fun_like)
     {
-      param_len++;
+      (*param_len)++;
       for (i = 0; i < macro->paramc; i++)
 	{
 	  cpp_hashnode *param = macro->params[i];
-- 
2.11.1

Reply via email to