- /*
- ** don't report this error for a[i], since it could
- ** be a new element.
- */
-
- if (alkind_isNewRef (tkind))
- {
- if (optgenerror
- (FLG_MUSTFREE,
- message
- ("%q %q(type %s) not released before assignment: %q",
- cstring_makeLiteral
- (alkind_isKillRef (sRef_getOrigAliasKind (tref))
- ? "Kill reference parameter" : "New reference"),
- sRef_unparseOpt (tref),
- ctype_unparse (sRef_getType (tref)),
- generateText (fexp, texp, tref, transferType)),
- loc))
- {
- sRef_showAliasInfo (tref);
- sRef_setAliasKind (tref, AK_ERROR, loc);
- }
- }
- else if
- (!(sRef_isUnknownArrayFetch (tref)
- && !context_getFlag (FLG_STRICTDESTROY))
- && !sRef_isUnionField (tref)
- && !sRef_isRelDef (tref)
- && optgenerror
- (FLG_MUSTFREE,
- message
- ("%s storage %q(type %s) not released before assignment: %q",
- alkind_capName (tkind),
- sRef_unparseOpt (tref),
- ctype_unparse (sRef_getType (tref)),
- generateText (fexp, texp, tref, transferType)),
- loc))
- {
- sRef_showAliasInfo (tref);
- }
- else
+ if (optgenerror
+ (flg,
+ message
+ ("%q %q(type %s) not released before assignment: %q",
+ cstring_makeLiteral
+ (alkind_isKillRef (sRef_getOrigAliasKind (tref))
+ ? "Kill reference parameter" : "New reference"),
+ sRef_unparseOpt (tref),
+ ctype_unparse (sRef_getType (tref)),
+ generateText (fexp, texp, tref, transferType)),
+ loc))