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 帖子 / 0 全新
最新文章
如需更全面地了解编译器优化,请参阅优化注意事项

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?

发表评论

登录添加评论。还不是成员?立即加入