http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59863
--- Comment #4 from Samuel Tardieu <sam at gcc dot gnu.org> --- Note that clang has this bug "in reverse": it unifies the arrays even when recursive calls are possible and address escapes the defining function (http://llvm.org/bugs/show_bug.cgi?id=18557).