summaryrefslogblamecommitdiff
path: root/test/test27.cpp
blob: 1f39f6f68e0fc03332fc7e87f75d9544ca36b153 (plain) (tree)
1
2
3
4

             

                                                                                            












































































                                  


                           










                                                                 
                    










                                                                      
                        










                                                                      
                    










                                                                      


                        










                                                                          
                            










                                                                          
         










                                                                      
                        










                                                                      



























































































                                        
  
struct Data1;

void paranuckerInternalTest(const char *action, const char *collection, const char *values);

struct Data1
{
    Data1()
    {
    }

    Data1(Data1 *ptr0) :
        ptrval(ptr0)
    {
    }

    int val;
    Data1 *ptrval;
    int arr[3];

    int ftest1()
    {
        return 1;
    }

    static int ftest2(Data1 *ptr0)
    {
        return 1;
    }
};

struct Data2
{
    virtual ~Data2()
    {
    }
};

int k;

class Object1
{
    Data1 *tmp1;
    Data1 *tmp2;

    void func1(Data1 *const ptr1)
    {
        tmp1 = ptr1;
        if (tmp1)
        {
            ptr1->val = 100;
            tmp1->val = 200;
        }
        else
        {
            ptr1->val = 300;
            tmp1->val = 400;
        }
        ptr1->val = 500;
        tmp1->val = 600;
    }

    void func2(Data1 *const ptr1)
    {
        tmp1 = ptr1;
        tmp2 = tmp1;
        if (tmp2)
        {
            ptr1->val = 100;
            tmp1->val = 200;
            tmp2->val = 300;
        }
        else
        {
            ptr1->val = 400;
            tmp1->val = 500;
            tmp2->val = 600;
        }
        ptr1->val = 700;
        tmp1->val = 800;
        tmp2->val = 900;
    }

    void func3(Data1 *ptr1)
    {
        paranuckerInternalTest("=", "knownVars", "ptr1");
        paranuckerInternalTest("=", "knownNonNullVars", "");
        paranuckerInternalTest("=", "knownNullVars", "");
        paranuckerInternalTest("=", "needCheckNullVars", "ptr1");
        paranuckerInternalTest("=", "addNullVars", "");
        paranuckerInternalTest("=", "removeNullVars", "");
        paranuckerInternalTest("=", "removeNullVarsAll", "");
        paranuckerInternalTest("=", "linkedVars", "ptr1");
        paranuckerInternalTest("=", "linkedVars", "ptr2");
        paranuckerInternalTest("=", "linkedReverseVars", "ptr1");
        paranuckerInternalTest("=", "linkedReverseVars", "ptr2");
        Data1 *ptr2;
        paranuckerInternalTest("=", "knownVars", "ptr1 ptr2");
        paranuckerInternalTest("=", "knownNonNullVars", "");
        paranuckerInternalTest("=", "knownNullVars", "");
        paranuckerInternalTest("=", "needCheckNullVars", "ptr1 ptr2");
        paranuckerInternalTest("=", "addNullVars", "ptr2");
        paranuckerInternalTest("=", "removeNullVars", "");
        paranuckerInternalTest("=", "removeNullVarsAll", "");
        paranuckerInternalTest("=", "linkedVars", "ptr1");
        paranuckerInternalTest("=", "linkedVars", "ptr2");
        paranuckerInternalTest("=", "linkedReverseVars", "ptr1");
        paranuckerInternalTest("=", "linkedReverseVars", "ptr2");
        ptr1->val = 100;
        paranuckerInternalTest("=", "knownVars", "ptr1 ptr2");
        paranuckerInternalTest("=", "knownNonNullVars", "");
        paranuckerInternalTest("=", "knownNullVars", "");
        paranuckerInternalTest("=", "needCheckNullVars", "ptr1 ptr2");
        paranuckerInternalTest("=", "addNullVars", "ptr2");
        paranuckerInternalTest("=", "removeNullVars", "");
        paranuckerInternalTest("=", "removeNullVarsAll", "");
        paranuckerInternalTest("=", "linkedVars", "ptr1");
        paranuckerInternalTest("=", "linkedVars", "ptr2");
        paranuckerInternalTest("=", "linkedReverseVars", "ptr1");
        paranuckerInternalTest("=", "linkedReverseVars", "ptr2");
        ptr1 = ptr2;
        paranuckerInternalTest("=", "knownVars", "ptr1 ptr2");
        paranuckerInternalTest("=", "knownNonNullVars", "");
        paranuckerInternalTest("=", "knownNullVars", "");
        paranuckerInternalTest("=", "needCheckNullVars", "ptr1 ptr2");
        paranuckerInternalTest("=", "addNullVars", "ptr1 ptr2");
        paranuckerInternalTest("=", "removeNullVars", "");
        paranuckerInternalTest("=", "removeNullVarsAll", "");
        paranuckerInternalTest("=", "linkedVars", "ptr1");
        paranuckerInternalTest("=", "linkedVars", "ptr2 ptr1");
        paranuckerInternalTest("=", "linkedReverseVars", "ptr1 ptr2");
        paranuckerInternalTest("=", "linkedReverseVars", "ptr2");
        ptr2->val = 200;
        if (!ptr1)
        {
            paranuckerInternalTest("=", "knownVars", "ptr1 ptr2");
            paranuckerInternalTest("=", "knownNonNullVars", "");
            paranuckerInternalTest("=", "knownNullVars", "ptr1 ptr2");
            paranuckerInternalTest("=", "needCheckNullVars", "ptr1 ptr2");
            paranuckerInternalTest("=", "addNullVars", "ptr1 ptr2");
            paranuckerInternalTest("=", "removeNullVars", "");
            paranuckerInternalTest("=", "removeNullVarsAll", "");
            paranuckerInternalTest("=", "linkedVars", "ptr1");
            paranuckerInternalTest("=", "linkedVars", "ptr2 ptr1");
            paranuckerInternalTest("=", "linkedReverseVars", "ptr1 ptr2");
            paranuckerInternalTest("=", "linkedReverseVars", "ptr2");
            ptr1->val = 300;
            paranuckerInternalTest("=", "knownVars", "ptr1 ptr2");
            paranuckerInternalTest("=", "knownNonNullVars", "");
            paranuckerInternalTest("=", "knownNullVars", "ptr1 ptr2");
            paranuckerInternalTest("=", "needCheckNullVars", "ptr1 ptr2");
            paranuckerInternalTest("=", "addNullVars", "ptr1 ptr2");
            paranuckerInternalTest("=", "removeNullVars", "");
            paranuckerInternalTest("=", "removeNullVarsAll", "");
            paranuckerInternalTest("=", "linkedVars", "ptr1");
            paranuckerInternalTest("=", "linkedVars", "ptr2 ptr1");
            paranuckerInternalTest("=", "linkedReverseVars", "ptr1 ptr2");
            paranuckerInternalTest("=", "linkedReverseVars", "ptr2");
        }
        paranuckerInternalTest("=", "knownVars", "ptr1 ptr2");
        paranuckerInternalTest("=", "knownNonNullVars", "");
        paranuckerInternalTest("=", "knownNullVars", "");
        paranuckerInternalTest("=", "needCheckNullVars", "ptr1 ptr2");
        paranuckerInternalTest("=", "addNullVars", "ptr1 ptr2");
        paranuckerInternalTest("=", "removeNullVars", "");
        paranuckerInternalTest("=", "removeNullVarsAll", "");
        paranuckerInternalTest("=", "linkedVars", "ptr1");
        paranuckerInternalTest("=", "linkedVars", "ptr2 ptr1");
        paranuckerInternalTest("=", "linkedReverseVars", "ptr1 ptr2");
        paranuckerInternalTest("=", "linkedReverseVars", "ptr2");
        ptr1->val = 400;
        paranuckerInternalTest("=", "knownVars", "ptr1 ptr2");
        paranuckerInternalTest("=", "knownNonNullVars", "");
        paranuckerInternalTest("=", "knownNullVars", "");
        paranuckerInternalTest("=", "needCheckNullVars", "ptr1 ptr2");
        paranuckerInternalTest("=", "addNullVars", "ptr1 ptr2");
        paranuckerInternalTest("=", "removeNullVars", "");
        paranuckerInternalTest("=", "removeNullVarsAll", "");
        paranuckerInternalTest("=", "linkedVars", "ptr1");
        paranuckerInternalTest("=", "linkedVars", "ptr2 ptr1");
        paranuckerInternalTest("=", "linkedReverseVars", "ptr1 ptr2");
        paranuckerInternalTest("=", "linkedReverseVars", "ptr2");
    }

