================
@@ -0,0 +1,53 @@
+.. title:: clang-tidy - fuchsia-temporary-objects
+
+fuchsia-temporary-objects
+=========================
+
+Warns on construction of specific temporary objects in the Zircon kernel.
+If the object should be flagged, the fully qualified type name must be
+explicitly passed to the check.
+
+For example, given the list of classes "Foo" and "NS::Bar", all of the
+following will trigger the warning:
+
+.. code-block:: c++
+
+  Foo();
+  Foo F = Foo();
+  func(Foo());
+
+  namespace NS {
+
+  Bar();
+
+  }
+
+With the same list, the following will not trigger the warning:
+
+.. code-block:: c++
+
+  Foo F;                 // Non-temporary construction okay
+  Foo F(param);          // Non-temporary construction okay
+  Foo *F = new Foo();    // New construction okay
+
+  Bar();                 // Not NS::Bar, so okay
+  NS::Bar B;             // Non-temporary construction okay
+
+Note that objects must be explicitly specified in order to be flagged,
+and so objects that inherit a specified object will not be flagged.
+
+This check matches temporary objects without regard for inheritance and so a
+prohibited base class type does not similarly prohibit derived class types.
+
+.. code-block:: c++
+
+  class Derived : Foo {} // Derived is not explicitly disallowed
+  Derived();             // and so temporary construction is okay
+
+Options
+-------
+
+.. option:: Names
+
+   A semi-colon-separated list of fully-qualified names of C++ classes that
+   should not be constructed as temporaries. Default is empty.
----------------
EugeneZelenko wrote:

```suggestion
   should not be constructed as temporaries. Default is empty string.
```

https://github.com/llvm/llvm-project/pull/162012
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to