r201657 - libclang: ensure clang_createTranslationUnit2 always initializes *TU
Dmitri Gribenko
gribozavr at gmail.com
Wed Feb 19 02:24:00 PST 2014
Author: gribozavr
Date: Wed Feb 19 04:24:00 2014
New Revision: 201657
URL: http://llvm.org/viewvc/llvm-project?rev=201657&view=rev
Log:
libclang: ensure clang_createTranslationUnit2 always initializes *TU
Modified:
cfe/trunk/tools/libclang/CIndex.cpp
cfe/trunk/unittests/libclang/LibclangTest.cpp
Modified: cfe/trunk/tools/libclang/CIndex.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CIndex.cpp?rev=201657&r1=201656&r2=201657&view=diff
==============================================================================
--- cfe/trunk/tools/libclang/CIndex.cpp (original)
+++ cfe/trunk/tools/libclang/CIndex.cpp Wed Feb 19 04:24:00 2014
@@ -2612,7 +2612,7 @@ void clang_toggleCrashRecovery(unsigned
CXTranslationUnit clang_createTranslationUnit(CXIndex CIdx,
const char *ast_filename) {
- CXTranslationUnit TU = NULL;
+ CXTranslationUnit TU;
enum CXErrorCode Result =
clang_createTranslationUnit2(CIdx, ast_filename, &TU);
(void)Result;
@@ -2624,6 +2624,9 @@ CXTranslationUnit clang_createTranslatio
enum CXErrorCode clang_createTranslationUnit2(CXIndex CIdx,
const char *ast_filename,
CXTranslationUnit *out_TU) {
+ if (out_TU)
+ *out_TU = NULL;
+
if (!CIdx || !ast_filename || !out_TU)
return CXError_InvalidArguments;
Modified: cfe/trunk/unittests/libclang/LibclangTest.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/libclang/LibclangTest.cpp?rev=201657&r1=201656&r2=201657&view=diff
==============================================================================
--- cfe/trunk/unittests/libclang/LibclangTest.cpp (original)
+++ cfe/trunk/unittests/libclang/LibclangTest.cpp Wed Feb 19 04:24:00 2014
@@ -10,8 +10,21 @@
#include "clang-c/Index.h"
#include "gtest/gtest.h"
-TEST(libclang, TestInvalidArgs) {
+TEST(libclang, clang_parseTranslationUnit2_InvalidArgs) {
EXPECT_EQ(CXError_InvalidArguments,
clang_parseTranslationUnit2(0, 0, 0, 0, 0, 0, 0, 0));
}
+TEST(libclang, clang_createTranslationUnit_InvalidArgs) {
+ EXPECT_EQ(0, clang_createTranslationUnit(0, 0));
+}
+
+TEST(libclang, clang_createTranslationUnit2_InvalidArgs) {
+ EXPECT_EQ(CXError_InvalidArguments,
+ clang_createTranslationUnit2(0, 0, 0));
+
+ CXTranslationUnit TU = reinterpret_cast<CXTranslationUnit>(1);
+ EXPECT_EQ(CXError_InvalidArguments,
+ clang_createTranslationUnit2(0, 0, &TU));
+ EXPECT_EQ(0, TU);
+}
More information about the cfe-commits
mailing list