https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94317

            Bug ID: 94317
           Summary: gcc/config/arm/arm_mve.h:13907: strange assignment ?
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dcb314 at hotmail dot com
  Target Milestone: ---

>From static analyzer cppcheck:

gcc/config/arm/arm_mve.h:13907:3: warning: Assignment of function parameter has
no effect outside the function. Did you forget dereferencing it?
[uselessAssignmentPtrArg]

Source code is

__extension__ extern __inline int64x2_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
__arm_vldrdq_gather_base_wb_s64 (uint64x2_t * __addr, const int __offset)
{
  int64x2_t
  result = __builtin_mve_vldrdq_gather_base_wb_sv2di (*__addr, __offset);
  __addr += __offset;
  return result;
}

Maybe better code:

__extension__ extern __inline int64x2_t
__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
__arm_vldrdq_gather_base_wb_s64 (uint64x2_t * __addr, const int __offset)
{
  int64x2_t
  result = __builtin_mve_vldrdq_gather_base_wb_sv2di (*__addr, __offset);
  *__addr += __offset; // here
  return result;
}

There seem to be a few duplicates:

> trunk.git/gcc/config/arm/arm_mve.h:13917:3: warning: Assignment of function 
> parameter has no effect outside the function. Did you forget dereferencing 
> it? [uselessAssignmentPtrArg]
> trunk.git/gcc/config/arm/arm_mve.h:13927:3: warning: Assignment of function 
> parameter has no effect outside the function. Did you forget dereferencing 
> it? [uselessAssignmentPtrArg]
> trunk.git/gcc/config/arm/arm_mve.h:13937:3: warning: Assignment of function 
> parameter has no effect outside the function. Did you forget dereferencing 
> it? [uselessAssignmentPtrArg]
> trunk.git/gcc/config/arm/arm_mve.h:13947:3: warning: Assignment of function 
> parameter has no effect outside the function. Did you forget dereferencing 
> it? [uselessAssignmentPtrArg]
> trunk.git/gcc/config/arm/arm_mve.h:13957:3: warning: Assignment of function 
> parameter has no effect outside the function. Did you forget dereferencing 
> it? [uselessAssignmentPtrArg]
> trunk.git/gcc/config/arm/arm_mve.h:13967:3: warning: Assignment of function 
> parameter has no effect outside the function. Did you forget dereferencing 
> it? [uselessAssignmentPtrArg]
> trunk.git/gcc/config/arm/arm_mve.h:13977:3: warning: Assignment of function 
> parameter has no effect outside the function. Did you forget dereferencing 
> it? [uselessAssignmentPtrArg]

Reply via email to