Skip to content

Commit 3a394d9

Browse files
authored
[flang-rt] For variant, add abort entry for OMP_OFFLOAD_BUILD (llvm#3263)
2 parents 457e87f + 4edb159 commit 3a394d9

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

flang-rt/lib/runtime/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ find_package(Backtrace)
1212
set(HAVE_BACKTRACE ${Backtrace_FOUND})
1313
set(BACKTRACE_HEADER ${Backtrace_HEADER})
1414

15+
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
16+
1517
# List of files that are buildable for all devices.
1618
set(supported_sources
1719
${FLANG_SOURCE_DIR}/lib/Decimal/binary-to-decimal.cpp

flang-rt/lib/runtime/assign.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
//===----------------------------------------------------------------------===//
88

99
#include "flang/Runtime/assign.h"
10+
#include "flang/Runtime/stop.h"
1011
#include "flang-rt/runtime/assign-impl.h"
1112
#include "flang-rt/runtime/derived.h"
1213
#include "flang-rt/runtime/descriptor.h"
@@ -834,6 +835,17 @@ void RTDEF(AssignPolymorphic)(Descriptor &to, const Descriptor &from,
834835
PolymorphicLHS);
835836
}
836837

838+
#if defined(OMP_OFFLOAD_BUILD)
839+
// To support a recently added use of variant in the OpenMP offload build,
840+
// added an abort wrapper which calls the flang-rt FortranAAbort.
841+
// Avoids the following linker error:
842+
// ld.lld: error: undefined symbol: abort
843+
// >>> referenced by /tmp/device_aassign.amdgcn.gfx90a-34a7ed.img.lto.o:(std::__throw_bad_variant_access(char const*))
844+
extern "C" void abort(void) {
845+
RTNAME(Abort)();
846+
}
847+
#endif
848+
837849
RT_EXT_API_GROUP_END
838850
} // extern "C"
839851
} // namespace Fortran::runtime

0 commit comments

Comments
 (0)