What puzzles me about this as why anyone would mark memset for removal with gcc. I don't think gcc does cross-function-call optimization except in special cases. It seems like someone would have to go out of their way to make memset fail in this instance.