https://github.com/zmodem commented:

> In commit 
> https://github.com/llvm/llvm-project/commit/0a20f5417c9d241f4774a49da6c7ca8123686671,
>  "Better codegen support for DLL attributes being dropped after the first 
> declaration (PR20792)", code was added to enable "dropping" of DLL attributes.

Wow, how is that 10 years ago already?

I'm not sure this is the right place for the fix though. Note that even though 
my patch added handling for dropping dllexport, we still do export `f` in this 
case:

```
__declspec(dllexport) int f(int x);
int user(int x) {
  return f(x);
}
int f(int x) { return 1; }
```

Because `f` is still dllexport at the AST level, as it should. That's handled 
by the code which deals with redeclarations.

I suspect that's where we should fix your case also: we should figure out why 
`s::f<true>()` isn't(?) marked dllexport in the AST.

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

Reply via email to