Re: Help with strict-aliasing warning

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 04/12/2018 07:40 AM, John Reiser wrote:
Kevin Kofler wrote:
Orion Poplawski wrote:
I'm getting:

/builddir/build/BUILD/gdl-0.9.8/src/basic_pro_jmg.cpp: In function 'void
lib::linkimage(EnvT*)':
/builddir/build/BUILD/gdl-0.9.8/src/basic_pro_jmg.cpp:159:36: warning:
dereferencing type-punned pointer will break strict-aliasing rules
[-Wstrict-aliasing]
         (BaseGDL* &) dynFun[count_fun] =
                      ~~~~~~~~~~~~~~~~^
                    (BaseGDL*) dlsym(module[count], entryName.c_str());


dynFun is defined as:

    BaseGDL*(*dynFun[MAXNDLL/2])( EnvT* e);

This is all beyond me.  Missing the function pointer argument
specification?

Try:

dynFun[count_fun] =
   (BaseGDL*(*)(EnvT*)) dlsym(module[count], entryName.c_str());

Yes.  Introducing a typedef might aid understanding:

     typedef BaseGDL* (*dynFun_t)(EnvT* e);
     dynFun_t dynFun[MAXDLL/2];
//   ...
     dynFun[count_fun] = (dynFun_t) dlsym(...);

Thanks!


--
Orion Poplawski
Manager of NWRA Technical Systems          720-772-5637
NWRA, Boulder/CoRA Office             FAX: 303-415-9702
3380 Mitchell Lane                       orion@xxxxxxxx
Boulder, CO 80301                 https://www.nwra.com/
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux