fpp crash for long fpp definitions?

fpp crash for long fpp definitions?

Hi all,
some code of my Visual Fortran project uses fpp to auto-generate code (.f90 - so it's free format!).
For this I got the fpp definition below, which makes fpp.exe crash with the following problem signature:

Problem name: APPCRASH
Application name: fpp.exe
Application version: 0.0.0.0
Application time stamp: 4e44b388
Error module name: fpp.exe
Error module version: 0.0.0.0
Error module time stamp: 4e44b388
Exception code: c0000005
Exception offset: 00008195
Operating System Version: 6.1.7601.2.1.0.256.48
Locale-ID: 1031
Additional information 1: 5326
Additional information 2: 532695f00f09ae88d104d396d2fd136e
Additional information 3: 384c
Additional information 4: 384c17b868f6b3abd4d3889c25ace532

Sorry ... windows names the rows in german, but I guess you'd figure out the info you need.

# define Xtable_VarType                                                                                      \
    XtableItem(VarType)( logical,          bool,     none,                         none, none              ) \
    XtableItem(VarType)( integer,          int,      none,                         none, none              ) \
    XtableItem(VarType)( real*4,           float,    none,                         none, none              ) \
    XtableItem(VarType)( real*8,           double,   none,                         none, none              ) \
    XtableItem(VarType)( real*16,          longDbl,  none,                         none, none              ) \
    XtableItem(VarType)( complex,          cplx,     none,                         none, none              ) \
    XtableItem(VarType)( complex*16,       dblCplx,  none,                         none, none              ) \
    XtableItem(VarType)( complex*32,       quadCplx, none,                         none, none              ) \
    XtableItem(VarType)( type(c_ptr),      cptr,     none,                         none, none              ) \
    XtableItem(VarType)( type(AutoString), string,   AutoString_assign_AutoString, none, AutoString_delete ) \
    XtableItem(VarType)( type(GenericRef), ref,      GenericRef_assign_GenericRef, none, GenericRef_delete )

By playing a bit with this definition I figured out that reducing the number of alignment blanks does the trick to make fpp finishing normally.
Therefore my question: is there a maximum length of fpp-definitions?
I couldn't find anything about it at
http://software.intel.com/sites/products/documentation/doclib/stdxe/2013/composerxe/compiler/fortran-lin/GUID-4A598AC5-1C5F-48F2-BA42-DA8F38D46CB3.htm

Btw. I'm using the flag: /fpp:"-f_com=no" to make fpp run.

Thanks in advance,
Zapp

PS: is it useful to provide a crash dump of fpp?
If yes, should I push it here or should I file a bug somewhere?

PPS: what's the normal way here to get a post in fixed font? I currently used the fortran code highlight for whole post ...

2 post / 0 nuovi
Ultimo contenuto
Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione

In the meanwhile I found out that it's not the definition but the resolution of the Xtable_VarType which causes the fpp crash.
To reproduce the problem you need somewhat more definitions.
So finally it comes down to ...

# define XtableItem(tableId)             foreach_ ## tableId
# define XtableExpand(tableId)           Xtable_ ## tableId

# define Xtable_VarType                                                                                      \\
    XtableItem(VarType)( logical,          bool,     none,                         none, none              ) \\
    XtableItem(VarType)( integer,          int,      none,                         none, none              ) \\
    XtableItem(VarType)( real*4,           float,    none,                         none, none              ) \\
    XtableItem(VarType)( real*8,           double,   none,                         none, none              ) \\
    XtableItem(VarType)( real*16,          longDbl,  none,                         none, none              ) \\
    XtableItem(VarType)( complex,          cplx,     none,                         none, none              ) \\
    XtableItem(VarType)( complex*16,       dblCplx,  none,                         none, none              ) \\
    XtableItem(VarType)( complex*32,       quadCplx, none,                         none, none              ) \\
    XtableItem(VarType)( type(c_ptr),      cptr,     none,                         none, none              ) \\
    XtableItem(VarType)( type(AutoString), string,   AutoString_assign_AutoString, none, AutoString_delete ) \\
    XtableItem(VarType)( type(GenericRef), ref,      GenericRef_assign_GenericRef, none, GenericRef_delete )

! resolve the table somewhere else ...
# define foreach_VarType( type, typeId, aF, cF, dF )  print *, #type
    XtableExpand(VarType)
# undef foreach_VarType

However the essential question remains: is there a restriction in length of lines generated by fpp?
Anyway, it should not crash but rather give an error, right?

Lascia un commento

Eseguire l'accesso per aggiungere un commento. Non siete membri? Iscriviti oggi