Skip to content

use of "CLASSNAME::VARIABLENAME" in assigns clase causes abort

ID0002074: This issue was created automatically from Mantis Issue 2074. Further discussion may take place here.


Id Project Category View Due Date Updated
ID0002074 Frama-Clang Plug-in > clang public 2015-02-05 2015-04-09
Reporter Jochen Assigned To virgile Resolution open
Priority normal Severity minor Reproducibility always
Platform Neon-20140301+dev-STANCE-Jan2015 OS - OS Version xubuntu-cfe13.10
Product Version - Target Version - Fixed in Version -

Description :

output:

[kernel] Parsing FRAMAC_SHARE/libc/__fc_builtin_for_normalization.i (no preprocessing) [kernel] Parsing 455.cpp (external front-end) framaCIRGen: SemaLookup.cpp:1622: bool clang::Sema::LookupQualifiedName(clang::LookupResult &, clang::DeclContext *, bool): Assertion `(!isa(LookupCtx) || LookupCtx->isDependentContext() || cast(LookupCtx)->isCompleteDefinition() || cast(LookupCtx)->isBeingDefined()) && "Declaration context must already be complete!"' failed. Aborted (core dumped) [kernel] user error: Failed to parse C++ file. See Clang messages for more information

Cf. #1944 (closed) for a similar problem in an "ensures" clause. If the prefix "Employee::" is deleted in the assigns clause in line 11, a warning is issued instead:

[kernel] Parsing FRAMAC_SHARE/libc/__fc_builtin_for_normalization.i (no preprocessing) [kernel] Parsing 455.cpp (external front-end) Now output intermediate result 455.cpp:12:[kernel] user error: Cannot find field dept [kernel] user error: stopping on file "455.cpp" that has errors.

As a consequence of both behaviors, it is impossible to write an "assigns" clause for a subclass method that refers to a member of a superclass.

Attachments

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information