Сбой конкатенации Xcode 5.1 std :: string на устройствах iOS 5.1 в выпусках сборки

При сборке с последней версией XCode 5.1, iOS SDK 7.1 и LLVM 5.1 с использованием libstdc ++ для стандартной библиотеки C ++ происходит сбой в std :: string присоединять метод только на устройстве iOS 5.1.

Вот пример кода:

class TestClass
{
public:
TestClass()
{
m_string = "string1";
}

void AppendString()
{
m_string += std::string("string2");
std::string newString2 = m_string + "string3";
}

private:
string m_string;
};

Приложение вылетает в AppendString () метод в этой строке:

        std::string newString2 = m_string + "string3";

Если я уберу эту строку m_string += std::string("string2"); перед созданием newString2, код работает нормально.

Вот трассировка стека:

#0  0x34c99fe8 in memcpy$VARIANT$CortexA8 ()
#1  0x3706f95a in std::string::_Rep::_M_clone(std::allocator<char> const&, unsigned long) ()
#2  0x3706fbfa in std::string::reserve(unsigned long) ()
#3  0x3706fdb0 in std::string::append(char const*, unsigned long) ()
#4  0x000c0e5a in std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*) [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/usr/include/c++/4.2.1/bits/basic_string.h:2121
#5  0x000c0e3c in TestClass::AppendString() at /Users/sergei/Documents/2_3/House of Fun/cpp/CasinoSceneManager.cpp:122

Кто-нибудь испытывал такое же крушение? Это происходит только на устройствах с iOS 5.1 и 5.1.1 и только если приложение было скомпилировано с релиз флаг, а не отлаживать.

Спасибо вам за помощь.


Еще одна заметка.
Если я изменю Уровень оптимизации в Нет [-O0] в Генерация кода раздел в настройках проекта, все отлично работает.
Возможно, проблема связана с оптимизацией кода.

1

Решение

Apple выпустила новое семя GM для Xcode 5.1.1. В примечаниях к выпуску говорится, что они исправили пару сбоев:

Исправлено падение скомпилированного кода при таргетинге на iOS 5.1.1. (16485980)!

Исправлено падение скомпилированного кода при использовании ARC и C ++. (16368824)

http://adcdownload.apple.com//Developer_Tools/xcode_5.1.1_gm_seed/release_notes_xcode_5.1.1_gm_seed.pdf

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]