'g++ Static analysis: false positive with -fanalyzer?

Running this very little snippet, to show a problem I have with a much larger code:

// Type your code here, or load an example.
#include <iostream>
#include <vector>
#include <memory>
using namespace std;

int main() {

    auto res = make_unique<int>();

    auto ptr = res.get();

    if (ptr) {
        *ptr = 5;
        cout << *ptr << endl;
    }




  return 0;
}

with the -fanalyzer switch, I get a warning

warning: dereference of possibly-NULL 'operator new(4)' [CWE-690] [-Wanalyzer-possible-null-dereference]

But clearly I made all I could do to avoid this warning, but it is buried in the STL, which returns a unique_ptr with no validity control..

I understand the word "possibly" though..

Anyway to correct this on my side?

Update:

I made a mistake in the first go, now corrected

Update 2:

Even that code is refused

// Type your code here, or load an example.
#include <iostream>
#include <memory>
#include <vector>
using namespace std;

int main() {

    auto i = new int(3);

    if (!i) {

        return 1;
    }

  unique_ptr<int> res(i);
  auto ptr = res.get();

  if (!ptr) {
    return 1;
  }
  *ptr = 5;
  cout << *ptr << endl;

  return 0;
}

Please, see here



Solution 1:[1]

As for now (gcc-12), the analyzer is not recommended for C++ code although work is underway to support it.

https://developers.redhat.com/articles/2022/04/12/state-static-analysis-gcc-12-compiler#toward_support_for_c__

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 cassepipe