CXTranslationUnit ClangUtils::LoadTU(CXIndex index, const ClangCacheEntry& entry) { if(entry.IsOk() == false) return NULL; return clang_createTranslationUnit(index, entry.fileTU.mb_str(wxConvUTF8).data()); }
static unsigned CreateTranslationUnit(CXIndex Idx, const char *file, CXTranslationUnit *TU) { *TU = clang_createTranslationUnit(Idx, file); if (!TU) { fprintf(stderr, "Unable to load translation unit from '%s'!\n", file); return 0; } return 1; }
/** * This constructor can be used to load previously translated and saved unit: * the typical way is to load a PCH files */ TranslationUnit::TranslationUnit( CXIndex index , const KUrl& filename_url ) : m_filename(filename_url.toLocalFile().toUtf8()) , m_unit(clang_createTranslationUnit(index, m_filename.constData())) { if (!m_unit) throw Exception::LoadFailure( i18nc("@item:intext", "Fail to load a preparsed file").toAscii().constData() ); }
int main(int argc, char* argv[]) { CXString version = clang_getClangVersion(); printf("%s\n", clang_getCString(version)); clang_disposeString(version); CXIndex index = clang_createIndex(1, 1); CXTranslationUnit tu = clang_createTranslationUnit(index, argv[1]); if (tu) { clang_visitChildren(clang_getTranslationUnitCursor(tu), visitor, argv[2]); clang_disposeTranslationUnit(tu); } clang_disposeIndex(index); return 0; }
TEST(libclang, clang_createTranslationUnit_InvalidArgs) { EXPECT_EQ(0, clang_createTranslationUnit(0, 0)); }
TEST(libclang, clang_createTranslationUnit_InvalidArgs) { EXPECT_EQ(nullptr, clang_createTranslationUnit(nullptr, nullptr)); }