Explicitly assign constructed C++ classes
C++ style guides I am aware of recommend specifically preferring = syntax for any classes with fairly obvious constructors[^0] that do not perform any complicated logic in their constructor. I contend that all constructors that the `rustc_llvm` code uses qualify. This has only become more common since C++ 17 guaranteed many cases of copy initialization elision. The other detail is that I tried to ask another contributor with infinitely more C++ experience than me (i.e. any) what this constructor syntax was, and they thought it was a macro. I know of no other language that has adopted this same syntax. As the rustc codebase features many contributors experienced in many other languages, using a less... unique... style has many other benefits in making this code more lucid and maintainable, which is something it direly needs. [^0]: e.g. https://abseil.io/tips/88
This commit is contained in:
parent
3c029725f5
commit
23623a08d6
4 changed files with 53 additions and 52 deletions
|
@ -11,6 +11,7 @@
|
|||
#include "llvm/ADT/SmallString.h"
|
||||
#include "llvm/IR/LLVMContext.h"
|
||||
#include "llvm/Object/ObjectFile.h"
|
||||
#include <llvm/Support/raw_ostream.h>
|
||||
|
||||
using namespace llvm;
|
||||
using namespace llvm::sys;
|
||||
|
@ -42,7 +43,7 @@ extern "C" void *LLVMRustGetSymbols(
|
|||
MemoryBuffer::getMemBuffer(StringRef(BufPtr, BufLen), StringRef("LLVMRustGetSymbolsObject"),
|
||||
false);
|
||||
SmallString<0> SymNameBuf;
|
||||
raw_svector_ostream SymName(SymNameBuf);
|
||||
auto SymName = raw_svector_ostream(SymNameBuf);
|
||||
|
||||
// In the scenario when LLVMContext is populated SymbolicFile will contain a
|
||||
// reference to it, thus SymbolicFile should be destroyed first.
|
||||
|
@ -60,7 +61,7 @@ extern "C" void *LLVMRustGetSymbols(
|
|||
if (!ObjOrErr) {
|
||||
Error E = ObjOrErr.takeError();
|
||||
SmallString<0> ErrorBuf;
|
||||
raw_svector_ostream Error(ErrorBuf);
|
||||
auto Error = raw_svector_ostream(ErrorBuf);
|
||||
Error << E << '\0';
|
||||
return ErrorCallback(Error.str().data());
|
||||
}
|
||||
|
@ -70,7 +71,7 @@ extern "C" void *LLVMRustGetSymbols(
|
|||
if (!ObjOrErr) {
|
||||
Error E = ObjOrErr.takeError();
|
||||
SmallString<0> ErrorBuf;
|
||||
raw_svector_ostream Error(ErrorBuf);
|
||||
auto Error = raw_svector_ostream(ErrorBuf);
|
||||
Error << E << '\0';
|
||||
return ErrorCallback(Error.str().data());
|
||||
}
|
||||
|
@ -83,7 +84,7 @@ extern "C" void *LLVMRustGetSymbols(
|
|||
continue;
|
||||
if (Error E = S.printName(SymName)) {
|
||||
SmallString<0> ErrorBuf;
|
||||
raw_svector_ostream Error(ErrorBuf);
|
||||
auto Error = raw_svector_ostream(ErrorBuf);
|
||||
Error << E << '\0';
|
||||
return ErrorCallback(Error.str().data());
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue