------- Additional Comments From jakub at gcc dot gnu dot org 2005-02-17 14:34 ------- Yeah, it is caused by that part of my patch. The result of convert_to_integer is in one case <nop_expr (size_t) <convert_expr (unsigned int) <param_decl (pointer) >>> and without that part of the patch: <nop_expr (size_t) <convert_expr (int) <param_decl (pointer) >>> But fold folds the former into <nop_expr (size_t) <param_decl (pointer) >> while in the latter case fold does nothing with it. And expand_case is not prepared to deal with POINTER_TYPE's in SWITCH_COND.
Anyway, as already the other part of the PR middle-end/19857 fix is sufficient to fix the bug, I'm leaning towards reverting the convert.c (convert_to_integer) part of the patch and give it a shot after 4.0 branches. -- What |Removed |Added ---------------------------------------------------------------------------- Component|middle-end |c++ http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20023