On Monday 18 May 2015 15:36:03 Michal Marek wrote: > Are you able to construct a testcase that triggers this bug? I haven't > been successful: > [..] > config TEST1 > def_tristate (FOO || BAR) && (!FOO && !BAR) This does not trigger the bug, because expr_eliminate_dups is only applied to dependencies, but not to the expressions of default values. I modified your example a bit, so that the bug becomes apparent: config MODULES def_bool y option modules config FOO def_tristate m config BAR def_tristate m config TEST1 def_tristate y depends on (FOO || BAR) && (!FOO && !BAR) if TEST1 = n comment "TEST1 broken" endif config TEST2 def_tristate y depends on (FOO && BAR) || (!FOO || !BAR) if TEST2 = y comment "TEST2 broken" endif config TEST3 def_tristate y depends on m && !m if TEST3 = n comment "TEST3 broken" endif As you can see, I also added a third symbol TEST3 with a line > depends on m && !m This case is special: m && !m expands to (m && MODULES) && !(m && MODULES), then it is transformed into (m && MODULES) && (!m || !MODULES), and finally due to the bug it is replaced with n. Regards, Martin Walch -- -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html