[aspectc-user] Aspect C++ and Symbian

Olaf Spinczyk Olaf.Spinczyk at informatik.uni-erlangen.de
Mon Sep 19 15:36:01 CEST 2005


Hi,

in your code example ac++ complains about the expression 
&NAbortHandler(), because NAbortHandler() is a construct expression, 
which does not yield an 'L-Value'. Therefore, (according the the C++ 
standard) you should not take the address of it.

Normal g++ compiler issue a warning: "taking address of temporary"

ac++ reacts with an error. As a first step to improve the situation we 
will also issue a warning instead of an error in future versions.

-Olaf


Marti Bayo-alemany wrote:
> Hi all,
> I want to point out two things.
> I am actually using whole program transformation to deal with the 
> symbian project (WPT).
> The reason is the dificulty to integrate ac++ into the makefiles from 
> the build process of symbian.
> I know that WPT is deprecated and I guess that is because it needs a 
> huge amount of memory to process the project. On my case more than 500 
> Mb. However my computer has enough memory so I keep on it first.
> 
> The second thing is a bug of Aspect C++. Something which is actually not 
> working good with ac++
> 
> C:/MySource/MobileNeroDigital/neroplayer/nero_gui/Symbian/AspectC/src-ah-in/NEventManager.cpp:141: 
> error: invalid operand to unary `&'
> The offending line is ...
>    m_ITrackInfoCache->FlushSetInfoQueue(&NAbortHandler());
> 
> Which is defined as ...
> virtual void FlushSetInfoQueue(NeroBase::IAbortHandler * p_abort) = 0;
> 
> where NAbortHandler is ...
> class NAbortHandler : public NeroBase::IAbortHandler
> 
> The solution was  to change that...
> 
>  m_ITrackInfoCache->FlushSetInfoQueue(&NAbortHandler());
> 
> ...for that ...
>   NAbortHandler l_AbortHandler;
>    m_ITrackInfoCache->FlushSetInfoQueue(&l_AbortHandler);
> 
> Hope that helps.
> Best wishes,
> Marti
> 
> ----- Original Message ----- From: "Marti Bayo-alemany" <malemany at nero.com>
> To: "Olaf Spinczyk" <Olaf.Spinczyk at informatik.uni-erlangen.de>
> Cc: <aspectc-user at aspectc.org>
> Sent: Monday, September 12, 2005 9:52 AM
> Subject: Re: [aspectc-user] Re: Aspect C++ and Symbian Error
> 
> 
>> Hi,
>>
>> I have found the same definition on the stdlib headers of MSVC6 and 
>> MSCV7, they are probably also cutting the Gordian knot.
>> The solution is to keep two different headers one to compile the 
>> program and one for the transformation with ac++.
>> Just a stdlib with a commented typedef for ac++ and a stdlib for 
>> compilation. The typedef is really needed for compilation.
>>
>> best wishes,
>> Marti
>>
>> ----- Original Message ----- From: "Olaf Spinczyk" 
>> <Olaf.Spinczyk at informatik.uni-erlangen.de>
>> To: "Marti Bayo-alemany" <malemany at nero.com>
>> Cc: <aspectc-user at aspectc.org>
>> Sent: Friday, September 09, 2005 10:00 AM
>> Subject: Re: [aspectc-user] Re: Aspect C++ and Symbian Error
>>
>>
>>> Hi again,
>>>
>>> I haven't found an email with a solution :-(. However, I looked into 
>>> an old version of this Symbian header file. There I found the typedef 
>>> and an interesting comment by the Symbian developers..
>>>
>>> /* There seems to be a lot of nonsense about _need_wchar_t etc., but for
>>>  * STDLIB we have cut the Gordian knot and done the simple thing
>>>  */
>>>
>>> In my opinion, cutting the Gordian knot was not a good idea ;-) as in 
>>> C++ normally wchar_t is a keyword.
>>>
>>> BTW, g++ 3.3 also reports the typedef as an error:
>>>
>>> limits.c:5: error: redeclaration of C++ built-in type `wchar_t'
>>>
>>> As a workaround you can either modify this file (remove the typedef) 
>>> or create a modified copy that is locate in a directory, which is 
>>> searched first by ac++.
>>>
>>> Maybe a macro would also help:
>>>
>>> #define wchar_t symbian_wchar_t
>>>
>>> (no guarantee)
>>>
>>> Regarding ac++ we'll have to find out which compiler versions 
>>> tolerate such a typedef and if we can integrate this behavior, e.g. 
>>> in the g++-2.95 mode.
>>>
>>> -Olaf
>>>
>>>
>>> Olaf Spinczyk wrote:
>>>> Hi,
>>>>
>>>> the problem is that this peace of code is not standard compliant. 
>>>> wchar_t is a keyword in C++. Therefore, this typedef is similar to 
>>>> something like
>>>>
>>>> typedef int long;
>>>>
>>>> which also makes no sense.
>>>>
>>>> I remember that we have already had this problem in the symbian 
>>>> header files some time ago. I'll search my emails and post the 
>>>> solution as soon as possible.
>>>>
>>>> Could you meanwhile check if there is an #ifdef around this typedef? 
>>>> Something like #ifdef __HAVE_BUILTIN_WCHAR_T.
>>>>
>>>> Best regards,
>>>>
>>>> Olaf
>>>>
>>>>
>>>> Marti Bayo-alemany wrote:
>>>>> Hi All,
>>>>> You should have all the same problem with the stddef.h headers for 
>>>>> MSVC6, MSVC7.
>>>>>  best wishes,
>>>>> Marti
>>>>>
>>>>>     ----- Original Message -----
>>>>>     *From:* Marti Bayo-alemany <mailto:malemany at nero.com>
>>>>>     *To:* aspectc-user at aspectc.org <mailto:aspectc-user at aspectc.org>
>>>>>     *Sent:* Thursday, September 08, 2005 7:12 PM
>>>>>     *Subject:* Aspect C++ and Symbian Error
>>>>>
>>>>>     Hi all,
>>>>>          I get the following error from ac++ when trying to compile 
>>>>> with stddef
>>>>>     C:/Symbian/7.0s/Series60_v20/Epoc32/include/libc/stddef.h:13: 
>>>>> error:
>>>>>     `signed' or `unsigned' invalid for given type            The 
>>>>> offending line of code is ...
>>>>>     typedef unsigned short int wchar_t;
>>>>>          any idea how to work around that ?
>>>>>          best wishes,
>>>>>     Marti
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------ 
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> aspectc-user mailing list
>>>>> aspectc-user at aspectc.org
>>>>> http://www.aspectc.org/mailman/listinfo/aspectc-user
>>>>
>>>> _______________________________________________
>>>> aspectc-user mailing list
>>>> aspectc-user at aspectc.org
>>>> http://www.aspectc.org/mailman/listinfo/aspectc-user
>>>
>>>
>>>
>>
>> _______________________________________________
>> aspectc-user mailing list
>> aspectc-user at aspectc.org
>> http://www.aspectc.org/mailman/listinfo/aspectc-user
>>
>>
> 
> _______________________________________________
> aspectc-user mailing list
> aspectc-user at aspectc.org
> http://www.aspectc.org/mailman/listinfo/aspectc-user




More information about the aspectc-user mailing list