{"action":"created","comment":{"url":"https://api.github.com/repos/unsw-corg/SVF/pulls/comments/114867973","pull_request_review_id":36365399,"id":114867973,"diff_hunk":"@@ -189,7 +189,7 @@ bool SymbolTableInfo::computeGepOffset(const llvm::User *V, LocationSet& ls) {\n         // Handling array types, skipe array handling here\n         // We treat whole array as one, then we can distinguish different field of an array of struct\n         // e.g. s[1].f1 is differet from s[0].f2\n-        if(isa<ArrayType>(*gi))\n+        if(isa<ArrayType>(gi.getIndexedType()))","path":"lib/MemoryModel/MemModel.cpp","position":5,"original_position":5,"commit_id":"29ae917dec49bf21b845eaa1689a22d5b1bf258d","original_commit_id":"29ae917dec49bf21b845eaa1689a22d5b1bf258d","user":{"login":"dtzWill","id":817330,"avatar_url":"https://avatars1.githubusercontent.com/u/817330?v=3","gravatar_id":"","url":"https://api.github.com/users/dtzWill","html_url":"https://github.com/dtzWill","followers_url":"https://api.github.com/users/dtzWill/followers","following_url":"https://api.github.com/users/dtzWill/following{/other_user}","gists_url":"https://api.github.com/users/dtzWill/gists{/gist_id}","starred_url":"https://api.github.com/users/dtzWill/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dtzWill/subscriptions","organizations_url":"https://api.github.com/users/dtzWill/orgs","repos_url":"https://api.github.com/users/dtzWill/repos","events_url":"https://api.github.com/users/dtzWill/events{/privacy}","received_events_url":"https://api.github.com/users/dtzWill/received_events","type":"User","site_admin":false},"body":"@jcarlson23 just to double-check, I think you need to 'source' the setup.sh script (`. ./setup.sh`) in order for the exported variables to persist in your current shell.\r\n\r\nThat said I'm not actually using `setup.sh` and instead just set a variety of variables directly.  Here's my Nix expression for running PTABen on a particular SVF: http://dtz.so/desac.nix\r\n\r\n(If you're interested I can share the Nix expressions I use for SVF as well... but even if you don't know Nix it's pretty readable what's going on there I think :))\r\n\r\nIf the bridged GEP iterator /could/ be used and trusted to be compatible with previous behavior, I think that's the best solution until someone explicitly sits down and reworks some of the memory model code to use the new-style interface (which may require more extensive changes to the way it models the code, although hopefully not).\r\n\r\nUnfortunately with something like LLVM there are often too many changes to make \"diff\"-based comparisons on large applications practical.  Although maybe we could get some mileage out of (ab)using the IR upgrading:\r\n\r\n* Build large applications as LLVM 3.8 bitcode\r\n* Run SVF 3.8 on it, dumping results to file (or something)\r\n* Run SVF 4.0 on /exactly/ the same bitcode file and dumping analysis results similarly\r\n\r\nThat might be effective for minimizing the countless changes that would change the analysis results due to changes in clang, optimizations, etc..\r\n\r\nPersonally I'm a fan of checking analysis results dynamically--while certainly insufficient for proving correctness I've yet to find an LLVM-based pointer analysis (beyond the traditionally simple ones in LLVM) that was able to drive callgraph-checking instrumentation that didn't fail at runtime :(.","created_at":"2017-05-04T19:32:05Z","updated_at":"2017-05-04T19:32:05Z","html_url":"https://github.com/unsw-corg/SVF/pull/18#discussion_r114867973","pull_request_url":"https://api.github.com/repos/unsw-corg/SVF/pulls/18","_links":{"self":{"href":"https://api.github.com/repos/unsw-corg/SVF/pulls/comments/114867973"},"html":{"href":"https://github.com/unsw-corg/SVF/pull/18#discussion_r114867973"},"pull_request":{"href":"https://api.github.com/repos/unsw-corg/SVF/pulls/18"}}},"pull_request":{"url":"https://api.github.com/repos/unsw-corg/SVF/pulls/18","id":116242543,"html_url":"https://github.com/unsw-corg/SVF/pull/18","diff_url":"https://github.com/unsw-corg/SVF/pull/18.diff","patch_url":"https://github.com/unsw-corg/SVF/pull/18.patch","issue_url":"https://api.github.com/repos/unsw-corg/SVF/issues/18","number":18,"state":"open","locked":false,"title":"LLVM 4","user":{"login":"jcarlson23","id":235890,"avatar_url":"https://avatars3.githubusercontent.com/u/235890?v=3","gravatar_id":"","url":"https://api.github.com/users/jcarlson23","html_url":"https://github.com/jcarlson23","followers_url":"https://api.github.com/users/jcarlson23/followers","following_url":"https://api.github.com/users/jcarlson23/following{/other_user}","gists_url":"https://api.github.com/users/jcarlson23/gists{/gist_id}","starred_url":"https://api.github.com/users/jcarlson23/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcarlson23/subscriptions","organizations_url":"https://api.github.com/users/jcarlson23/orgs","repos_url":"https://api.github.com/users/jcarlson23/repos","events_url":"https://api.github.com/users/jcarlson23/events{/privacy}","received_events_url":"https://api.github.com/users/jcarlson23/received_events","type":"User","site_admin":false},"body":"This should be relatively easy to integrate - although I would put this into a separate (a staging or local) branch and then merge back into the GitHub master from there.  The WPAPass no longer inheriting from AliasAnalysis is probably the place I would suggest to be looked at the most.  The \"SVF Alterations.rtf\" gives a summary of the changes, etc...\r\n\r\nLet me know what else I can do to help.  I've gotta move on to a few other things the rest of the week but next week I'm going to start outline a few pivots I'm hoping to expand on :-) ","created_at":"2017-04-18T03:04:59Z","updated_at":"2017-05-04T19:32:05Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7c28f8ed2c84572ed9e69f4fd173d24a03588539","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/unsw-corg/SVF/pulls/18/commits","review_comments_url":"https://api.github.com/repos/unsw-corg/SVF/pulls/18/comments","review_comment_url":"https://api.github.com/repos/unsw-corg/SVF/pulls/comments{/number}","comments_url":"https://api.github.com/repos/unsw-corg/SVF/issues/18/comments","statuses_url":"https://api.github.com/repos/unsw-corg/SVF/statuses/29ae917dec49bf21b845eaa1689a22d5b1bf258d","head":{"label":"jcarlson23:llvm-4","ref":"llvm-4","sha":"29ae917dec49bf21b845eaa1689a22d5b1bf258d","user":{"login":"jcarlson23","id":235890,"avatar_url":"https://avatars3.githubusercontent.com/u/235890?v=3","gravatar_id":"","url":"https://api.github.com/users/jcarlson23","html_url":"https://github.com/jcarlson23","followers_url":"https://api.github.com/users/jcarlson23/followers","following_url":"https://api.github.com/users/jcarlson23/following{/other_user}","gists_url":"https://api.github.com/users/jcarlson23/gists{/gist_id}","starred_url":"https://api.github.com/users/jcarlson23/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcarlson23/subscriptions","organizations_url":"https://api.github.com/users/jcarlson23/orgs","repos_url":"https://api.github.com/users/jcarlson23/repos","events_url":"https://api.github.com/users/jcarlson23/events{/privacy}","received_events_url":"https://api.github.com/users/jcarlson23/received_events","type":"User","site_admin":false},"repo":{"id":85732685,"name":"SVF","full_name":"jcarlson23/SVF","owner":{"login":"jcarlson23","id":235890,"avatar_url":"https://avatars3.githubusercontent.com/u/235890?v=3","gravatar_id":"","url":"https://api.github.com/users/jcarlson23","html_url":"https://github.com/jcarlson23","followers_url":"https://api.github.com/users/jcarlson23/followers","following_url":"https://api.github.com/users/jcarlson23/following{/other_user}","gists_url":"https://api.github.com/users/jcarlson23/gists{/gist_id}","starred_url":"https://api.github.com/users/jcarlson23/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcarlson23/subscriptions","organizations_url":"https://api.github.com/users/jcarlson23/orgs","repos_url":"https://api.github.com/users/jcarlson23/repos","events_url":"https://api.github.com/users/jcarlson23/events{/privacy}","received_events_url":"https://api.github.com/users/jcarlson23/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jcarlson23/SVF","description":"Static Value-Flow Analysis in LLVM ---- Pointer Analysis and Program Dependence Analysis for C and C++ Programs","fork":true,"url":"https://api.github.com/repos/jcarlson23/SVF","forks_url":"https://api.github.com/repos/jcarlson23/SVF/forks","keys_url":"https://api.github.com/repos/jcarlson23/SVF/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jcarlson23/SVF/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jcarlson23/SVF/teams","hooks_url":"https://api.github.com/repos/jcarlson23/SVF/hooks","issue_events_url":"https://api.github.com/repos/jcarlson23/SVF/issues/events{/number}","events_url":"https://api.github.com/repos/jcarlson23/SVF/events","assignees_url":"https://api.github.com/repos/jcarlson23/SVF/assignees{/user}","branches_url":"https://api.github.com/repos/jcarlson23/SVF/branches{/branch}","tags_url":"https://api.github.com/repos/jcarlson23/SVF/tags","blobs_url":"https://api.github.com/repos/jcarlson23/SVF/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jcarlson23/SVF/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jcarlson23/SVF/git/refs{/sha}","trees_url":"https://api.github.com/repos/jcarlson23/SVF/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jcarlson23/SVF/statuses/{sha}","languages_url":"https://api.github.com/repos/jcarlson23/SVF/languages","stargazers_url":"https://api.github.com/repos/jcarlson23/SVF/stargazers","contributors_url":"https://api.github.com/repos/jcarlson23/SVF/contributors","subscribers_url":"https://api.github.com/repos/jcarlson23/SVF/subscribers","subscription_url":"https://api.github.com/repos/jcarlson23/SVF/subscription","commits_url":"https://api.github.com/repos/jcarlson23/SVF/commits{/sha}","git_commits_url":"https://api.github.com/repos/jcarlson23/SVF/git/commits{/sha}","comments_url":"https://api.github.com/repos/jcarlson23/SVF/comments{/number}","issue_comment_url":"https://api.github.com/repos/jcarlson23/SVF/issues/comments{/number}","contents_url":"https://api.github.com/repos/jcarlson23/SVF/contents/{+path}","compare_url":"https://api.github.com/repos/jcarlson23/SVF/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jcarlson23/SVF/merges","archive_url":"https://api.github.com/repos/jcarlson23/SVF/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jcarlson23/SVF/downloads","issues_url":"https://api.github.com/repos/jcarlson23/SVF/issues{/number}","pulls_url":"https://api.github.com/repos/jcarlson23/SVF/pulls{/number}","milestones_url":"https://api.github.com/repos/jcarlson23/SVF/milestones{/number}","notifications_url":"https://api.github.com/repos/jcarlson23/SVF/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jcarlson23/SVF/labels{/name}","releases_url":"https://api.github.com/repos/jcarlson23/SVF/releases{/id}","deployments_url":"https://api.github.com/repos/jcarlson23/SVF/deployments","created_at":"2017-03-21T17:25:39Z","updated_at":"2017-03-21T17:25:42Z","pushed_at":"2017-04-28T11:04:43Z","git_url":"git://github.com/jcarlson23/SVF.git","ssh_url":"git@github.com:jcarlson23/SVF.git","clone_url":"https://github.com/jcarlson23/SVF.git","svn_url":"https://github.com/jcarlson23/SVF","homepage":"http://unsw-corg.github.io/SVF/","size":9079,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"unsw-corg:master","ref":"master","sha":"14d9b9f43da35d13e6d6d49490c87a21fae42ed7","user":{"login":"unsw-corg","id":12755863,"avatar_url":"https://avatars1.githubusercontent.com/u/12755863?v=3","gravatar_id":"","url":"https://api.github.com/users/unsw-corg","html_url":"https://github.com/unsw-corg","followers_url":"https://api.github.com/users/unsw-corg/followers","following_url":"https://api.github.com/users/unsw-corg/following{/other_user}","gists_url":"https://api.github.com/users/unsw-corg/gists{/gist_id}","starred_url":"https://api.github.com/users/unsw-corg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/unsw-corg/subscriptions","organizations_url":"https://api.github.com/users/unsw-corg/orgs","repos_url":"https://api.github.com/users/unsw-corg/repos","events_url":"https://api.github.com/users/unsw-corg/events{/privacy}","received_events_url":"https://api.github.com/users/unsw-corg/received_events","type":"User","site_admin":false},"repo":{"id":36905975,"name":"SVF","full_name":"unsw-corg/SVF","owner":{"login":"unsw-corg","id":12755863,"avatar_url":"https://avatars1.githubusercontent.com/u/12755863?v=3","gravatar_id":"","url":"https://api.github.com/users/unsw-corg","html_url":"https://github.com/unsw-corg","followers_url":"https://api.github.com/users/unsw-corg/followers","following_url":"https://api.github.com/users/unsw-corg/following{/other_user}","gists_url":"https://api.github.com/users/unsw-corg/gists{/gist_id}","starred_url":"https://api.github.com/users/unsw-corg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/unsw-corg/subscriptions","organizations_url":"https://api.github.com/users/unsw-corg/orgs","repos_url":"https://api.github.com/users/unsw-corg/repos","events_url":"https://api.github.com/users/unsw-corg/events{/privacy}","received_events_url":"https://api.github.com/users/unsw-corg/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/unsw-corg/SVF","description":"Static Value-Flow Analysis in LLVM ---- Pointer Analysis and Program Dependence Analysis for C and C++ Programs","fork":false,"url":"https://api.github.com/repos/unsw-corg/SVF","forks_url":"https://api.github.com/repos/unsw-corg/SVF/forks","keys_url":"https://api.github.com/repos/unsw-corg/SVF/keys{/key_id}","collaborators_url":"https://api.github.com/repos/unsw-corg/SVF/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/unsw-corg/SVF/teams","hooks_url":"https://api.github.com/repos/unsw-corg/SVF/hooks","issue_events_url":"https://api.github.com/repos/unsw-corg/SVF/issues/events{/number}","events_url":"https://api.github.com/repos/unsw-corg/SVF/events","assignees_url":"https://api.github.com/repos/unsw-corg/SVF/assignees{/user}","branches_url":"https://api.github.com/repos/unsw-corg/SVF/branches{/branch}","tags_url":"https://api.github.com/repos/unsw-corg/SVF/tags","blobs_url":"https://api.github.com/repos/unsw-corg/SVF/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/unsw-corg/SVF/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/unsw-corg/SVF/git/refs{/sha}","trees_url":"https://api.github.com/repos/unsw-corg/SVF/git/trees{/sha}","statuses_url":"https://api.github.com/repos/unsw-corg/SVF/statuses/{sha}","languages_url":"https://api.github.com/repos/unsw-corg/SVF/languages","stargazers_url":"https://api.github.com/repos/unsw-corg/SVF/stargazers","contributors_url":"https://api.github.com/repos/unsw-corg/SVF/contributors","subscribers_url":"https://api.github.com/repos/unsw-corg/SVF/subscribers","subscription_url":"https://api.github.com/repos/unsw-corg/SVF/subscription","commits_url":"https://api.github.com/repos/unsw-corg/SVF/commits{/sha}","git_commits_url":"https://api.github.com/repos/unsw-corg/SVF/git/commits{/sha}","comments_url":"https://api.github.com/repos/unsw-corg/SVF/comments{/number}","issue_comment_url":"https://api.github.com/repos/unsw-corg/SVF/issues/comments{/number}","contents_url":"https://api.github.com/repos/unsw-corg/SVF/contents/{+path}","compare_url":"https://api.github.com/repos/unsw-corg/SVF/compare/{base}...{head}","merges_url":"https://api.github.com/repos/unsw-corg/SVF/merges","archive_url":"https://api.github.com/repos/unsw-corg/SVF/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/unsw-corg/SVF/downloads","issues_url":"https://api.github.com/repos/unsw-corg/SVF/issues{/number}","pulls_url":"https://api.github.com/repos/unsw-corg/SVF/pulls{/number}","milestones_url":"https://api.github.com/repos/unsw-corg/SVF/milestones{/number}","notifications_url":"https://api.github.com/repos/unsw-corg/SVF/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/unsw-corg/SVF/labels{/name}","releases_url":"https://api.github.com/repos/unsw-corg/SVF/releases{/id}","deployments_url":"https://api.github.com/repos/unsw-corg/SVF/deployments","created_at":"2015-06-05T01:52:24Z","updated_at":"2017-04-27T01:53:25Z","pushed_at":"2017-05-04T19:18:59Z","git_url":"git://github.com/unsw-corg/SVF.git","ssh_url":"git@github.com:unsw-corg/SVF.git","clone_url":"https://github.com/unsw-corg/SVF.git","svn_url":"https://github.com/unsw-corg/SVF","homepage":"http://unsw-corg.github.io/SVF/","size":9068,"stargazers_count":64,"watchers_count":64,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":27,"mirror_url":null,"open_issues_count":9,"forks":27,"open_issues":9,"watchers":64,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/unsw-corg/SVF/pulls/18"},"html":{"href":"https://github.com/unsw-corg/SVF/pull/18"},"issue":{"href":"https://api.github.com/repos/unsw-corg/SVF/issues/18"},"comments":{"href":"https://api.github.com/repos/unsw-corg/SVF/issues/18/comments"},"review_comments":{"href":"https://api.github.com/repos/unsw-corg/SVF/pulls/18/comments"},"review_comment":{"href":"https://api.github.com/repos/unsw-corg/SVF/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/unsw-corg/SVF/pulls/18/commits"},"statuses":{"href":"https://api.github.com/repos/unsw-corg/SVF/statuses/29ae917dec49bf21b845eaa1689a22d5b1bf258d"}}}}
{"actor":{"display_login":"dtzWill"}}