[llvm-dev] Using clang to recognize illegal reference acceess
shankha via llvm-dev
llvm-dev at lists.llvm.org
Sun May 22 10:16:45 PDT 2016
I was going through the the presentation by Herb Sutter presentation
(https://github.com/isocpp/CppCoreGuidelines/blob/master/talks/Sutter%20-%20CppCon%202015%20day%202%20plenary%20.pdf)
Slide No : 21.
The code:
class A
{
public:
void foo() const;
};
void A::foo() const {}
std::unique_ptr<A> foo2()
{
std::unique_ptr<A> pa(new A());
return pa;
}
void
foo()
{
const A& ra = *foo2(); // Incorrect
ra.foo();
}
clang does not report a error at the following line:
const A& ra = *foo2(); // Incorrect
I am using the following command line:
clang++ -std=c++11 --analyze -Xanalyzer -analyzer-output=text
-Xanalyzer -analyzer-checker=core.NullDereference test.cpp
clang version : 3.8
Could you please let me know if I need to pass any other parameters to
clang so that it can recognize this error.
Thanks
More information about the llvm-dev
mailing list