c++.wxwindows - 8.37 beta failure
- chris elliott <biol75 york.ac.uk> Sep 30 2003
- "Walter" <walter digitalmars.com> Sep 30 2003
- Arjan Knepper <arjan ask.me> Oct 05 2003
wxwindows (2.4.2) was Ok with 8.36
C:\wx\wxWindows-2.4.2\src\msw>scppn
Digital Mars C/C++ Compiler Version 8.36.4n
Copyright (C) Digital Mars 2000-2003. All Rights Reserved.
Written by Walter Bright
www.digitalmars.com
Now dies with latest beta
dmc -c -cpp -Ae -Ar -mn -D_WINDOWS -6 -a8 -Nc -c -H -HD..\..\d_mars -HO-
-DWXMSW
-D__WIN32__ -D__WIN95__ -D__WXDEBUG__ -I..\..\include -I..\..\lib\_sc
-I..\..\
contrib\include
-I..\../src/regex;..\../src/png;..\../src/jpeg;..\../src/zlib;..
\../src/tiff ..\..\src\common\variant.cpp -o..\..\src\common\variant.obj
wxVariant variant( wxString( (wxChar*)
(data->GetValue().Nth(idx)->Data(
)) ));
^
..\..\src\common\variant.cpp(1866) : Error: ')' expected
return variant;
^
..\..\src\common\variant.cpp(1867) : Error: '=', ';' or ',' expected
}
^
..\..\src\common\variant.cpp(1868) : Error: '=', ';' or ',' expected
}
^
..\..\src\common\variant.cpp(1870) : Error: '=', ';' or ',' expected
wxVariantDataList* data = (wxVariantDataList*) m_data;
^
..\..\src\common\variant.cpp(1879) : Error: 'data' is not in function
parameter
list
Fatal error: too many errors
--- errorlevel 1
--- errorlevel 1
code here reads:
wxVariant wxVariant::operator[] (size_t idx) const
{
wxASSERT_MSG( (GetType() == wxT("list") || GetType() ==
wxT("stringlist")), wxT("Invalid type for array operator") );
if (GetType() == wxT("list"))
{
wxVariantDataList* data = (wxVariantDataList*) m_data;
wxASSERT_MSG( (idx < (size_t) data->GetValue().Number()),
wxT("Invalid index for array") );
return * (wxVariant*) (data->GetValue().Nth(idx)->Data());
}
else if (GetType() == wxT("stringlist"))
{
wxVariantDataStringList* data = (wxVariantDataStringList*) m_data;
wxASSERT_MSG( (idx < (size_t) data->GetValue().Number()),
wxT("Invalid index for array") );
wxVariant variant( wxString( (wxChar*)
(data->GetValue().Nth(idx)->Data()) ));
return variant;
}
return wxNullVariant;
}
dmc version now:
C:\wx\wxWindows-2.4.2\src\msw>scppn
Digital Mars C/C++ Compiler Version 8.37.3n
Copyright (C) Digital Mars 2000-2003. All Rights Reserved.
Written by Walter Bright
www.digitalmars.com
chris
Sep 30 2003
Can you please try and cut it down to a small example? Also, you don't need the -mn, -6, or -a8 flags as they are the default.
Sep 30 2003
Workaround: replace/change the variant.cpp line 1866: // wxVariant variant( wxString( (wxChar*) ( data -> GetValue ().Nth ( idx ) -> Data () ) ) ); with/to: wxVariant variant ( (const wxString &) wxString ( (wxChar *) data -> GetValue ().Nth ( idx ) -> Data () ) ); Arjan chris elliott wrote:wxwindows (2.4.2) was Ok with 8.36 C:\wx\wxWindows-2.4.2\src\msw>scppn Digital Mars C/C++ Compiler Version 8.36.4n Copyright (C) Digital Mars 2000-2003. All Rights Reserved. Written by Walter Bright www.digitalmars.com Now dies with latest beta dmc -c -cpp -Ae -Ar -mn -D_WINDOWS -6 -a8 -Nc -c -H -HD..\..\d_mars -HO- -DWXMSW -D__WIN32__ -D__WIN95__ -D__WXDEBUG__ -I..\..\include -I..\..\lib\_sc -I..\..\ contrib\include -I..\../src/regex;..\../src/png;..\../src/jpeg;..\../src/zlib;.. \../src/tiff ..\..\src\common\variant.cpp -o..\..\src\common\variant.obj wxVariant variant( wxString( (wxChar*) (data->GetValue().Nth(idx)->Data( )) )); ^ ..\..\src\common\variant.cpp(1866) : Error: ')' expected return variant; ^ ..\..\src\common\variant.cpp(1867) : Error: '=', ';' or ',' expected } ^ ..\..\src\common\variant.cpp(1868) : Error: '=', ';' or ',' expected } ^ ..\..\src\common\variant.cpp(1870) : Error: '=', ';' or ',' expected wxVariantDataList* data = (wxVariantDataList*) m_data; ^ ..\..\src\common\variant.cpp(1879) : Error: 'data' is not in function parameter list Fatal error: too many errors --- errorlevel 1 --- errorlevel 1 code here reads: wxVariant wxVariant::operator[] (size_t idx) const { wxASSERT_MSG( (GetType() == wxT("list") || GetType() == wxT("stringlist")), wxT("Invalid type for array operator") ); if (GetType() == wxT("list")) { wxVariantDataList* data = (wxVariantDataList*) m_data; wxASSERT_MSG( (idx < (size_t) data->GetValue().Number()), wxT("Invalid index for array") ); return * (wxVariant*) (data->GetValue().Nth(idx)->Data()); } else if (GetType() == wxT("stringlist")) { wxVariantDataStringList* data = (wxVariantDataStringList*) m_data; wxASSERT_MSG( (idx < (size_t) data->GetValue().Number()), wxT("Invalid index for array") ); wxVariant variant( wxString( (wxChar*) (data->GetValue().Nth(idx)->Data()) )); return variant; } return wxNullVariant; } dmc version now: C:\wx\wxWindows-2.4.2\src\msw>scppn Digital Mars C/C++ Compiler Version 8.37.3n Copyright (C) Digital Mars 2000-2003. All Rights Reserved. Written by Walter Bright www.digitalmars.com chris
Oct 05 2003









"Walter" <walter digitalmars.com> 