diff options
author | Masahiro Yamada <yamada.masahiro@socionext.com> | 2018-03-02 02:05:12 -0500 |
---|---|---|
committer | Masahiro Yamada <yamada.masahiro@socionext.com> | 2018-03-02 10:44:47 -0500 |
commit | 5ae6fcc4bb82bd05996cc685b8786c586637e56d (patch) | |
tree | febbe828f00c4f8e8b3efb8194ee8b8e9de330de | |
parent | a11761c2dda64737bfe47e7c15545d4648f8573c (diff) |
kconfig: fix line number in recursive inclusion error message
When recursive inclusion is detected, the line number of the last
'included from:' is wrong.
[Test Case]
Kconfig:
-------->8--------
source "Kconfig2"
-------->8--------
Kconfig2:
-------->8--------
source "Kconfig3"
-------->8--------
Kconfig3:
-------->8--------
source "Kconfig"
-------->8--------
[Result]
$ make allyesconfig
scripts/kconfig/conf --allyesconfig Kconfig
Kconfig:1: recursive inclusion detected. Inclusion path:
current file : 'Kconfig'
included from: 'Kconfig3:1'
included from: 'Kconfig2:1'
included from: 'Kconfig:3'
scripts/kconfig/Makefile:89: recipe for target 'allyesconfig' failed
make[1]: *** [allyesconfig] Error 1
Makefile:512: recipe for target 'allyesconfig' failed
make: *** [allyesconfig] Error 2
where we expect
current file : 'Kconfig'
included from: 'Kconfig3:1'
included from: 'Kconfig2:1'
included from: 'Kconfig:1'
The 'iter->lineno+1' in the second fpinrtf() should be 'iter->lineno-1'.
I refactored the code to merge the two fprintf() calls.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Ulf Magnusson <ulfalizer@gmail.com>
-rw-r--r-- | scripts/kconfig/zconf.l | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/scripts/kconfig/zconf.l b/scripts/kconfig/zconf.l index 02de6fe302a9..88b650eb9cc9 100644 --- a/scripts/kconfig/zconf.l +++ b/scripts/kconfig/zconf.l | |||
@@ -332,16 +332,12 @@ void zconf_nextfile(const char *name) | |||
332 | "Inclusion path:\n current file : '%s'\n", | 332 | "Inclusion path:\n current file : '%s'\n", |
333 | zconf_curname(), zconf_lineno(), | 333 | zconf_curname(), zconf_lineno(), |
334 | zconf_curname()); | 334 | zconf_curname()); |
335 | iter = current_file->parent; | 335 | iter = current_file; |
336 | while (iter && \ | 336 | do { |
337 | strcmp(iter->name,current_file->name)) { | ||
338 | fprintf(stderr, " included from: '%s:%d'\n", | ||
339 | iter->name, iter->lineno-1); | ||
340 | iter = iter->parent; | 337 | iter = iter->parent; |
341 | } | ||
342 | if (iter) | ||
343 | fprintf(stderr, " included from: '%s:%d'\n", | 338 | fprintf(stderr, " included from: '%s:%d'\n", |
344 | iter->name, iter->lineno+1); | 339 | iter->name, iter->lineno - 1); |
340 | } while (strcmp(iter->name, current_file->name)); | ||
345 | exit(1); | 341 | exit(1); |
346 | } | 342 | } |
347 | } | 343 | } |