    void func4(Data1 *const ptr1)
    {
        Data1 *ptr2;
        tmp1 = ptr1;
        tmp1 = ptr2;

        if (tmp1)
        {
            ptr1->val = 100;
            tmp1->val = 200;
        }
        else
        {
            ptr1->val = 300;
            tmp1->val = 400;
        }
        ptr1->val = 500;
        tmp1->val = 600;
    }

    void func5(Data1 *ptr1, Data1 *ptr3)
    {
        Data1 *ptr2;
        ptr1->val = 100;
        ptr1 = ptr2;
        ptr2->val = 200;
        if (!ptr1)
        {
            ptr1->val = 300;
        }
        ptr1 = ptr3;
        ptr1->val = 400;
        ptr1 = ptr2;
        ptr1->val = 500;
    }

    void func6(Data1 *ptr1, Data1 *ptr3)
    {
        ptr1->val = 100;
        ptr1 = tmp1;
        tmp1->val = 200;
        if (!ptr1)
        {
            ptr1->val = 300;
        }
        ptr1 = ptr3;
        ptr1->val = 400;
        ptr1 = tmp2;
        ptr1->val = 500;
    }

    void func7(Data1 *ptr1, Data1 *ptr3)
    {
        Data1 *ptr2;
        tmp1 = ptr3;
        ptr1->val = 100;
        ptr1 = ptr2;
        ptr2->val = 200;
        if (!ptr1)
        {
            ptr1->val = 300;
        }
        ptr1 = ptr3;
        ptr1->val = 400;
        ptr1 = tmp1;
        ptr1->val = 500;
    }

    void func8(Data1 *ptr1, Data1 *ptr3)
    {
        Data1 *ptr2;
        tmp1 = ptr3;
        if (ptr1)
        ptr1->val = 100;
        ptr1 = ptr2;
        ptr2->val = 200;
        if (!ptr1)
        {
            ptr1->val = 300;
        }
        ptr1 = ptr3;
        if (ptr3)
            ptr1->val = 400;
        ptr1 = tmp1;
        ptr2 = ptr1;
        if (tmp1)
            ptr1->val = 500;
        if (ptr2)
            ptr1->val = 600;
    }
};