digitalmars.D.bugs - [Issue 23812] New: ImportC: allow adding function attributes to
- d-bugmail puremagic.com (31/31) Mar 28 2023 https://issues.dlang.org/show_bug.cgi?id=23812
https://issues.dlang.org/show_bug.cgi?id=23812 Issue ID: 23812 Summary: ImportC: allow adding function attributes to imported C functions Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: ImportC Severity: enhancement Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: dkorpel live.nl C functions imported with ImportC currently don't get any function attributes, so they're currently not callable in `nothrow` ` nogc` `pure` ` safe` contexts. nothrow and nogc could be given by default, the only exceptions would be if the imported function has a callback, or if it is actually implemented in D but imported through a C file for some reason. safe is rarer for C functions since they often receive raw pointers, so we might just require use of ` trusted` when calling them from a ` safe` context. pure is also rarer for C, since C libraries often use global variables / stderr for error reporting, but ImportC could recognize the `__attribute__((pure))` extension some compilers have. In any case, new syntax could be created along the lines of: ```C #pragma nogc nothrow #include <somelibrary.h> ``` --
Mar 28 2023