https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106775
--- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> --- The difference between -fstrong-eval-order=all and -fstrong-eval-order=some: <<cleanup_point <<< Unknown tree: expr_stmt - (void) (*(int *) &(TARGET_EXPR <D.2421, getAnA ()>).b = 1) >>>>>; + (void) ((TARGET_EXPR <D.2421, getAnA ()>).b[0] = 1) >>>>>; return <retval> = 0;