mjklemm wrote:

> I see. So Fortran and C interoperability of F2003/F2008 is not supported yet 
> in Flang? 

It's rather untested and I'm working hard to get it fixed, so that we have 
well-defined behavior that is similar to other Fortran compilers like ifx and 
gfortran.

> Those ~100ish regression test cases we have were passing before this PR 
> though. Unfortunately, those test cases are not made public available yet. I 
> think I can copy the source code of one test case here, but it needs to be 
> run manually. Please let me know if that is desired to help debug the reason 
> of the regression.

Please share as many of these reproducers as you can, so that I can debug the 
regression and fix it.

```
ld.lld: error: duplicate symbol: main
>>> defined at ./bind_c09i.c
>>>            bind_c09i.o:(.The_Code)
>>> defined at Fortran_main.c
>>>            Fortran_main.c.o:(.text.main+0x0) in archive ./libFortran_main.a
flang-new: error: linker command failed with exit code 1 (use -v to see 
invocation)
```

This error message is a strong indication of potentially two things:

- Both Fortran and C/C++ provide the `main` entry point (Fortran via 
`Fortran_main.a` and C/C++ via a `main` function).  Since this led to some 
weird behavior in the past, this situation now leads to an error message.
- On C/C++ provides the `main` function.  In this case, please pass 
`-fno-fortran-main` when using `flang-new` link command line.  This will remove 
the `main` symbol coming from `Fortran_main.a`, because it's not needed.

https://github.com/llvm/llvm-project/pull/73124
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to