Menu

#41 Aliased class causes bad code generation

open
nobody
5
2007-11-07
2007-11-07
counselour
No

With the attached asn1 file, DMI-EXTENSION is aliased to DMI-TYPE-EXTENSION.

When I try to compile the generated code, I get the following error:

cc -I. -o DMI-EXTENSION.o -c DMI-EXTENSION.c
In file included from DMI-EXTENSION.c:9:
DMI-EXTENSION.h:14:33: error: DMI-TYPE-IDENTIFIER.h: No such file or directory
In file included from DMI-EXTENSION.c:9:
DMI-EXTENSION.h:21: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'DMI_EXTENSION_t'
DMI-EXTENSION.c: In function 'DMI_EXTENSION_constraint':
DMI-EXTENSION.c:15: error: 'asn_DEF_DMI_TYPE_IDENTIFIER' undeclared (first use in this function)
DMI-EXTENSION.c:15: error: (Each undeclared identifier is reported only once
DMI-EXTENSION.c:15: error: for each function it appears in.)
DMI-EXTENSION.c: In function 'DMI_EXTENSION_1_inherit_TYPE_descriptor':
DMI-EXTENSION.c:25: error: 'asn_DEF_DMI_TYPE_IDENTIFIER' undeclared (first use in this function)
make: *** [DMI-EXTENSION.o] Error 1

I compiled with asn1c -fcompound-names

Discussion

  • counselour

    counselour - 2007-11-07

    Simple class usage that will not compile

     
  • counselour

    counselour - 2007-11-12

    Logged In: YES
    user_id=1932039
    Originator: YES

    I had to find a workaround so I can continue, so I attached a diff for the workaround. Simply don't compile a reference to a class def. Seems to work. Let me know if there is a better way, thanks.
    The diff is against the latest and greatest: svn revision 1395

    File Added: class_alias_wrk.diff

     
  • counselour

    counselour - 2007-11-12
     
  • counselour

    counselour - 2007-12-04

    Logged In: YES
    user_id=1932039
    Originator: YES

    Looks like I'm always getting an empty TYPE-IDENTIFIER.c/.h with my change. Not exactly empty, but nothing of any substance. Just includes and the extern "C" ifdef with a single ; in it.

     
  • counselour

    counselour - 2007-12-04

    Logged In: YES
    user_id=1932039
    Originator: YES

    This change doesn't cause the empty and unused source files to appear. It was another change I made to actually dump code to access the class matrix at runtime.

     

Log in to post a comment.