[llvm-mc-assemble-fuzzer] Initialize MCTargetOptions.
authorHsiangkai Wang <kai.wang@sifive.com>
Wed, 21 Jul 2021 02:27:35 +0000 (10:27 +0800)
committerHsiangkai Wang <kai.wang@sifive.com>
Thu, 22 Jul 2021 06:36:37 +0000 (14:36 +0800)
When run the command in the llvm-mc-assemble-fuzzer document,

```
llvm-mc-fuzzer --triple=aarch64-linux-gnu --fuzzer-args -max_len=4
```

it triggers the following assertion:

```
llvm-mc-assemble-fuzzer:
llvm-project/llvm/lib/MC/MCTargetOptionsCommandFlags.cpp:38:
bool llvm::mc::getRelaxAll(): Assertion `RelaxAllView &&
"RegisterMCTargetOptionsFlags not created."' failed.
```

It is caused by no global RegisterMCTargetOptionsFlags object to initialize
the MC target options.

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

llvm/tools/llvm-mc-assemble-fuzzer/llvm-mc-assemble-fuzzer.cpp

index 7405166..e32eb11 100644 (file)
@@ -37,6 +37,8 @@
 
 using namespace llvm;
 
+static mc::RegisterMCTargetOptionsFlags MOF;
+
 static cl::opt<std::string>
     TripleName("triple", cl::desc("Target triple to assemble for, "
                                   "see -version for available targets"));