Fix diagnostics on MacOS and duplicated bases.

This commit is contained in:
Chao Shen 2018-07-27 11:08:22 +08:00 committed by Fangrui Song
parent bde0e6d837
commit 8eeb1bb3af
3 changed files with 5 additions and 3 deletions

View File

@ -87,7 +87,7 @@ OUTPUT:
"kind": 3, "kind": 3,
"declarations": ["3:20-3:23|17805385787823406700|2|1025"], "declarations": ["3:20-3:23|17805385787823406700|2|1025"],
"alias_of": 0, "alias_of": 0,
"bases": [17805385787823406700, 17805385787823406700, 17805385787823406700, 17805385787823406700], "bases": [17805385787823406700],
"derived": [], "derived": [],
"types": [], "types": [],
"funcs": [], "funcs": [],
@ -105,7 +105,7 @@ OUTPUT:
"kind": 3, "kind": 3,
"declarations": ["2:15-2:18|926793467007732869|2|1025"], "declarations": ["2:15-2:18|926793467007732869|2|1025"],
"alias_of": 0, "alias_of": 0,
"bases": [926793467007732869, 926793467007732869, 926793467007732869, 926793467007732869], "bases": [926793467007732869],
"derived": [14450849931009540802], "derived": [14450849931009540802],
"types": [14450849931009540802], "types": [14450849931009540802],
"funcs": [], "funcs": [],

View File

@ -85,7 +85,8 @@ std::unique_ptr<ClangTranslationUnit> ClangTranslationUnit::Create(
Unit.reset(ASTUnit::LoadFromCommandLine( Unit.reset(ASTUnit::LoadFromCommandLine(
Args.data(), Args.data() + Args.size(), Args.data(), Args.data() + Args.size(),
/*PCHContainerOpts=*/ret->PCHCO, Diags, /*PCHContainerOpts=*/ret->PCHCO, Diags,
/*ResourceFilePath=*/"", /*OnlyLocalDecls=*/false, /*ResourceFilePath=*/g_config->clang.resourceDir,
/*OnlyLocalDecls=*/false,
/*CaptureDiagnostics=*/diagnostic, Remapped, /*CaptureDiagnostics=*/diagnostic, Remapped,
/*RemappedFilesKeepOriginalName=*/true, 1, /*RemappedFilesKeepOriginalName=*/true, 1,
diagnostic ? TU_Complete : TU_Prefix, diagnostic ? TU_Complete : TU_Prefix,

View File

@ -1208,6 +1208,7 @@ std::vector<std::unique_ptr<IndexFile>> Index(
Uniquify(it.second.derived); Uniquify(it.second.derived);
Uniquify(it.second.uses); Uniquify(it.second.uses);
// e.g. declaration + out-of-line definition // e.g. declaration + out-of-line definition
Uniquify(it.second.def.bases);
Uniquify(it.second.def.funcs); Uniquify(it.second.def.funcs);
} }
for (auto& it : entry->usr2var) for (auto& it : entry->usr2var)