Не могу поймать исключение после создания CXIndex

Почему эта программа

#include <clang-c/Index.h>
#include <exception>
#include <iostream>

int main() {
    try {
        throw std::exception("threw");
    } catch (const std::exception& e) {
        std::cout << e.what() << "\n";
    }
    CXIndex idx = clang_createIndex(0, 0);
    clang_disposeIndex(idx);
    return 0;
}

вести себя как положено, но этот

#include <clang-c/Index.h>
#include <exception>
#include <iostream>

int main() {
    CXIndex idx = clang_createIndex(0, 0);
    clang_disposeIndex(idx);
    try {
        throw std::exception("threw");
    } catch (const std::exception& e) {
        std::cout << e.what() << "\n";
    }
    return 0;
}

аварии?

В более общем смысле, что может делать функция, которая не позволяет перехватить последующие исключения?

Использование: visual C++ 10.0 (пробовал разные флаги /EH), clang 3.4 (собран с тем же)

0 ответов

Другие вопросы по тегам