From bbe9275e38539c718ee2a34d179737ef32b41c34 Mon Sep 17 00:00:00 2001 From: Evgeny Mankov Date: Wed, 15 May 2019 20:05:56 +0300 Subject: [PATCH] [HIPIFY][fix][#1109] Do not preserve extern __shared__ for IncompleteArrayType + Update tests accordingly [ROCm/clr commit: bf651201560918f1b5a55f7e8648cb36418406df] --- projects/clr/hipamd/hipify-clang/src/HipifyAction.cpp | 2 +- .../hipify-clang/unit_tests/samples/dynamic_shared_memory.cu | 1 + .../hipify-clang/unit_tests/samples/static_shared_memory.cu | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/projects/clr/hipamd/hipify-clang/src/HipifyAction.cpp b/projects/clr/hipamd/hipify-clang/src/HipifyAction.cpp index baa66e064c..5ea83c8376 100644 --- a/projects/clr/hipamd/hipify-clang/src/HipifyAction.cpp +++ b/projects/clr/hipamd/hipify-clang/src/HipifyAction.cpp @@ -352,7 +352,7 @@ bool HipifyAction::cudaSharedIncompleteArrayVar(const clang::ast_matchers::Match } if (!typeName.empty()) { - clang::SourceLocation slStart = llcompat::getBeginLoc(sharedVar->getTypeSourceInfo()->getTypeLoc()); + clang::SourceLocation slStart = sharedVar->getOuterLocStart(); clang::SourceLocation slEnd = llcompat::getEndLoc(sharedVar->getTypeSourceInfo()->getTypeLoc()); clang::SourceManager* SM = Result.SourceManager; size_t repLength = SM->getCharacterData(slEnd) - SM->getCharacterData(slStart) + 1; diff --git a/projects/clr/hipamd/tests/hipify-clang/unit_tests/samples/dynamic_shared_memory.cu b/projects/clr/hipamd/tests/hipify-clang/unit_tests/samples/dynamic_shared_memory.cu index 9e00a9b8e3..7bdd6cafbe 100644 --- a/projects/clr/hipamd/tests/hipify-clang/unit_tests/samples/dynamic_shared_memory.cu +++ b/projects/clr/hipamd/tests/hipify-clang/unit_tests/samples/dynamic_shared_memory.cu @@ -9,6 +9,7 @@ __global__ void dynamicReverse(int *d, int n) { // Dynamic shared memory + // CHECK-NOT: extern __shared__ // CHECK: HIP_DYNAMIC_SHARED(int, s); extern __shared__ int s[]; int t = threadIdx.x; diff --git a/projects/clr/hipamd/tests/hipify-clang/unit_tests/samples/static_shared_memory.cu b/projects/clr/hipamd/tests/hipify-clang/unit_tests/samples/static_shared_memory.cu index f53932bf74..e8108ead3b 100644 --- a/projects/clr/hipamd/tests/hipify-clang/unit_tests/samples/static_shared_memory.cu +++ b/projects/clr/hipamd/tests/hipify-clang/unit_tests/samples/static_shared_memory.cu @@ -8,6 +8,8 @@ __global__ void staticReverse(int *d, int n) { + // CHECK-NOT: HIP_DYNAMIC_SHARED(int, s); + // CHECK: __shared__ int s[64]; __shared__ int s[64]; int t = threadIdx.x; int tr = n-t-1;