This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 97216 - *Code Model* APT Expanding assert on stringizing empty defined macros
Summary: *Code Model* APT Expanding assert on stringizing empty defined macros
Status: RESOLVED FIXED
Alias: None
Product: cnd
Classification: Unclassified
Component: Code Model (show other bugs)
Version: 5.x
Hardware: All All
: P2 blocker (vote)
Assignee: Vladimir Voskresensky
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-03-05 16:47 UTC by Vladimir Voskresensky
Modified: 2007-03-05 18:15 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vladimir Voskresensky 2007-03-05 16:47:01 UTC
#cat ~/SunStudioProjects/Application_1/newfile.cc
#define __CONCAT(x,y)   x ## y
#define __STRING(x)     #x

#define __USER_LABEL_PREFIX__

# define __REDIRECT(name, proto, alias) name proto __asm__ (__ASMNAME (#alias))
# define __ASMNAME(cname)  __ASMNAME2 (__USER_LABEL_PREFIX__, cname)
# define __ASMNAME2(prefix, cname) __STRING (prefix) cname

#define A(alias) __ASMNAME (#alias)

A(mkstemp64);

-----------------------------------
#./tracemodel.sh -Fo ~/SunStudioProjects/Application_1/newfile.cc
Exception in thread "main" java.lang.AssertionError
        at
org.netbeans.modules.cnd.apt.impl.support.APTExpandedStream.stringizeParam(APTExpandedStream.java:422)
        at
org.netbeans.modules.cnd.apt.impl.support.APTExpandedStream.subsituteParams(APTExpandedStream.java:354)
        at
org.netbeans.modules.cnd.apt.impl.support.APTExpandedStream.createMacroBodyWrapper(APTExpandedStream.java:173)
        at
org.netbeans.modules.cnd.modelimpl.parser.apt.APTParserMacroExpandedStream.createMacroBodyWrapper(APTParserMacroExpandedStream.java:41)
        at
org.netbeans.modules.cnd.apt.impl.support.APTExpandedStream.pushMacroExpanding(APTExpandedStream.java:110)
        at
org.netbeans.modules.cnd.apt.impl.support.APTExpandedStream.nextToken(APTExpandedStream.java:92)
        at
org.netbeans.modules.cnd.apt.utils.APTCommentsFilter.nextToken(APTCommentsFilter.java:39)
        at
org.netbeans.modules.cnd.apt.impl.support.lang.APTBaseLanguageFilter$FilterStream.nextToken(APTBaseLanguageFilter.java:104)
        at
org.netbeans.modules.cnd.modelimpl.trace.TraceModel.testAPTWalkerGetStream(TraceModel.java:1202)
        at
org.netbeans.modules.cnd.modelimpl.trace.TraceModel.testAPT(TraceModel.java:1295)
        at
org.netbeans.modules.cnd.modelimpl.trace.TraceModel.test(TraceModel.java:1415)
        at
org.netbeans.modules.cnd.modelimpl.trace.TraceModel.test(TraceModel.java:681)
        at
org.netbeans.modules.cnd.modelimpl.trace.TraceModel.test1(TraceModel.java:476)
        at
org.netbeans.modules.cnd.modelimpl.trace.TraceModel.test(TraceModel.java:382)
        at
org.netbeans.modules.cnd.modelimpl.trace.TraceModel.main(TraceModel.java:135)

--------------

    private static Token stringizeParam(List/*<Token>*/ param) {
        //TODO: finish it, use lexer
        assert (param != null);
        assert (param.size() > 0); // <== Assert
        assert (param.get(0) != null);
        APTToken token = APTUtils.createAPTToken();
        token.setType(APTTokenTypes.STRING_LITERAL);
        token.setText(toText(param, true));
        return (Token)token;
    }
Comment 1 Vladimir Voskresensky 2007-03-05 18:15:28 UTC
fixed:
- empty expanded macros are replaced by empty string during stringizing params

cvs log:
Checking in APTExpandedStream.java;
/shared/data/ccvs/repository/cnd/apt/src/org/netbeans/modules/cnd/apt/impl/support/APTExpandedStream.java,v
 <--  APTExpandedStream.java
new revision: 1.1.2.8; previous revision: 1.1.2.7
done