Skip to content

Struct with two or more bases will have duplicate member names #367

@sotteson1

Description

@sotteson1

ClusApi.h:

#ifdef __cplusplus
typedef struct _CLUSTER_SHARED_VOLUME_RENAME_GUID_INPUT
    : public CLUSTER_SHARED_VOLUME_RENAME_INPUT_VOLUME
    , public CLUSTER_SHARED_VOLUME_RENAME_INPUT_GUID_NAME {
#else
typedef struct _CLUSTER_SHARED_VOLUME_RENAME_GUID_INPUT {
    CLUSTER_SHARED_VOLUME_RENAME_INPUT_VOLUME;
    CLUSTER_SHARED_VOLUME_RENAME_INPUT_GUID_NAME;
#endif
} CLUSTER_SHARED_VOLUME_RENAME_GUID_INPUT, *PCLUSTER_SHARED_VOLUME_RENAME_GUID_INPUT;

Scanned output for version 14:

    [NativeTypeName("struct _CLUSTER_SHARED_VOLUME_RENAME_INPUT : CLUSTER_SHARED_VOLUME_RENAME_INPUT_VOLUME, CLUSTER_SHARED_VOLUME_RENAME_INPUT_NAME")]
    [NativeInheritance("CLUSTER_SHARED_VOLUME_RENAME_INPUT_NAME")]
    public partial struct CLUSTER_SHARED_VOLUME_RENAME_INPUT
    {
        public CLUSTER_SHARED_VOLUME_RENAME_INPUT_VOLUME Base;

        public CLUSTER_SHARED_VOLUME_RENAME_INPUT_NAME Base;
    }

Version 11 output:

    [NativeTypeName("struct _CLUSTER_SHARED_VOLUME_RENAME_GUID_INPUT : CLUSTER_SHARED_VOLUME_RENAME_INPUT_VOLUME, CLUSTER_SHARED_VOLUME_RENAME_INPUT_GUID_NAME")]
    [NativeInheritance("CLUSTER_SHARED_VOLUME_RENAME_INPUT_GUID_NAME")]
    public partial struct CLUSTER_SHARED_VOLUME_RENAME_GUID_INPUT
    {
        public CLUSTER_SHARED_VOLUME_RENAME_INPUT_VOLUME __AnonymousBase_clusapi_L5475_C14;

        public CLUSTER_SHARED_VOLUME_RENAME_INPUT_GUID_NAME __AnonymousBase_clusapi_L5476_C14;
    }

I tried undefing __cplusplus but then the outputted struct was empty.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions