diff --git a/clang/lib/Tooling/Inclusions/Stdlib/StdSpecialSymbolMap.inc b/clang/lib/Tooling/Inclusions/Stdlib/StdSpecialSymbolMap.inc --- a/clang/lib/Tooling/Inclusions/Stdlib/StdSpecialSymbolMap.inc +++ b/clang/lib/Tooling/Inclusions/Stdlib/StdSpecialSymbolMap.inc @@ -242,6 +242,107 @@ SYMBOL(abs, None, ) SYMBOL(abs, None, ) +// Only add headers for the generic atomic template. +// Ignore variants (std::weak_ptr, std::shared_ptr). +SYMBOL(atomic, std::, ) +// atomic_* family symbols. is for C compatibility. +SYMBOL(atomic_bool, std::, ) +SYMBOL(atomic_bool, None, ) +SYMBOL(atomic_char, std::, ) +SYMBOL(atomic_char, None, ) +SYMBOL(atomic_char16_t, std::, ) +SYMBOL(atomic_char16_t, None, ) +SYMBOL(atomic_char32_t, std::, ) +SYMBOL(atomic_char32_t, None, ) +SYMBOL(atomic_char8_t, std::, ) +SYMBOL(atomic_char8_t, None, ) +SYMBOL(atomic_int, std::, ) +SYMBOL(atomic_int, None, ) +SYMBOL(atomic_int16_t, std::, ) +SYMBOL(atomic_int16_t, None, ) +SYMBOL(atomic_int32_t, std::, ) +SYMBOL(atomic_int32_t, None, ) +SYMBOL(atomic_int64_t, std::, ) +SYMBOL(atomic_int64_t, None, ) +SYMBOL(atomic_int8_t, std::, ) +SYMBOL(atomic_int8_t, None, ) +SYMBOL(atomic_int_fast16_t, std::, ) +SYMBOL(atomic_int_fast16_t, None, ) +SYMBOL(atomic_int_fast32_t, std::, ) +SYMBOL(atomic_int_fast32_t, None, ) +SYMBOL(atomic_int_fast64_t, std::, ) +SYMBOL(atomic_int_fast64_t, None, ) +SYMBOL(atomic_int_fast8_t, std::, ) +SYMBOL(atomic_int_fast8_t, None, ) +SYMBOL(atomic_int_least16_t, std::, ) +SYMBOL(atomic_int_least16_t, None, ) +SYMBOL(atomic_int_least32_t, std::, ) +SYMBOL(atomic_int_least32_t, None, ) +SYMBOL(atomic_int_least64_t, std::, ) +SYMBOL(atomic_int_least64_t, None, ) +SYMBOL(atomic_int_least8_t, std::, ) +SYMBOL(atomic_int_least8_t, None, ) +SYMBOL(atomic_intmax_t, std::, ) +SYMBOL(atomic_intmax_t, None, ) +SYMBOL(atomic_intptr_t, std::, ) +SYMBOL(atomic_intptr_t, None, ) +SYMBOL(atomic_llong, std::, ) +SYMBOL(atomic_llong, None, ) +SYMBOL(atomic_long, std::, ) +SYMBOL(atomic_long, None, ) +SYMBOL(atomic_ptrdiff_t, std::, ) +SYMBOL(atomic_ptrdiff_t, None, ) +SYMBOL(atomic_schar, std::, ) +SYMBOL(atomic_schar, None, ) +SYMBOL(atomic_short, std::, ) +SYMBOL(atomic_short, None, ) +SYMBOL(atomic_signed_lock_free, std::, ) +SYMBOL(atomic_signed_lock_free, None, ) +SYMBOL(atomic_size_t, std::, ) +SYMBOL(atomic_size_t, None, ) +SYMBOL(atomic_uchar, std::, ) +SYMBOL(atomic_uchar, None, ) +SYMBOL(atomic_uint, std::, ) +SYMBOL(atomic_uint, None, ) +SYMBOL(atomic_uint16_t, std::, ) +SYMBOL(atomic_uint16_t, None, ) +SYMBOL(atomic_uint32_t, std::, ) +SYMBOL(atomic_uint32_t, None, ) +SYMBOL(atomic_uint64_t, std::, ) +SYMBOL(atomic_uint64_t, None, ) +SYMBOL(atomic_uint8_t, std::, ) +SYMBOL(atomic_uint8_t, None, ) +SYMBOL(atomic_uint_fast16_t, std::, ) +SYMBOL(atomic_uint_fast16_t, None, ) +SYMBOL(atomic_uint_fast32_t, std::, ) +SYMBOL(atomic_uint_fast32_t, None, ) +SYMBOL(atomic_uint_fast64_t, std::, ) +SYMBOL(atomic_uint_fast64_t, None, ) +SYMBOL(atomic_uint_fast8_t, std::, ) +SYMBOL(atomic_uint_fast8_t, None, ) +SYMBOL(atomic_uint_least16_t, std::, ) +SYMBOL(atomic_uint_least16_t, None, ) +SYMBOL(atomic_uint_least32_t, std::, ) +SYMBOL(atomic_uint_least32_t, None, ) +SYMBOL(atomic_uint_least64_t, std::, ) +SYMBOL(atomic_uint_least64_t, None, ) +SYMBOL(atomic_uint_least8_t, std::, ) +SYMBOL(atomic_uint_least8_t, None, ) +SYMBOL(atomic_uintmax_t, std::, ) +SYMBOL(atomic_uintmax_t, None, ) +SYMBOL(atomic_uintptr_t, std::, ) +SYMBOL(atomic_uintptr_t, None, ) +SYMBOL(atomic_ullong, std::, ) +SYMBOL(atomic_ullong, None, ) +SYMBOL(atomic_ulong, std::, ) +SYMBOL(atomic_ulong, None, ) +SYMBOL(atomic_unsigned_lock_free, std::, ) +SYMBOL(atomic_unsigned_lock_free, None, ) +SYMBOL(atomic_ushort, std::, ) +SYMBOL(atomic_ushort, None, ) +SYMBOL(atomic_wchar_t, std::, ) +SYMBOL(atomic_wchar_t, None, ) + // std::get has a few variants for different types (tuple, array, pair etc) // which is tricky to disambiguate without type information. // Don't set any header for it, as it comes with the type header.