Microsoft Developer Network > 포럼 홈 > Phoenix > Consistency check failures: Call must have a call target
질문하기질문하기
 

질문Consistency check failures: Call must have a call target

  • 2009년 5월 28일 목요일 오전 9:29if if 사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     

    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

모든 응답

  • 2009년 6월 3일 수요일 오후 4:41Andy Ayers - MSFT중재자사용자 메달사용자 메달사용자 메달사용자 메달사용자 메달
     
    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