This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Optimizer FAILURE in mark_use_of_function_local_static()



Hello

I get the following linker failure, but I don't know why?

<Optimizing>
FAILURE in mark_use_of_function_local_static()
    fname1: __sti
    fname2: __sti_
    symbol: _$P$T82$5$3
<Generating>

I get this message after using CGT 7.4.7.  In 7.4.6 the compiler build it without this failure.

The out file will generate well, but I don't know if this works well too with this failure? If i switch off the "Program mode compilation" the failure disapears.

What can I do and what happens ?

Regards,


Thomas

  • You shouldn't see that.  You are experiencing some kind of bug in the compiler.  I'd like to reproduce this error.  Are you building a CCS project?  Can you package up that project and attach it to your next post?

    Thanks and regards,

    -George

  • Hello George

    Thanks for your answer. And yes, I use CCS5 under Eclipse. Version  Version: 5.3.0.00090

    But sorry, I can't package up the project, only the project files I can give you.

    Regards,

    Thomas

    projectCCS5.zip
  • Thomas Caspari said:
    only the project files I can give you.

    Thank you.  But I cannot reproduce the error using only these files.  And if I cannot reproduce the error, then there is nothing more I can do.  

    Thanks and regards,

    -George

  • This is probably SDSCM00049407.

    The message is a sanity check, indicating that two function-name annotations related to a symbol are different.  It does not affect compilation, and indeed the textual name of the function is not needed at that point because we're using its internal representation as an object.  In other words, you can ignore it.  Unfortunately, there is no way to control it.

    7.4.7 corrected a bug in the way the two name annotations were determined, which caused this message to appear;  it didn't correct the reason they're different, which is what you might help us with.

    For what it's worth, the affected symbol is a parser temporary variable and the function is the C++ static-initialiser function.  The parser temp is a local static, and I'd guess it's derived from a local initialised array that is also a local static, appearing in a constructor.  You might try moving the local static variable out of the constructor to become a global variable, which should be the same functionally.

    If my description helps you inhibit the message, then you could describe or cite that portion of your code and we might be able to reproduce it, without needing your whole code base.

  • Thank you for submitting a test case through other channels.  I am able to reproduce that diagnostic.  I filed SDSCM00050243 in the SDOWP system to have this investigated.  Feel free to follow it with the SDOWP link below in my signature.

    Thanks and regards,

    -George

  • Hi George

    Thanks for the info and good luck.

    Regards

    Thomas