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.

Compiler: Clarification of known bugs from SDOWP



Tool/software: TI C/C++ Compiler

Hi there,

I am working with the ARM_18.12.0.LTS compiler and going through the list of known bugs from SDOWP, and I need some clarification on several of the issues, in order to verify that these issues do not affect my system. The bugs which I do not fully understand is the following:

CODEGEN-4124: Failure to defer access control checks – Can you clarify the meaning of this bug?

CODEGEN-3964: Unimplemented core issue 1467: Overloads and initializations with single-element initializer list  - There is no overload initializer_lists in our code. Does this happen in stdlib?

CODEGEN-3954: Problem with std::swap and <tuple> - What is the problem ?

CODEGEN-3946: Spurious error on global qualifier of struct template – Can you clarify this bug, do not understand the error ?

SDSCM00052849: Compiler and assembler disagree on format for IT instruction – Can you clarify this error message, seems a bit broad. When and how do the compiler and the assembler disagree?  

SDSCM00040936: Structure is not initialized correctly when using -o2 or -o3 optimization – Could you specify the problem and the consequences ?

SDSCM00036874: Section relative ELF symbol values in partially linking object files should hold the section offset for the symbol – Can you clarify this error and the consequences linked to it?

 

Thank you for your time and help.

 

Kind regards

Mads Kramer

  • Mads Ronn Kramer said:
    SDSCM00052849: Compiler and assembler disagree on format for IT instruction – Can you clarify this error message, seems a bit broad. When and how do the compiler and the assembler disagree?  

    Please see the forum thread where this issue is first reported.

    Mads Ronn Kramer said:
    SDSCM00040936: Structure is not initialized correctly when using -o2 or -o3 optimization – Could you specify the problem and the consequences ?

    There must be some kind of error.  I cannot find any entry with this identifier.

    For the rest of them ... I have reached out to experts who know the issue better than me.  Expect responses over the next few days.

    Thanks and regards,

    -George

  • CODEGEN-4124

    In the sample code, A::I is a private typedef to the int type.

    The constructs:

    1) template<A::I> struct A::Q { };

    2) template<A::I> struct R { };

    Use A::I before the parser might understand that the object being declared is a member of (1) or friend of (2) A. Because the parser does not wait until it has more information and emits an error, it is in violation of the C++ standard, which specifically allows both (1) and (2).

    CODEGEN-3964

    Core issues are issues which are filed against the C++ standard itself, intending to fix ambiguous language or forbid constructs which may cause issues.

    In particular, core issue 1467 involves an ambiguous case where an integer, which can be initialized via:

    int x{5};

    And a std::initializer_list<char> of one element, which can be used in a function call like the following:

    foo({5});

    Become ambiguous when overloaded function resolution is being performed.

    void foo(int x); // #1

    void foo(std::initializer_list<char> x); // #2

    foo({5}); // Calls #1 or #2?

    Does {5} get interpreted as int{5} or std::initialize_list<char>{5}? The standard itself was ambiguous, and was fixed after the initial release.

    If your code does not have overloaded functions involving initializer lists, you will not see the symptoms of CODEGEN-3964.

    CODEGEN-3946

    In this bug, our compiler falsely flags a rather complicated and contrived piece of code with an error. This type of construct should not appear in any normal code. In a real case, you’d expect to see:

    template<class> struct A_ {};

    A_<void> b_;

    Which compiles as expected. Still, it’s a bug that we need to track.

  • Thank you for the clarification.
  • Regarding ...

    Mads Ronn Kramer said:
    SDSCM00040936: Structure is not initialized correctly when using -o2 or -o3 optimization – Could you specify the problem and the consequences ?

    There is no entry with that ID.  But there is SDSCM00040934 (note the last digit changes to 4) with the same headline.  I presume this is the one you mean.  It is first reported in this forum thread, and is briefly mentioned in this forum post.  It is not fixed. 

    Thanks and regards,

    -George