[clang-tools-extra] [clang-tidy] added `IgnoreAliasing` option to `readability-qualified-auto check` (PR #147060)
Juan Besa via cfe-commits
cfe-commits at lists.llvm.org
Tue Jul 22 06:30:18 PDT 2025
================
@@ -96,3 +96,49 @@ Note in the LLVM alias, the default value is `false`.
matched against only the type name (i.e. ``Type``). E.g. to suppress reports
for ``std::array`` iterators use `std::array<.*>::(const_)?iterator` string.
The default is an empty string.
+
+.. option:: IgnoreAliasing
+
+ If set to `true` the check will use the underlying type to determine the type
+ that ``auto`` is deduced to.
+ If set to `false` the check will not look beyond the first type alias.
+ Default value is `true`.
+
+.. code-block:: c++
+
+ using IntPtr = int*;
+ IntPtr foo();
+
+ auto bar = foo();
+
+If :option:`IgnoreAliasing` is set to `true`, it will be transformed into:
+
+.. code-block:: c++
+
+ auto *bar = foo();
+
+Otherwise no changes will occur.
+
+Limitations
+-----------
+
+When :option:`IgnoreAliasing` is set to `false`, there are cases where
+Clang has not preserved the type alias and the underlying type will be used so
+false positives may occur.
+For example:
+
+.. code-block:: c++
+
+ #include <vector>
+
+ void change(int&);
+
----------------
JuanBesa wrote:
Yeah I agree it does look cleaner. I have updated accordingly
https://github.com/llvm/llvm-project/pull/147060
More information about the cfe-commits
mailing list