• M
    qapi: Fix array first used in a different module · 56a46895
    Markus Armbruster 提交于
    We generally put implicitly defined types in whatever module triggered
    their definition.  This is wrong for array types, as the included test
    case demonstrates.  Let's have a closer look at it.
    
    Type 'Status' is defined sub-sub-module.json.  Array type ['Status']
    occurs in main module qapi-schema-test.json and in
    include/sub-module.json.  The main module's use is first, so the array
    type gets put into the main module.
    
    The generated C headers define StatusList in qapi-types.h.  But
    include/qapi-types-sub-module.h uses it without including
    qapi-types.h.  Oops.
    
    To fix that, put the array type into its element type's module.
    
    Now StatusList gets generated into qapi-types-sub-module.h, which all
    its users include.
    Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
    Message-Id: <20190301154051.23317-8-armbru@redhat.com>
    Reviewed-by: NEric Blake <eblake@redhat.com>
    56a46895
qapi-schema-test.out 11.5 KB