[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