[PATCH] D36354: [clang-tidy] Implement type-based check for `gsl::owner`

Jonas Toth via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 8 11:57:45 PDT 2017


JonasToth added inline comments.


================
Comment at: test/clang-tidy/cppcoreguidelines-owning-memory.cpp:39
+  return new int(42);
+  // CHECK-MESSAGES: [[@LINE-1]]:3: warning: returning a 'gsl::owner<>' from a function but not declaring it; return type is 'int *'
+}
----------------
aaron.ballman wrote:
> This diagnostic confuses me -- there's no gsl::owner<> involved anywhere; am I missing something?
`owner<>` is not involved, but the guidelines say, that `new` must be assigned to an owner.

This is in line with the resource semantics. Everything that creates an resource, that must be released (no RAII available) shall be annotated.

The diagnostic is bad, though.

`Returning a newly created resource from function 'functionname', without declaring it as 'gsl::owner<>'; type is '...'`


https://reviews.llvm.org/D36354





More information about the cfe-commits mailing list