EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: osiWireFormat.h problems
From: Eric Norum <[email protected]>
To: Jeff Hill <[email protected]>
Cc: Core talk list <[email protected]>
Date: Mon, 4 Dec 2006 09:53:05 -0600
With Andrew's assistance I made the following change to osiWireFormatl.h:
Index: src/libCom/osi/osiWireFormat.h
===================================================================
RCS file: /net/phoebus/epicsmgr/cvsroot/epics/base/src/libCom/osi/ osiWireFormat.h,v
retrieving revision 1.1.2.1
diff -u -r1.1.2.1 osiWireFormat.h
--- src/libCom/osi/osiWireFormat.h 30 Nov 2006 22:03:39 -0000 1.1.2.1
+++ src/libCom/osi/osiWireFormat.h      4 Dec 2006 15:36:57 -0000
@@ -141,12 +141,24 @@
};
template <>
+union WireAlias < epicsUInt16 > {
+    epicsUInt16 _u;
+    epicsInt16 _o;
+};
+
+template <>
union WireAlias < epicsInt32 > {
     epicsUInt32 _u;
     epicsInt32 _o;
};
template <>
+union WireAlias < epicsUInt32 > {
+    epicsUInt32 _u;
+    epicsInt32 _o;
+};
+
+template <>
union WireAlias < epicsFloat32 > {
     epicsUInt32 _u;
     epicsFloat32 _o;



make -C O.RTEMS-uC5282 -f ../Makefile TOP=../../.. T_A=RTEMS-uC5282 install /usr/local/rtems/rtems-4.7/bin/m68k-rtems4.7-g++ -B/usr/local/rtems/ rtems-4.7/m68k-rtems4.7/uC5282/lib/ -specs bsp_specs -qrtems -c - m528x -DUNIX -ansi -O4 -g -g -Wall - DMY_DO_BOOTP=NULL - DRTEMS_NETWORK_CONFIG_DNS_DOMAINNAME=aps.anl.gov - DRTEMS_NETWORK_CONFIG_DNS_DOMAINNAME=aps.anl.gov -I. -I.. -I../../../ include/os/RTEMS -I../../../include ../cac.cpp ../nciu.h:124: warning: 'class privateInterfaceForIO' has virtual functions but non-virtual destructor ../comBuf.h:47: warning: 'class wireSendAdapter' has virtual functions but non-virtual destructor ../comBuf.h:66: warning: 'class wireRecvAdapter' has virtual functions but non-virtual destructor ../cac.h:60: warning: 'class cacRecycle' has virtual functions but non-virtual destructor ../../../include/osiWireFormat.h: In function 'void AlignedWireGet (const T&, T&) [with T = double]': ../../../include/osiWireFormat.h:88: instantiated from 'AlignedWireRef<T>::operator T() const [with T = double]'
../comQueRecv.h:108:   instantiated from here
../../../include/osiWireFormat.h:242: error: 'tmp' has incomplete type
../../../include/osiWireFormat.h:242: error: storage size of 'tmp' isn't known
make[3]: *** [cac.o] Error 1



1) What to do now for doubles?
2) The signed/unsigned unions in osiWireFormat.h to avoid overzealous aliasing optimizations are not necessary since the the strict aliasing rules say that types which differ only in signed-ness can not be assumed to be non-overlapping.

--
Eric Norum <[email protected]>
Advanced Photon Source
Argonne National Laboratory
(630) 252-4793



Replies:
RE: osiWireFormat.h problems Jeff Hill
RE: osiWireFormat.h problems Jeff Hill
Re: osiWireFormat.h problems Ralph Lange

Navigate by Date:
Prev: Possible delay to R3.14.9-pre2 Andrew Johnson
Next: RE: osiWireFormat.h problems Jeff Hill
Index: 2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: More strict aliasing Eric Norum
Next: RE: osiWireFormat.h problems Jeff Hill
Index: 2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Feb 2012 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·