On Wed, Feb 18, 2015 at 7:45 PM, Benjamin Kramer <[email protected]> wrote: > Author: d0k > Date: Wed Feb 18 12:45:54 2015 > New Revision: 229719 > > URL: http://llvm.org/viewvc/llvm-project?rev=229719&view=rev > Log: > Driver: Fix use of dangling std::string temporary > > What's going on here is that the ternary operator produces a std::string > rvalue > that the StringRef points to. I'd hoped bugs like this were a thing of the > past > with our asan testing but apparently this code path is only used when LLVM is > configured with a custom --with-c-include-dirs setting. > > Unbreaks bootstrapping with GCC5 on Fedora (PR22625), patch by Jonathan > Wakely!
Hans, this should be safe for 3.6, can you squeeze it in? - Ben > > Modified: > cfe/trunk/lib/Driver/ToolChains.cpp > > Modified: cfe/trunk/lib/Driver/ToolChains.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains.cpp?rev=229719&r1=229718&r2=229719&view=diff > ============================================================================== > --- cfe/trunk/lib/Driver/ToolChains.cpp (original) > +++ cfe/trunk/lib/Driver/ToolChains.cpp Wed Feb 18 12:45:54 2015 > @@ -3154,7 +3154,8 @@ void Linux::AddClangSystemIncludeArgs(co > SmallVector<StringRef, 5> dirs; > CIncludeDirs.split(dirs, ":"); > for (StringRef dir : dirs) { > - StringRef Prefix = llvm::sys::path::is_absolute(dir) ? SysRoot : ""; > + StringRef Prefix = > + llvm::sys::path::is_absolute(dir) ? StringRef(SysRoot) : ""; > addExternCSystemInclude(DriverArgs, CC1Args, Prefix + dir); > } > return; > > > _______________________________________________ > 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
