[HIPIFY] [FIX] replacement error: cudaError_t -> hipError_t_t

https://github.com/GPUOpen-ProfessionalCompute-Tools/HIP/issues/71

[Solution]
getUnqualifiedType for enumConstantDecl's type is added, except ordinary enum declarations (w/o typedef).

[ToDo]
Find more appropriate way of distinguishing redefined enum declarations and ordinary ones.


[ROCm/hip commit: 3d88932c8d]
This commit is contained in:
Evgeny Mankov
2017-04-28 21:03:03 +03:00
parent eb68f5d5af
commit 4fe32b302f
@@ -191,7 +191,7 @@ struct cuda2hipMap {
// Error codes and return types
cuda2hipRename["CUresult"] = {"hipError_t", CONV_TYPE, API_DRIVER};
cuda2hipRename["cudaError_enum"] = {"hipError_t", CONV_TYPE, API_DRIVER};
// cuda2hipRename["cudaError_enum"] = {"hipError_t", CONV_TYPE, API_DRIVER};
cuda2hipRename["cudaError_t"] = {"hipError_t", CONV_TYPE, API_RUNTIME};
cuda2hipRename["cudaError"] = {"hipError_t", CONV_TYPE, API_RUNTIME};
@@ -2806,12 +2806,11 @@ private:
bool cudaEnumConstantDecl(const MatchFinder::MatchResult &Result) {
if (const VarDecl *enumConstantDecl = Result.Nodes.getNodeAs<VarDecl>("cudaEnumConstantDecl")) {
StringRef name =
enumConstantDecl->getType()->getAsTagDecl()->getNameAsString();
// anonymous typedef enum
if (name.empty()) {
QualType QT = enumConstantDecl->getType().getUnqualifiedType();
name = QT.getAsString();
StringRef name = enumConstantDecl->getType()->getAsTagDecl()->getNameAsString();
QualType QT = enumConstantDecl->getType().getUnqualifiedType();
StringRef name_unqualified = QT.getAsString();
if ((name_unqualified.find(' ') == StringRef::npos && name.find(' ') == StringRef::npos) || name.empty()) {
name = name_unqualified;
}
SourceLocation sl = enumConstantDecl->getLocStart();
SourceManager *SM = Result.SourceManager;