pascal-lab/Tai-e

`propagate-types` option does not seem to be effective

Closed this issue · 2 comments

Describe the bug

I used the propagate-types option in pointer analysis, but it doesn't seem to be effective. I set the following types for propagate-types:

  • int
  • long
  • float
  • null
  • reference
    However, according to the results, it seems that only reference is effective, while the other results are all empty.

Tai-e arguments

                "-cp", "./workspace/testJar1.jar",
                "-m", "TestCase15",
                "-a", "icfg",
                "-a", "mymethod",
                "-a", "pta=propagate-types:[int,long,float,null,reference];cs:1-call",
                "-a", "constraint",
                "-ap"

Runtime environment infomation

OS: Win 11
IDE: Jetbrains IDEA
The version of Tai-e: latest (10a633f)

Thank you so much!

This is a feature, not a bug :-)

The option propatate-types is used to open the channels (on PFG) for propagating values of specified types in pointer analysis. It does not add the values to the pointers of PFG.
Objects of reference type are added to the pointers by DefaultSolver, and values of other types can be added by plugins, depending on your needs.
For example, NullHandler and NumberLiteralHandler add null and numbers to the pointers. You could try to use them together with propagate-types.

I understand, thank you for the clarification!