Skip to content

Commit 9bfb51e

Browse files
committed
Merge branch 'sotoc-issue-23' into 'aurora_offloading_prototype'
Fixing issue llvm#23 Closes llvm#23 See merge request NEC-RWTH-Projects/clang!18
2 parents 22589e0 + d742497 commit 9bfb51e

File tree

4 files changed

+6
-15
lines changed

4 files changed

+6
-15
lines changed

clang/tools/sotoc/src/DeclResolver.cpp

+3-1
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ void DeclResolver::addDecl(clang::Decl *D) {
9898

9999
// This Decl may have other Decls that is depends on.
100100
// Add Decl if we haven't already
101-
findDependDecls(D, UnresolvedDecls);
101+
findDependDecls(ResolveDecl, UnresolvedDecls);
102102
}
103103
UnresolvedDecls.erase(ResolveDeclIter);
104104
}
@@ -111,6 +111,7 @@ void DeclResolver::findDependDecls(
111111
// compile.
112112
runOwnVisitor(D, [&D, &UnresolvedDecls, this](clang::Decl *Dep) {
113113
if (!this->AllDecls.count(Dep)) {
114+
DEBUGPDECL(Dep, "Found referred decl: ");
114115
UnresolvedDecls.insert(Dep);
115116
}
116117
// Fix for enums. TODO: find a better way to avoid duplicates
@@ -181,6 +182,7 @@ void TypeDeclResolver::runOwnVisitor(clang::Decl *D,
181182

182183
void FunctionDeclResolver::runOwnVisitor(
183184
clang::Decl *D, std::function<void(clang::Decl *Dep)> Fn) {
185+
DEBUGPDECL(D, "Searching for referred decls in function " );
184186
DiscoverFunctionsInDeclVisitor Visitor(Fn);
185187
Visitor.TraverseDecl(D);
186188
}

clang/tools/sotoc/src/TargetCode.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ bool TargetCode::addCodeFragment(std::shared_ptr<TargetCodeFragment> Frag,
3737
if ((SM.isPointWithin(Frag->getRealRange().getBegin(),
3838
F->getRealRange().getBegin(),
3939
F->getRealRange().getEnd()) &&
40-
Frag->getRealRange().getBegin() != F->getRealRange().getBegin()) ||
40+
Frag->getRealRange().getBegin() != F->getRealRange().getBegin()) &&
4141
SM.isPointWithin(Frag->getRealRange().getEnd(),
4242
F->getRealRange().getBegin(),
4343
F->getRealRange().getEnd())) {

clang/tools/sotoc/src/Visitors.cpp

+1-12
Original file line numberDiff line numberDiff line change
@@ -245,23 +245,12 @@ bool FindTargetCodeVisitor::VisitDecl(clang::Decl *D) {
245245
// search Decl attributes for 'omp declare target' attr
246246
for (auto &attr : D->attrs()) {
247247
if (attr->getKind() == clang::attr::OMPDeclareTargetDecl) {
248-
auto SystemHeader = getSystemHeaderForDecl(D);
249-
if (SystemHeader.hasValue()) {
250-
TargetCodeInfo.addHeader(SystemHeader.getValue());
251-
return true;
252-
}
253-
254-
auto TCD = std::make_shared<TargetCodeDecl>(D);
255-
TargetCodeInfo.addCodeFragment(TCD);
256-
DiscoverTypeVisitor.TraverseDecl(D);
248+
Functions.addDecl(D);
257249
if (FD) {
258250
if (FD->hasBody() && !FD->doesThisDeclarationHaveABody()) {
259251
FuncDeclWithoutBody.insert(FD->getNameAsString());
260252
}
261253
}
262-
if (!D->hasBody() || (FD && !FD->doesThisDeclarationHaveABody())) {
263-
TCD->NeedsSemicolon = true;
264-
}
265254
return true;
266255
}
267256
}

clang/tools/sotoc/test/declare_target/referred_function.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
1+
// RUN: %sotoc-transform-compile
22
typedef char data_t;
33
typedef int calc_t;
44

0 commit comments

Comments
 (0)