On Sun, Jul 29, 2012 at 9:47 PM, Jacek
Caban
<jacek@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:
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.