https://gcc.gnu.org/bugzilla/show_bug.cgi?id=30398
Thomas Koenig <tkoenig at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #4 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- This is what we generated now for program main character(len=1) :: s character(len=2) :: c s = 'a' c = repeat(s,2) call foo(c) end program main : ;; Function main (main, funcdef_no=1, decl_uid=3926, cgraph_uid=2, symbol_order=1) (executed once) __attribute__((externally_visible)) main (integer(kind=4) argc, character(kind=1) * * argv) { character(kind=1) c[1:2]; static integer(kind=4) options.3[7] = {2116, 4095, 0, 1, 1, 0, 31}; <bb 2> [local count: 1073741825]: _gfortran_set_args (argc_2(D), argv_3(D)); _gfortran_set_options (7, &options.3[0]); MEM <unsigned short> [(c_char * {ref-all})&c] = 24929; foo (&c, 2); c ={v} {CLOBBER}; return 0; } So, everything that should be optimized is now optimized. Fixed.