Yes, using .str() will work, but it involves creating yet another
temporary, a StringRef returned from .str() and then converted to
std::string. An optimizer may help here.
The most efficient code would be

      MainFileName.assign(MainFileDirSS.data(), MainFileDirSS.size());

What I was hoping for is to avoid using the SmallString conversions.

Are the path functions using SmallStrings for efficiency or is there
another reason?

Yaron


2013/10/17 David Blaikie <[email protected]>

> I think instead of writing:
>
> MainFileName = std::string(MainFileDirSS.data(), MainFileDirSS.size());
>
> you can just write:
>
> MainFileName = MainFileDirSS.str();
>
> Hopefully.



On Thu, Oct 17, 2013 at 8:09 AM, Yaron Keren <[email protected]> wrote:

> Hi,
>
> Filename appending in CGDebugInfo.cpp was implemented as simple string
> concatenation, resulting in duplicate file debug information on Windows due
> to wrong path separator.
>
> The patch uses  llvm::sys::path::append to properly append the filename on
> all OS.
>
> Is there a way to use path::append without the SmallString temporary?
>
> Yaron
>
>
> _______________________________________________
> cfe-commits mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
>
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to