[ https://issues.apache.org/jira/browse/STDCXX-364?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Martin Sebor updated STDCXX-364: -------------------------------- Affects Version/s: (was: 4.2) 4.1.3 Summary: [gcc/Linux] std::tm not declared in <cwchar> (was: [Linux] gcc 21.cwchar.cpp tm error) Broken since at least stdcxx 4.1.3 (see below). For some reason we forget to introduce struct tm into namespace std in <cwchar>, even though we do the right thing in <ctime>. $ make t generating dependencies for t.cpp gcc -c -I/amd/devco/sebor/stdcxx-4.1.3/include/ansi -D_RWSTDDEBUG -D_RWSTD_USE_CONFIG -I/build/sebor/stdcxx-4.1.3-gcc-3.4.6-11S//include -I/amd/devco/sebor/stdcxx-4.1.3/include -I/amd/devco/sebor/stdcxx-4.1.3/examples/include -pedantic -nostdinc++ -g -Wall -W -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long -Wcast-align t.cpp t.cpp: In function `int main()': t.cpp:5: error: `tm' is not a member of `std' t.cpp:5: error: expected `;' before "tmb" t.cpp:6: error: `tmb' was not declared in this scope t.cpp:6: warning: unused variable 'tmb' make: *** [t.o] Error 1 > [gcc/Linux] std::tm not declared in <cwchar> > -------------------------------------------- > > Key: STDCXX-364 > URL: https://issues.apache.org/jira/browse/STDCXX-364 > Project: C++ Standard Library > Issue Type: Bug > Components: 21. Strings > Affects Versions: 4.1.3 > Environment: Linux, gcc 3.4.6 - 4.1.2 > Reporter: Scott (Yu) Zhong > > getting this error: > /home/scottz/stdcxx/tests/strings/21.cwchar.cpp:568: error: reference to 'tm' > is ambiguous > /usr/include/../include/time.h:135: error: candidates are: struct tm > /home/scottz/stdcxx/tests/strings/21.cwchar.cpp:550: error: > struct Fallback::tm > /home/scottz/stdcxx/tests/strings/21.cwchar.cpp:568: error: reference to 'tm' > is ambiguous > /usr/include/../include/time.h:135: error: candidates are: struct tm > /home/scottz/stdcxx/tests/strings/21.cwchar.cpp:550: error: > struct Fallback::tm > /home/scottz/stdcxx/tests/strings/21.cwchar.cpp:568: error: 'tm' does not > name a type > /home/scottz/stdcxx/tests/strings/21.cwchar.cpp:577: error: 'test_tm' in > namespace 'std::Nested' does not name a type > ----------------------------------------------------------------------------------------- > Martin Sebor [EMAIL PROTECTED] > I was able to reproduce the same error with gcc 3.4.6. > The purpose of the test is to verify the conformance of the <cwchar> header > WRT namespace cleanliness (i.e., that symbols like struct tm are defined in > namespace std and not also in the global scope). The test is designed to fail > at runtime (via assertions) rather than at compile time but it looks like the > implementation of the test (or maybe even its > design) is broken. In any case, the fact that the test doesn't compile > suggests there is a problem with the header. > The compilation errors for the simple program below confirm this. Can you > open an issue for this problem and reference this thread in the archive in > the issue? > $ cat t.cpp && nice make t > #include <cwchar> > int main () > { > std::tm tmb = { 0 }; > } > gcc -c -I/amd/devco/sebor/stdcxx/include/ansi -D_RWSTDDEBUG > -I/amd/devco/sebor/stdcxx/include -I/build/sebor/stdcxx-gcc-3.4.6-11S/include > -I/amd/devco/sebor/stdcxx/../rwtest > -I/amd/devco/sebor/stdcxx/../rwtest/include > -I/amd/devco/sebor/stdcxx/tests/include -pedantic -nostdinc++ -g -W -Wall > -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long > -Wcast-align t.cpp > t.cpp: In function `int main()': > t.cpp:5: error: `tm' is not a member of `std' > t.cpp:5: error: expected `;' before "tmb" > make: *** [t.o] Error 1 > Thanks > Martin > $ cat t.cpp && nice make t > #include <cwchar> > int main () > { > std::tm tmb = { 0 }; > } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.