X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FcreaRTTI.cxx;h=0f682ed12d208143eba7d64506b25dd2fe1d3232;hb=ad89139d4d59c2ea606d45bcce1784ef5c7b187f;hp=73b781cd19347e836d31348493429c884dfc8d6c;hpb=596488a9529ffbedea2e6693e32e9b19f042b7e7;p=crea.git diff --git a/src/creaRTTI.cxx b/src/creaRTTI.cxx index 73b781c..0f682ed 100644 --- a/src/creaRTTI.cxx +++ b/src/creaRTTI.cxx @@ -1,7 +1,33 @@ +/* +# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Santé© +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# Previous Authors : Laurent Guigues, Jean-Pierre Roux +# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ +*/ + #include "creaRTTI.h" #include "creaMessageManager.h" - namespace crea { @@ -36,44 +62,44 @@ namespace crea << " to " << TypeName(target_type) << std::endl); void* target_pointer = 0; -#if __GNUC__ > 3 || \ - (__GNUC__ == 3 && (__GNUC_MINOR__ > 1 || \ - (__GNUC_MINOR__ == 1 && \ - __GNUC_PATCHLEVEL__ > 0))) - - const abi::__class_type_info* targetTI = - (const abi::__class_type_info *)( &(target_type)); + + +#if __APPLE__ + // //EED2018-08-28 Be careful #include is not complete (CommandLine mechanisme Xcode) + printf("EED creaRTTI run_time_up_or_down_cast 2018-08-28 Warnning !!!! Apple cast missing __do_upcast "); + return source_pointer; +#else + #if __GNUC__ > 3 || \ + (__GNUC__ == 3 && (__GNUC_MINOR__ > 1 || \ + (__GNUC_MINOR__ == 1 && \ + __GNUC_PATCHLEVEL__ > 0))) + + const abi::__class_type_info* targetTI = (const abi::__class_type_info *)( &(target_type)); creaDebugMessage("info",7," * source = "<