Mercurial > hg > CbC > CbC_gcc
diff gcc/testsuite/g++.dg/warn/Wnull-conversion-2.C @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children | 84e7813d76e9 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gcc/testsuite/g++.dg/warn/Wnull-conversion-2.C Fri Oct 27 22:46:09 2017 +0900 @@ -0,0 +1,45 @@ +// { dg-do compile } +// { dg-options "-Wconversion-null" } + +#include <stddef.h> + +class Foo { + public: + template <typename T1, typename T2> + static void Compare(const T1& expected, const T2& actual) { } + + template <typename T1, typename T2> + static void Compare(const T1& expected, T2* actual) { } + +}; + +template<typename T1> +class Foo2 { + public: + Foo2(int x); + template<typename T2> void Bar(T2 y); +}; + +template<typename T3> void func(T3 x) { } + +typedef Foo2<int> MyFooType; + +void func1(long int a) { + MyFooType *foo2 = new MyFooType(NULL); // { dg-warning "passing NULL to" } + foo2->Bar(a); + func(NULL); + func<int>(NULL); // { dg-warning "passing NULL to" } + func<int *>(NULL); +} + +int x = 1; + +main() +{ + int *p = &x; + + Foo::Compare(0, *p); + Foo::Compare<long int, int>(NULL, p); // { dg-warning "passing NULL to" } + Foo::Compare(NULL, p); + func1(NULL); // { dg-warning "passing NULL to" } +}