Microsoft Developer Network > Forenhomepage > Phoenix > Consistency check failures: Call must have a call target
Stellen Sie eine FrageStellen Sie eine Frage
 

FrageConsistency check failures: Call must have a call target

  • Donnerstag, 28. Mai 2009 09:29if if TeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     

    Hi,
    I'm doing the following. I'm taking an instruction and making another copy of it. After doing an instruction.Copy(), I copy all its non-implicit operands, by going in a foreach loop and doing a continue on IsImplicit.
    The problem is that I'm getting this error list.

    ------------------------------------------------------------------------------------------------------

    Consistency check failures after Isolator Instrumentation Phase
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv294-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv300-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv306-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv309-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
    Phoenix Assertion Failure: d:\enlistments\sdk_june08\src\phx\ir\ir-check.cpp, Line 1954
      !this->HaveEmittedDiagnostic : Consistency check failures
      in (Function number 2) _main [line 0] during Isolator Instrumentation Phase
      in (Module) ../testFiles/testFunc.c
    d:\users\t-ashaga\phoenixprojects\testfiles\testfunc.c(27) : warning C4700: uninitialized

    Consistency check failures after Warnings Analysis Phase
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv294-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv300-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv306-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv309-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
    Phoenix Assertion Failure: d:\enlistments\sdk_june08\src\phx\ir\ir-check.cpp, Line 1954
      !this->HaveEmittedDiagnostic : Consistency check failures
      in (Function number 2) _main [line 27] during Warnings Analysis Phase
      in (Module) ../testFiles/testFunc.c

    Consistency check failures after Read-only globals
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv294-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv300-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv306-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv309-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
    Phoenix Assertion Failure: d:\enlistments\sdk_june08\src\phx\ir\ir-check.cpp, Line 1954
      !this->HaveEmittedDiagnostic : Consistency check failures
      in (Function number 2) _main [line 27] during Read-only globals
      in (Module) ../testFiles/testFunc.c

    Consistency check failures after Inliner
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv294-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv300-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv306-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv309-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
    Phoenix Assertion Failure: d:\enlistments\sdk_june08\src\phx\ir\ir-check.cpp, Line 1954
      !this->HaveEmittedDiagnostic : Consistency check failures
      in (Function number 2) _main [line 27] during Inliner
      in (Module) ../testFiles/testFunc.c

    Consistency check failures after Dead Parameter Removal
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv294-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv300-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv306-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv309-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
    Phoenix Assertion Failure: d:\enlistments\sdk_june08\src\phx\ir\ir-check.cpp, Line 1954
      !this->HaveEmittedDiagnostic : Consistency check failures
      in (Function number 2) _main [line 27] during Dead Parameter Removal
      in (Module) ../testFiles/testFunc.c

    Consistency check failures after Type Checker
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv294-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv300-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv306-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv309-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
    Phoenix Assertion Failure: d:\enlistments\sdk_june08\src\phx\ir\ir-check.cpp, Line 1954
      !this->HaveEmittedDiagnostic : Consistency check failures
      in (Function number 2) _main [line 30] during Type Checker
      in (Module) ../testFiles/testFunc.c

    Consistency check failures after OpenMP
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv294-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv300-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv306-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv309-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
    Phoenix Assertion Failure: d:\enlistments\sdk_june08\src\phx\ir\ir-check.cpp, Line 1954
      !this->HaveEmittedDiagnostic : Consistency check failures
      in (Function number 2) _main [line 30] during OpenMP
      in (Module) ../testFiles/testFunc.c

    Consistency check failures after Alias analysis
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv294-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv300-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv306-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv309-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
    Phoenix Assertion Failure: d:\enlistments\sdk_june08\src\phx\ir\ir-check.cpp, Line 1954
      !this->HaveEmittedDiagnostic : Consistency check failures
      in (Function number 2) _main [line 30] during Alias analysis
      in (Module) ../testFiles/testFunc.c

    Consistency check failures after Flow Optimization
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv294-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv300-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv291-]*, [tv286-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv306-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv303-]*, [tv285-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv309-]*, $L5(EH) #27
       Call must have a call target
             {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv285-]*, $L5(EH) #27


    ------------------------------------------------------------------------------------------------------
    Interestingly, {*CallTag}        = CALL* &_foobar, [tv287-]*, [tv286-]*, [tv285-]*, $L5(EH) #27 is the original instruction

    Can somebody please help.

    Thanks and Regards,
    If If

Alle Antworten

  • Mittwoch, 3. Juni 2009 16:41Andy Ayers - MSFTModeratorTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     
    Annoyingly, you need to special-case the first source operand on a call.

    If you are copying a call, use "call.CallTargetOperand = <new operand>" instead of appending the first source. Then append the remaining sources as usual. Or use the constructor that takes the call target operand as a parameter, and then append the rest of the sources.
    Architect - Microsoft Phoenix Project