__wine_uuidof causing a wall of "warning: returning reference to temporary" on g++

Jacek Caban jacek at codeweavers.com
Tue Jul 31 03:38:20 CDT 2012

On 07/30/12 13:13, Ilya Konstantinov wrote:
> On Sun, Jul 29, 2012 at 9:47 PM, Jacek Caban <jacek at codeweavers.com
> <mailto:jacek at codeweavers.com>> wrote:
>         Upon first attempts to compile, I've received a wall of
>         "warning: returning reference to temporary" on Wine's headers
>         from g++.
>         All of those seem to stem from guidgen.h definition of
>         __wine_uuidof / __CRT_UUID_DECL for C++.
>     I don't see these warnings here. Also Wine has the same code for
>     __uuidof as mingw-w64, which is much more widely used with g++
>     (Wine is mostly tested on C), and I never heard about such
>     problem. Do you have any idea about what could be different in
>     your setup? What's your g++ version?
> I'm using gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) to build my
> Winelib app.
> As to the difference from mingw-w64, I see different code in there:
> http://mingw-w64.svn.sourceforge.net/viewvc/mingw-w64?view=revision&revision=4279
> <http://mingw-w64.svn.sourceforge.net/viewvc/mingw-w64?view=revision&revision=4279>
>     The idea is that if matches closer to the meaning of __uuidof,
>     which should return a reference to constant IID structure.
> Understood.
>     I'd expect compiler to be smart enough to produce same code
>     without the reference anyway (after all it's an inline function),
>     but still being more explicit would be nice. Could you please test
>     if the attached patch fixes the problem for you?
> Yep, it does.

I've tested it more and sent a patch.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20120731/6b6558c7/attachment-0001.html>

More information about the wine-devel mailing list