I wrote a long and nice description about this.
So screw it. One of the updates is here to get rid of these sort of warnings while compiling Athena with DPC++:
In file included from /data/projects/athena-gpu/athena/Control/StoreGate/src/ActiveStoreSvc.cxx:6:
In file included from /data/projects/athena-gpu/athena/Control/StoreGate/StoreGate/StoreGateSvc.h:22:
In file included from /data/projects/athena-gpu/athena/Control/StoreGate/StoreGate/tools/SGImplSvc.h:54:
In file included from /data/projects/athena-gpu/athena/Control/StoreGate/StoreGate/SGIterator.h:18:
In file included from /data/projects/athena-gpu/athena/Control/SGTools/SGTools/DataProxy.h:431:
In file included from /data/projects/athena-gpu/athena/Control/SGTools/SGTools/DataProxy.icc:16:
In file included from /data/projects/athena-gpu/athena/Control/AthenaKernel/AthenaKernel/StorableConversions.h:15:
In file included from /data/projects/athena-gpu/athena/Control/AthenaKernel/AthenaKernel/DataBucket.h:129:
/data/projects/athena-gpu/athena/Control/AthenaKernel/AthenaKernel/DataBucket.icc:186:18: warning: ISO C++ requires the name after '::~' to be found in the same scope as the name before '::~' [-Wdtor-name]
SG::DataBucket<T>::~DataBucket()
~~~~~~~~~~~~~~~~~^~
::DataBucket
1 warning generated.
The other update is necessary to make DPC++ not freak out about multi-versioned functions. (See: https://github.com/intel/llvm/issues/2128)
Pinging @ssnyder.