HomePhabricator

Make basic_string::operator=() tail call properly

Authored by mvels on Apr 10 2020, 3:36 PM.

Description

Make basic_string::operator=() tail call properly

Summary: We discovered that the compiler may chose not to inline the operator=, which leads to an expensive extra stack frame. This change makes __assign_no_alias always tail called.

Reviewers: EricWF, #libc!

Subscribers: libcxx-commits

Tags: #libc

Differential Revision: https://reviews.llvm.org/D77913