This is an archive of the discontinued LLVM Phabricator instance.

[analyzer] Create generic SMT Expr class
ClosedPublic

Authored by mikhail.ramalho on Jul 19 2018, 9:12 AM.

Details

Summary

New base class for all future SMT Exprs.

No major changes except moving areEquivalent and getFloatSemantics outside of Z3Expr to keep the class minimal.

Diff Detail

Repository
rL LLVM

Event Timeline

Make some methods pure virtual

george.karpenkov requested changes to this revision.Jul 20 2018, 10:26 AM
george.karpenkov added inline comments.
include/clang/StaticAnalyzer/Core/PathSensitive/SMTExpr.h
52 ↗(On Diff #156496)

same nit: could we not store anything in the abstract class?

lib/StaticAnalyzer/Core/Z3ConstraintManager.cpp
52 ↗(On Diff #156496)

do we need this forward class/function declaration?

This revision now requires changes to proceed.Jul 20 2018, 10:26 AM
lib/StaticAnalyzer/Core/Z3ConstraintManager.cpp
52 ↗(On Diff #156496)

It's used on equal_to, but I guess I can do like on Z3Sort and cast it directly.

Removed SMTContext from SMExpr.

This revision is now accepted and ready to land.Jul 23 2018, 10:42 AM
This revision was automatically updated to reflect the committed changes.