File indexing completed on 2024-05-05 05:41:37

0001 #include <QtCore/QObject>
0002 #include <QtCore/QString>
0003 
0004 struct SmallTrivial
0005 {
0006     int v;
0007 };
0008 
0009 struct BigTrivial
0010 {
0011     int v[10];
0012 };
0013 
0014 struct NonTrivial
0015 {
0016     int v;
0017     ~NonTrivial() {}
0018 };
0019 
0020 struct NonTrivial2
0021 {
0022     int v;
0023     NonTrivial2() {}
0024     NonTrivial2(const NonTrivial2 &) {}
0025 };
0026 
0027 void test()
0028 {
0029     auto a = new SmallTrivial(); // Warn
0030     auto b = new BigTrivial();
0031     auto c = new NonTrivial();
0032     auto d = new NonTrivial2();
0033 
0034     auto e = new(0) SmallTrivial;
0035     auto f = new SmallTrivial[100];
0036 }
0037 
0038 class MyClass
0039 {
0040     void myMethod()
0041     {
0042         auto a = new SmallTrivial(); // OK
0043         m_smallTrivial = a;
0044         m_smallTrivial = new SmallTrivial(); // OK
0045     }
0046 
0047     SmallTrivial *m_smallTrivial = nullptr;
0048 };
0049 
0050 void receivesSmallTrivial(SmallTrivial *)
0051 {
0052 }
0053 
0054 
0055 SmallTrivial* test2()
0056 {
0057     return new SmallTrivial(); // OK
0058 }
0059 
0060 SmallTrivial* test3()
0061 {
0062     auto a = new SmallTrivial(); // OK
0063     receivesSmallTrivial(a);
0064     return a;
0065 }
0066 
0067 SmallTrivial* test4()
0068 {
0069     auto a = new SmallTrivial(); // OK
0070     return a;
0071 }