IBM Support

LI77627: COMPILER ISSUES UNDEFINED REFERENCE ERROR

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Consider the following example:
    
    
    File main.cpp:
    ---------------------------------
    $cat main.cpp
    #include "virtual.h"
    
    int main(){
    
     /// --- comment out below to avoid error (a) ---
     /// --- (start) ---
     vector1 vec1; f(vec1); // <- error
     /// --- (end) ---
    }
    
    
    File vector.cpp
    ---------------------------------
    $cat vector.cpp
    #include "vector.h"
    
    void f(const vector1& v) {}
    
    
    
    File vector.h:
    ---------------------------------
    $cat vector.h
    #include <cstddef> // <- for std::size_t
    
    // template class and specialization
    template <std::size_t N, typename T> class vector {};
    template <typename T> class vector<2,T> {};
    
    typedef vector<2,double> vector1;
    
    // function using template
    void f(const vector1& v);
    
    
    
    Compile as:
    
    xlC -g -o vector.o -c vector.cpp
    xlC -g -o main.o -c main.cpp
    xlC -g main.o vector.o -o test
    
    At the last step (linking) compiler incorrectly issues the
    undefined reference error:
    
    main.o: In function `main':
    main.cpp:7: undefined reference to `f(vector<(size_t)1, double>
    const&)'
    

Local fix

  • N/A
    

Problem summary

  • Undefined reference error
    

Problem conclusion

  • The problem had been fixed
    

Temporary fix

Comments

APAR Information

  • APAR number

    LI77627

  • Reported component name

    XL C/C++ FOR LI

  • Reported component ID

    5725C7300

  • Reported release

    C10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-10-28

  • Closed date

    2013-10-28

  • Last modified date

    2013-10-28

  • APAR is sysrouted FROM one or more of the following:

    LI77494

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    XL C/C++ FOR LI

  • Fixed component ID

    5725C7300

Applicable component levels

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSXVZZ","label":"XL C\/C++ for Linux"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"12.1","Line of Business":{"code":"LOB57","label":"Power"}}]

Document Information

Modified date:
14 October 2021