Issue Details (XML | Word | Printable)

Key: STDCXX-874
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Critical Critical
Assignee: Martin Sebor
Reporter: Martin Sebor
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
C++ Standard Library

[EDG eccp 3.9] unsats on std::__rw_replace for string member templates

Created: 15/Apr/08 08:11 PM   Updated: 01/Jun/08 12:55 AM
Return to search
Component/s: 21. Strings
Affects Version/s: 4.2.0
Fix Version/s: 4.2.1

Time Tracking:
Original Estimate: 1h
Original Estimate - 1h
Remaining Estimate: 0h
Time Spent - 1h
Time Spent: 1h
Time Spent - 1h

Environment: Edison Design Group C/C++ Front End, version 3.9 (Mar 24 2007 16:01:33)

Severity: Linker Error
Resolution Date: 15/Apr/08 08:18 PM


 Description  « Hide
Compiling and linking the following program with EDG eccp 3.9 produces the linker error below.
$ cat t.cpp && nice gmake t
#include <string>

int main ()
{
    std::string s;

    const int a = 97;
    s.append (&a, &a + 1);
    s.assign (&a, &a + 1);
    s.insert (s.begin (), &a, &a + 1);
    s.replace (s.begin (), s.end (), &a, &a + 1);
}
generating dependencies for t.cpp
eccp -M -I/amd/devco/sebor/stdcxx/include/ansi -D_RWSTDDEBUG    -I/amd/devco/sebor/stdcxx/include -I/build/sebor/stdcxx-eccp-3.9-11s/include -I/amd/devco/sebor/stdcxx/tests/include  -A -x --template_directory=/build/sebor/stdcxx-eccp-3.9-11s/lib -g   --display_error_number --remarks --diag_suppress 193,236,340,401,261,479,487,678,679,815  t.cpp
eccp -c -I/amd/devco/sebor/stdcxx/include/ansi -D_RWSTDDEBUG    -I/amd/devco/sebor/stdcxx/include -I/build/sebor/stdcxx-eccp-3.9-11s/include -I/amd/devco/sebor/stdcxx/tests/include  -A -x --template_directory=/build/sebor/stdcxx-eccp-3.9-11s/lib -g   --display_error_number --remarks --diag_suppress 193,236,340,401,261,479,487,678,679,815   t.cpp
eccp t.o -o t -L/build/sebor/stdcxx-eccp-3.9-11s/rwtest -lrwtest11s --template_directory=/build/sebor/stdcxx-eccp-3.9-11s/lib    -L/build/sebor/stdcxx-eccp-3.9-11s/lib  -lstd11s  -lm 
t.o(.text+0x2a8): In function `main':
t.cpp:8: undefined reference to `std::__rw_replace<char, std::char_traits<char>, std::allocator<char>, __rw::__rw_debug_iter<std::basic_string<char, std::char_traits<char>, std::allocator<char>>, char *, char *>, const int *>(std::basic_string<T1, T2, T3>&, T4, T4, T5, T5)'
t.o(.text+0x423):t.cpp:9: undefined reference to `std::__rw_replace<char, std::char_traits<char>, std::allocator<char>, __rw::__rw_debug_iter<std::basic_string<char, std::char_traits<char>, std::allocator<char>>, char *, char *>, const int *>(std::basic_string<T1, T2, T3>&, T4, T4, T5, T5)'
t.o(.text+0x711):t.cpp:10: undefined reference to `std::__rw_replace<char, std::char_traits<char>, std::allocator<char>, __rw::__rw_debug_iter<std::basic_string<char, std::char_traits<char>, std::allocator<char>>, char *, char *>, const int *>(std::basic_string<T1, T2, T3>&, T4, T4, T5, T5)'
t.o(.text+0xc5a):t.cpp:11: undefined reference to `std::__rw_replace<char, std::char_traits<char>, std::allocator<char>, __rw::__rw_debug_iter<std::basic_string<char, std::char_traits<char>, std::allocator<char>>, char *, char *>, const int *>(std::basic_string<T1, T2, T3>&, T4, T4, T5, T5)'
collect2: ld returned 1 exit status
gmake: *** [t] Error 1


 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Repository Revision Date User Message
ASF #648403 Tue Apr 15 20:17:57 UTC 2008 sebor 2008-04-15 Martin Sebor <sebor@roguewave.com>

STDCXX-874
* include/string (__rw_replace, __rw_replace_aux): Decorated
exported templates with the export keyword.
* include/string.cc: Same.
Files Changed
MODIFY /stdcxx/trunk/include/string
MODIFY /stdcxx/trunk/include/string.cc

Martin Sebor logged work - 15/Apr/08 08:18 PM
Time Worked: 1h
Fixed.
Martin Sebor added a comment - 15/Apr/08 08:18 PM
Fix committed in r648403.
No need to worry about committing the test program into the regression test suite since the string tests were also exhibiting problem.
Will integrate into 4.2.x in the upcoming bulk merge.

Martin Sebor made changes - 15/Apr/08 08:18 PM
Field Original Value New Value
Resolution Fixed [ 1 ]
Status Open [ 1 ] Resolved [ 5 ]
Martin Sebor made changes - 15/Apr/08 08:18 PM
Time Spent 1h [ 3600 ]
Remaining Estimate 1h [ 3600 ] 0h [ 0 ]
Repository Revision Date User Message
ASF #651447 Thu Apr 24 22:50:34 UTC 2008 sebor 2008-04-24 Martin Sebor <sebor@roguewave.com>

Merged revs 648509 and 648403 from trunk.

        2008-04-15 Martin Sebor <sebor@roguewave.com>

        STDCXX-832
        * include/string.cc (_C_get_rep): Used two static_casts via void*
        instead of a single reinterpret_cast to prevent HP aCC 6 warning
        #4232: conversion from "wchar_t*" to a more strictly aligned type.

2008-04-15 Martin Sebor <sebor@roguewave.com>

STDCXX-874
* include/string (__rw_replace, __rw_replace_aux): Decorated
exported templates with the export keyword.
* include/string.cc: Same.
Files Changed
MODIFY /stdcxx/branches/4.2.x/include/string
MODIFY /stdcxx/branches/4.2.x/include/string.cc

Martin Sebor added a comment - 01/Jun/08 12:55 AM
Fix confirmed in nightly build results (string tests link fine).

Martin Sebor made changes - 01/Jun/08 12:55 AM
Status Resolved [ 5 ] Closed [ 6 ]