aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CoverageMappingGen.cpp
diff options
context:
space:
mode:
authorPete Steinfeld <47540744+psteinfeld@users.noreply.github.com>2024-02-26 14:29:49 -0800
committerGitHub <noreply@github.com>2024-02-26 14:29:49 -0800
commit796d26a37d70374e41766df659700a826dc62e34 (patch)
treec3f48b82d0fd545311e743218594966e52fc14c5 /clang/lib/CodeGen/CoverageMappingGen.cpp
parente87724560f5f155e662cbdda17409361b98d42d6 (diff)
downloadllvm-796d26a37d70374e41766df659700a826dc62e34.zip
llvm-796d26a37d70374e41766df659700a826dc62e34.tar.gz
llvm-796d26a37d70374e41766df659700a826dc62e34.tar.bz2
[flang] Fix ISO_Fortran_binding.h to work better with C++ code (#82556)
[flang] Fix ISO_Fortran_binding.h to work better with C++ code This stems from working on LANL's "dopey" project -- https://github.com/lanl/dopey. That project contains C++ code which includes the header file "ISO_Fortran_binding.h". The dopey code wraps that include with an 'extern "C"' clause since the standard (18.5.1, paragraph 1) says that the file" shall contain C structure definitions, typedef declarations, ...". But the clang++ compiler emits error messages objecting to the fact that ISO_Fortran_binding.h contains templates. This change fixes that by preceding the problematic code in ISO_Fortran_binding.h with language linkage clauses that specify that they contain C++ code rather than C code. In the accompanying test, I needed to account for the fact that some people build the compiler by doing a `make check-flang`. In this case, the clang compiler which is required by the test will not be built. Here's an example of a C++ program that shows the problem: ``` extern "C" { #include "ISO_Fortran_binding.h" } int main() { return 0; } ```
Diffstat (limited to 'clang/lib/CodeGen/CoverageMappingGen.cpp')
0 files changed, 0 insertions, 0 deletions