mono / CppSharp

Tools and libraries to glue C/C++ APIs to high-level languages
MIT License
3.14k stars 518 forks source link

Accessor for array of enum inside structs is not generated #1815

Open XzuluX opened 11 months ago

XzuluX commented 11 months ago
Brief Description

In a C header, a one-dimensional array of enum values is defined within a structure. The generated C# code does not have a property or accessor for this array.

OS: Linux Ubuntu 22.04.3 LTS

Used headers
#ifdef __cplusplus
extern "C" {
#endif

#define NR_PIXEL  10 

typedef enum
{
    LED_OFF = 0,
    LED_GREEN,
    LED_YELLOW,
    LED_RED

} sLed;

typedef struct 
{
    sLed led[NR_PIXEL];

} sPdOut;

#ifdef __cplusplus
}
#endif
Used settings

Target: Clang

Stack trace or incompilable generated code

Inside the generated code there is only a fixed uint array but no accessor.

[StructLayout(LayoutKind.Sequential, Size = 40)]
public partial struct __Internal
{
    internal fixed uint led[10];
   ...
}
tritao commented 11 months ago

Related to: https://github.com/mono/CppSharp/issues/1238