m
Size: a a a
m
ПК
CD
DF
DF
V
AZ
std::string
AZ
V
AZ
IL
$ cat a.cpp
struct mystring {
mystring(const char * __attribute__((nonnull)));
};
void foo(mystring);
void bar(const char *c) {
return foo(c);
}
int main() {
bar(nullptr);
}
$ scan-build-11 clang -c a.cpp
scan-build: Using '/usr/lib/llvm-11/bin/clang' for static analysis
a.cpp:10:14: warning: Null pointer passed to 1st parameter expecting 'nonnull' [core.NonNullParamChecker]
return foo(c);
^
1 warning generated.
scan-build: Analysis run complete.
scan-build: 1 bug found.
scan-build: Run 'scan-view /tmp/scan-build-2020-05-09-022120-444134-1' to examine bug reports.
$
AZ
$ cat a.cpp
struct mystring {
mystring(const char * __attribute__((nonnull)));
};
void foo(mystring);
void bar(const char *c) {
return foo(c);
}
int main() {
bar(nullptr);
}
$ scan-build-11 clang -c a.cpp
scan-build: Using '/usr/lib/llvm-11/bin/clang' for static analysis
a.cpp:10:14: warning: Null pointer passed to 1st parameter expecting 'nonnull' [core.NonNullParamChecker]
return foo(c);
^
1 warning generated.
scan-build: Analysis run complete.
scan-build: 1 bug found.
scan-build: Run 'scan-view /tmp/scan-build-2020-05-09-022120-444134-1' to examine bug reports.
$
V
$ cat a.cpp
struct mystring {
mystring(const char * __attribute__((nonnull)));
};
void foo(mystring);
void bar(const char *c) {
return foo(c);
}
int main() {
bar(nullptr);
}
$ scan-build-11 clang -c a.cpp
scan-build: Using '/usr/lib/llvm-11/bin/clang' for static analysis
a.cpp:10:14: warning: Null pointer passed to 1st parameter expecting 'nonnull' [core.NonNullParamChecker]
return foo(c);
^
1 warning generated.
scan-build: Analysis run complete.
scan-build: 1 bug found.
scan-build: Run 'scan-view /tmp/scan-build-2020-05-09-022120-444134-1' to examine bug reports.
$
AD
struct my_string : std::string {
using std::string::string;
my_string(const char * s) : std::string(s ? s : "") {}
};
V
struct my_string : std::string {
using std::string::string;
my_string(const char * s) : std::string(s ? s : "") {}
};
AB