[U-Boot] arch/arm/lib/board.c - uninitialized vars

Wolfgang Denk wd at denx.de
Thu Nov 6 12:28:41 CET 2014


Hi,

I'm trying to clean up some warnings/errors detected when running
"cppcheck" on the U-Boot source tree.  For arch/arm/lib/board.c
I get this:

[arch/arm/lib/board.c:445]: (error) Uninitialized variable: id
[arch/arm/lib/board.c:422]: (error) Uninitialized variable: addr_sp

The problem is not usually detected by GCC depending on which macros
are active, here especially CONFIG_SPL_BUILD

The relevant code was last touched / introduced by commit f1d2b313:
"ARM: add relocation support" some two years ago...

I have some questions regarding the CONFIG_SPL_BUILD "else" case
(i. e. when building with CONFIG_SPL_BUILD defined):

422         addr_sp += 128; /* leave 32 words for abort-stack   */

Is this correct?  The stack is growing downward, so should the '+' not
be replaced by a '-', like we do a few lines above:

412         /* leave 3 words for abort-stack    */
413         addr_sp -= 12;

Why do we need 128 words in the CONFIG_SPL_BUILD case, but only 3
otherwise?

Should we not move the "alignment for ABI compliance" part outside the
CONFIG_SPL_BUILD if/else case, i. e. should this not always be done?


And of course, how should we correctly initialize the "id" and
"addr_sp" variable in both cases?

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Der Dativ ist dem Genitiv sein Tod.


More information about the U-Boot mailing list