[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [creduce-bugs] Stuck in param-to-global/param-to-local pass



Ok, C-Reduce now detects this condition. The underlying clang_delta bug isn't fixed. Thanks for the test case Markus!

I also altered the crash reporting logic for clang delta but did not test it since I don't have a crasher for it right now. Does anyone have one? If not I can always insert a segfault but it's nicer to test on a real bug.

John


On 09/22/2014 12:33 AM, Markus Trippelsdorf wrote:
Creduce sometimes gets stuck in the param-to-global/param-to-local
passes without making forward progress.

See the attached testcase and script. In the script g++ is version 4.9.1
and /var/tmp/gcc_test/usr/local/bin/g++ is gcc trunk.

===< pass_lines :: 10 >===
(19.6 %, 438 bytes)
(19.8 %, 437 bytes)
===< pass_clang :: remove-unused-function >===
===< pass_balanced :: curly >===
===< pass_balanced :: curly2 >===
===< pass_balanced :: curly3 >===
===< pass_clang :: callexpr-to-value >===
===< pass_clang :: replace-callexpr >===
===< pass_clang :: simplify-callexpr >===
===< pass_clang :: remove-unused-enum-member >===
===< pass_clang :: remove-enum-member-value >===
===< pass_clang :: remove-unused-var >===
===< pass_special :: a >===
===< pass_special :: b >===
===< pass_special :: c >===
===< pass_ternary :: b >===
===< pass_ternary :: c >===
===< pass_balanced :: curly >===
===< pass_balanced :: curly2 >===
===< pass_balanced :: curly3 >===
===< pass_balanced :: parens >===
===< pass_balanced :: angles >===
===< pass_balanced :: curly-only >===
===< pass_balanced :: parens-only >===
===< pass_balanced :: angles-only >===
===< pass_clang :: remove-namespace >===
===< pass_clang :: aggregate-to-scalar >===
===< pass_clang :: local-to-global >===
===< pass_clang :: param-to-global >===
(19.8 %, 437 bytes)
(19.8 %, 437 bytes)
(19.8 %, 437 bytes)
(19.8 %, 437 bytes)
... goes on forever.