<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/154810>154810</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Clang-tidy invalid suggestion: llvm-twine-local
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang-tidy
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          joker-eph
      </td>
    </tr>
</table>

<pre>
    With clang-tidy built at current head and applying it on MLIR:

```
$ clang-tidy -p build mlir/lib/Target/LLVMIR/Dialect/GPU/SelectObjectAttr.cpp --checks=-*,llvm-twine-local -fix -fix-errors
```

```
diff --git a/mlir/lib/Target/LLVMIR/Dialect/GPU/SelectObjectAttr.cpp b/mlir/lib/Target/LLVMIR/Dialect/GPU/SelectObjectAttr.cpp
index 453b9bc1b58b..78402e5ea896 100644
--- a/mlir/lib/Target/LLVMIR/Dialect/GPU/SelectObjectAttr.cpp
+++ b/mlir/lib/Target/LLVMIR/Dialect/GPU/SelectObjectAttr.cpp
@@ -416,7 +416,7 @@ llvm::LaunchKernel::createKernelLaunch(mlir::gpu::LaunchFuncOp op,
 
 // Load the kernel function.
   StringRef moduleName = op.getKernelModuleName().getValue();
-  Twine moduleIdentifier = getModuleIdentifier(moduleName);
+  std::string moduleIdentifier = (getModuleIdentifier(moduleName)).str();
   Value *modulePtr = module.getGlobalVariable(moduleIdentifier.str(), true);
   if (!modulePtr)
 return op.emitError() << "Couldn't find the binary: " << moduleIdentifier;
```


```
mlir/lib/Target/LLVMIR/Dialect/GPU/SelectObjectAttr.cpp:420:64: error: no member named 'str' in 'std::basic_string<char>'
  420 |   Value *modulePtr = module.getGlobalVariable(moduleIdentifier.str(), true);
      | ~~~~~~~~~~~~~~~~ ^
1 error generated.
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy8VVFzozYQ_jXrlx0YIYTBDzwQ53yTadK7yV3Tx46ABZTIghEivbz0t3ck3MTn6UMfPPXINtoVH9_ut-zKeVa9ISohu4HsdiMXN4y2fB5fyEY0DZt6bN_K35UbsNHS9JFT7RvWi9IOpcNmsZaMw4Fki9K0KKdJvynTo3I4Gny4v3uEtAIW1padFquAi3PAaAqYLR61ssAPWtXAD9-l7ckBP9zfPz3cPQI_3CqpqfGmz19_A374Rn77pX6mxlXO2biZJoyiZqDmZYb0NgJeAd9r_XqM3J_KUKTHRmqMOvUj_ERk7WjnS3Y_b1vVdRhFvXIogR-uwbG-Dg6wSpmWfqDI0npXN0mdFXUc54VgnDKSxW6LCWNbIYBVURRdi39Q8GZdV4wFBAPBMBLJFvg-R-A375eryyvpCyqt7uVimuEXsob0amksSUerZfUCLwKx4O6n5fzOw2KaLxOOE_A9sArDlx-AH_B-lC26gfAlYGG3mMap0cT-DOI3Z5XpH6nD49gumn6VR0JIb3Gc4p7cSuDh3QW8AL7zniepl9MW0huvCOJ3X5UnoLuWjFOdIhvgenIPF3Yf0BnwCcaLgLNr1_DmQO_fIYEX_wWV7-LZ2XOmiBjYI_BqPfvVrZDrzof3WY-11E_SKllregf9eM4ZKN-jswud46sOgzN5x_deVqElt1jjs0tH5T75F3ZFQUj3kO4RON-Pi24N8Nxhp8yqXq2MtG-Qel35P2cvOZ0yePHy_2y5RnGnleAM0morPKHQdfyFGfFIx5osGnmkFoHnIUk5KrNuTqrWclbNH6u2kO6bQVpIPwHPQ_IEZwj5_n9QCTE86K-LD0L2CViVrJFhT4asdNTG56nctGXa7tKd3FCZ5FmW73YiE5uhTLYk5TaRDWOyS7I0r2VRi5QncpvLLJUbVXLGM1bwJCmYSEScdKIoui3rRJpTJwUIRkepdOwbRDzafqPmeaEyyUSRsI2WNek5DDnOP-YOcO6Hni3DgKiXfgbBtJrd_IHjlNNU7j9mlTKvUqsW56XvafZ9wQt5OWI2i9Xl4Nw0e_1CX-mVG5Y6bsajLybfyNa_aLLj81pAgfQM_HDi_VryvwMAAP__Yg1e3g">