http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59205

            Bug ID: 59205
           Summary: config/iq2000/iq2000.c:2188: possible cut'n'paste
                    error ?
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dcb314 at hotmail dot com

I just ran the static analyser cppcheck over the 
trunk source code.

It said

[trunk/gcc/config/iq2000/iq2000.c:2188] ->
[trunk/gcc/config/iq2000/iq2000.c:2173]: (style) Found duplicate branches for
'if' and 'else'.

Source code is

  if (TARGET_EMBEDDED_DATA)
    {
      /* For embedded applications, always put an object in read-only data
     if possible, in order to reduce RAM usage.  */
      if ((TREE_CODE (decl) == VAR_DECL
       && TREE_READONLY (decl) && !TREE_SIDE_EFFECTS (decl)
       && DECL_INITIAL (decl)
       && (DECL_INITIAL (decl) == error_mark_node
           || TREE_CONSTANT (DECL_INITIAL (decl))))
      /* Deal with calls from output_constant_def_contents.  */
      || TREE_CODE (decl) != VAR_DECL)
    return readonly_data_section;
      else
    return data_section;
    }
  else
    {
      /* For hosted applications, always put an object in small data if
     possible, as this gives the best performance.  */
      if ((TREE_CODE (decl) == VAR_DECL
       && TREE_READONLY (decl) && !TREE_SIDE_EFFECTS (decl)
       && DECL_INITIAL (decl)
       && (DECL_INITIAL (decl) == error_mark_node
           || TREE_CONSTANT (DECL_INITIAL (decl))))
      /* Deal with calls from output_constant_def_contents.  */
      || TREE_CODE (decl) != VAR_DECL)
    return readonly_data_section;
      else
    return data_section;
    }

Suggest code rework.

Reply via email to