<commit_before>#ifndef STXXL_MCSTL_INTEL_COMPATIBILITY_HEADER_INCLUDED
#define STXXL_MCSTL_INTEL_COMPATIBILITY_HEADER_INCLUDED
/***************************************************************************
 *   Copyright (C) 2007 by <NAME>  <<EMAIL>>          *
 *   Copyright (C) 2008 by <NAME>  <<EMAIL>>     *
 *   Distributed under the Boost Software License, Version 1.0.            *
 *   (See accompanying file LICENSE_1_0.txt or copy at                     *
 *   http://www.boost.org/LICENSE_1_0.txt)                                 *
 *   Part of the STXXL and MCSTL.                                          *
 ***************************************************************************/

/** @file intel_compatibility.h
 *  @brief Intel compiler compatibility work-around. */

#if defined(__ICC) && (__ICC < 1100)

/** @brief Fake function that will cause linking failure if used. */
template <typename T1, typename T2>
T1 __in_icc_there_is_no__sync_fetch_and_add(T1 *, T2);

#if 0
// replacing the overloaded builtin function 'T __sync_fetch_and_add(T*, T)'
// with 'int32 _InterlockedExchangeAdd(int32, int32)' is not a good idea
#define __sync_fetch_and_add(ptr,addend) _InterlockedExchangeAdd(const_cast<void*>(reinterpret_cast<volatile void*>(ptr)), addend)
#endif

/** @brief Replacement of unknown atomic builtin function.
 *         Should work as long as it isn't instantiated. */
#undef __sync_fetch_and_add
#define __sync_fetch_and_add __in_icc_there_is_no__sync_fetch_and_add

#endif

#endif // !STXXL_MCSTL_INTEL_COMPATIBILITY_HEADER_INCLUDED<commit_msg>move the __aligned__ ICPC workaround to intel_compatibility.h<commit_after>#ifndef STXXL_MCSTL_INTEL_COMPATIBILITY_HEADER_INCLUDED
#define STXXL_MCSTL_INTEL_COMPATIBILITY_HEADER_INCLUDED
/***************************************************************************
 *   Copyright (C) 2007 by <NAME>  <<EMAIL>>          *
 *   Copyright (C) 2008 by <NAME>  <<EMAIL>>     *
 *   Distributed under the Boost Software License, Version 1.0.            *
 *   (See accompanying file LICENSE_1_0.txt or copy at                     *
 *   http://www.boost.org/LICENSE_1_0.txt)                                 *
 *   Part of the STXXL and MCSTL.                                          *
 ***************************************************************************/

/** @file intel_compatibility.h
 *  @brief Intel compiler compatibility work-around. */

#if defined(__ICC) && (__ICC < 1100)

/** @brief Fake function that will cause linking failure if used. */
template <typename T1, typename T2>
T1 __in_icc_there_is_no__sync_fetch_and_add(T1 *, T2);

#if 0
// replacing the overloaded builtin function 'T __sync_fetch_and_add(T*, T)'
// with 'int32 _InterlockedExchangeAdd(int32, int32)' is not a good idea
#define __sync_fetch_and_add(ptr,addend) _InterlockedExchangeAdd(const_cast<void*>(reinterpret_cast<volatile void*>(ptr)), addend)
#endif

/** @brief Replacement of unknown atomic builtin function.
 *         Should work as long as it isn't instantiated. */
#undef __sync_fetch_and_add
#define __sync_fetch_and_add __in_icc_there_is_no__sync_fetch_and_add

#endif

#if defined(__ICC) && (__ICC == 1200) \
    && defined(__GNUG__) \
    && ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100) == 40300) \
    && defined(__x86_64)

// work around issue 613263 (non-type template parameter not accepted as attribute value)
// http://software.intel.com/en-us/forums/showthread.php?t=65041
#define __aligned__ ignored
#include <tr1/type_traits>
#undef __aligned__

#endif

#endif // !STXXL_MCSTL_INTEL_COMPATIBILITY_HEADER_INCLUDED
{'fraction_non_alphanumeric': 0.1741307371349096, 'fraction_numerical': 0.025869262865090403, 'mean_word_length': 3.8398384925975773, 'pattern_counts': {'":': 0, '<': 24, '<?xml version=': 0, '>': 22, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3811439', 'n_tokens_mistral': 1190, 'n_tokens_neox': 1080, 'n_words': 267}