{"action":"created","comment":{"url":"https://api.github.com/repos/Microsoft/checkedc-clang/pulls/comments/79677702","id":79677702,"diff_hunk":"@@ -33,80 +33,123 @@\n #include \"utils.h\"\n #include \"PersistentSourceLoc.h\"\n \n-// A helper class used to track global information in the program. \n-class GlobalSymbol {\n+typedef std::set<uint32_t> CVars;","path":"tools/checked-c-convert/ProgramInfo.h","position":6,"original_position":6,"commit_id":"ba0c942eada53825baebe48813c68fa95e123592","original_commit_id":"184f3b58d851f360138876390c1c58787c2b57c4","user":{"login":"dtarditi","id":11841034,"avatar_url":"https://avatars.githubusercontent.com/u/11841034?v=3","gravatar_id":"","url":"https://api.github.com/users/dtarditi","html_url":"https://github.com/dtarditi","followers_url":"https://api.github.com/users/dtarditi/followers","following_url":"https://api.github.com/users/dtarditi/following{/other_user}","gists_url":"https://api.github.com/users/dtarditi/gists{/gist_id}","starred_url":"https://api.github.com/users/dtarditi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dtarditi/subscriptions","organizations_url":"https://api.github.com/users/dtarditi/orgs","repos_url":"https://api.github.com/users/dtarditi/repos","events_url":"https://api.github.com/users/dtarditi/events{/privacy}","received_events_url":"https://api.github.com/users/dtarditi/received_events","type":"User","site_admin":false},"body":"It'd be helpful to add a comment stating that set actually keeps its contents sorted.    This might be obvious to an expert C++ developer - it will not be obvious to developers less familiar with C.   \r\n","created_at":"2016-09-20T18:17:49Z","updated_at":"2016-09-20T18:17:49Z","html_url":"https://github.com/Microsoft/checkedc-clang/pull/56#discussion_r79677702","pull_request_url":"https://api.github.com/repos/Microsoft/checkedc-clang/pulls/56","_links":{"self":{"href":"https://api.github.com/repos/Microsoft/checkedc-clang/pulls/comments/79677702"},"html":{"href":"https://github.com/Microsoft/checkedc-clang/pull/56#discussion_r79677702"},"pull_request":{"href":"https://api.github.com/repos/Microsoft/checkedc-clang/pulls/56"}}},"pull_request":{"url":"https://api.github.com/repos/Microsoft/checkedc-clang/pulls/56","id":85906739,"html_url":"https://github.com/Microsoft/checkedc-clang/pull/56","diff_url":"https://github.com/Microsoft/checkedc-clang/pull/56.diff","patch_url":"https://github.com/Microsoft/checkedc-clang/pull/56.patch","issue_url":"https://api.github.com/repos/Microsoft/checkedc-clang/issues/56","number":56,"state":"open","locked":false,"title":"Constraint system is higher order now","user":{"login":"awruef","id":2530731,"avatar_url":"https://avatars.githubusercontent.com/u/2530731?v=3","gravatar_id":"","url":"https://api.github.com/users/awruef","html_url":"https://github.com/awruef","followers_url":"https://api.github.com/users/awruef/followers","following_url":"https://api.github.com/users/awruef/following{/other_user}","gists_url":"https://api.github.com/users/awruef/gists{/gist_id}","starred_url":"https://api.github.com/users/awruef/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/awruef/subscriptions","organizations_url":"https://api.github.com/users/awruef/orgs","repos_url":"https://api.github.com/users/awruef/repos","events_url":"https://api.github.com/users/awruef/events{/privacy}","received_events_url":"https://api.github.com/users/awruef/received_events","type":"User","site_admin":false},"body":"This isn't totally finished (more on that later) but it's so divergent from where it was a week ago that I'd like to get this reviewed now and work on finishing the edges tomorrow. What's changed: \r\n\r\n * The core data structure has changed. Before, there was a mapping from VarDecl to a constraint variable. Now, there is a mapping from a PersistentSourceLoc to a set of ConstraintVariables, which is a new class. This is good because both PersistentSourceLoc and ConstraintVariable are not tied to a particular AST data structure, so the system is inherently persistent. \r\n * There is now a new ConstraintVariable class. A ConstraintVariable is either a PointerVariableConstraint or a FunctionVariableConstraint. FunctionVariableConstraint tracks ConstraintVariables for the return and parameter types. \r\n * There is a new unit test file.\r\n\r\nThese two changes necessitated many downstream changes that touched almost everything. Currently, it passes the unit tests I've committed. What's left: \r\n\r\n * Write more tests, mostly for variables / functions declared in macro regions, and functions / multi-line decls where the type names are macro-defined.\r\n * Change the function linking phase to work with the new information, and test it. ","created_at":"2016-09-20T03:48:26Z","updated_at":"2016-09-20T18:17:49Z","closed_at":null,"merged_at":null,"merge_commit_sha":"5c5dfc4551c0c8cad449cdae82207cbeae122327","assignee":{"login":"awruef","id":2530731,"avatar_url":"https://avatars.githubusercontent.com/u/2530731?v=3","gravatar_id":"","url":"https://api.github.com/users/awruef","html_url":"https://github.com/awruef","followers_url":"https://api.github.com/users/awruef/followers","following_url":"https://api.github.com/users/awruef/following{/other_user}","gists_url":"https://api.github.com/users/awruef/gists{/gist_id}","starred_url":"https://api.github.com/users/awruef/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/awruef/subscriptions","organizations_url":"https://api.github.com/users/awruef/orgs","repos_url":"https://api.github.com/users/awruef/repos","events_url":"https://api.github.com/users/awruef/events{/privacy}","received_events_url":"https://api.github.com/users/awruef/received_events","type":"User","site_admin":false},"assignees":[{"login":"awruef","id":2530731,"avatar_url":"https://avatars.githubusercontent.com/u/2530731?v=3","gravatar_id":"","url":"https://api.github.com/users/awruef","html_url":"https://github.com/awruef","followers_url":"https://api.github.com/users/awruef/followers","following_url":"https://api.github.com/users/awruef/following{/other_user}","gists_url":"https://api.github.com/users/awruef/gists{/gist_id}","starred_url":"https://api.github.com/users/awruef/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/awruef/subscriptions","organizations_url":"https://api.github.com/users/awruef/orgs","repos_url":"https://api.github.com/users/awruef/repos","events_url":"https://api.github.com/users/awruef/events{/privacy}","received_events_url":"https://api.github.com/users/awruef/received_events","type":"User","site_admin":false},{"login":"dtarditi","id":11841034,"avatar_url":"https://avatars.githubusercontent.com/u/11841034?v=3","gravatar_id":"","url":"https://api.github.com/users/dtarditi","html_url":"https://github.com/dtarditi","followers_url":"https://api.github.com/users/dtarditi/followers","following_url":"https://api.github.com/users/dtarditi/following{/other_user}","gists_url":"https://api.github.com/users/dtarditi/gists{/gist_id}","starred_url":"https://api.github.com/users/dtarditi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dtarditi/subscriptions","organizations_url":"https://api.github.com/users/dtarditi/orgs","repos_url":"https://api.github.com/users/dtarditi/repos","events_url":"https://api.github.com/users/dtarditi/events{/privacy}","received_events_url":"https://api.github.com/users/dtarditi/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/Microsoft/checkedc-clang/pulls/56/commits","review_comments_url":"https://api.github.com/repos/Microsoft/checkedc-clang/pulls/56/comments","review_comment_url":"https://api.github.com/repos/Microsoft/checkedc-clang/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Microsoft/checkedc-clang/issues/56/comments","statuses_url":"https://api.github.com/repos/Microsoft/checkedc-clang/statuses/ba0c942eada53825baebe48813c68fa95e123592","head":{"label":"Microsoft:awr_17","ref":"awr_17","sha":"ba0c942eada53825baebe48813c68fa95e123592","user":{"login":"Microsoft","id":6154722,"avatar_url":"https://avatars.githubusercontent.com/u/6154722?v=3","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"repo":{"id":60645050,"name":"checkedc-clang","full_name":"Microsoft/checkedc-clang","owner":{"login":"Microsoft","id":6154722,"avatar_url":"https://avatars.githubusercontent.com/u/6154722?v=3","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Microsoft/checkedc-clang","description":"This repo contains a version of clang that is being modified to support Checked C.   Checked C is an extension to C that adds checking to detect or prevent common programming errors such as out-of-bounds memory accesses.","fork":false,"url":"https://api.github.com/repos/Microsoft/checkedc-clang","forks_url":"https://api.github.com/repos/Microsoft/checkedc-clang/forks","keys_url":"https://api.github.com/repos/Microsoft/checkedc-clang/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Microsoft/checkedc-clang/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Microsoft/checkedc-clang/teams","hooks_url":"https://api.github.com/repos/Microsoft/checkedc-clang/hooks","issue_events_url":"https://api.github.com/repos/Microsoft/checkedc-clang/issues/events{/number}","events_url":"https://api.github.com/repos/Microsoft/checkedc-clang/events","assignees_url":"https://api.github.com/repos/Microsoft/checkedc-clang/assignees{/user}","branches_url":"https://api.github.com/repos/Microsoft/checkedc-clang/branches{/branch}","tags_url":"https://api.github.com/repos/Microsoft/checkedc-clang/tags","blobs_url":"https://api.github.com/repos/Microsoft/checkedc-clang/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Microsoft/checkedc-clang/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Microsoft/checkedc-clang/git/refs{/sha}","trees_url":"https://api.github.com/repos/Microsoft/checkedc-clang/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Microsoft/checkedc-clang/statuses/{sha}","languages_url":"https://api.github.com/repos/Microsoft/checkedc-clang/languages","stargazers_url":"https://api.github.com/repos/Microsoft/checkedc-clang/stargazers","contributors_url":"https://api.github.com/repos/Microsoft/checkedc-clang/contributors","subscribers_url":"https://api.github.com/repos/Microsoft/checkedc-clang/subscribers","subscription_url":"https://api.github.com/repos/Microsoft/checkedc-clang/subscription","commits_url":"https://api.github.com/repos/Microsoft/checkedc-clang/commits{/sha}","git_commits_url":"https://api.github.com/repos/Microsoft/checkedc-clang/git/commits{/sha}","comments_url":"https://api.github.com/repos/Microsoft/checkedc-clang/comments{/number}","issue_comment_url":"https://api.github.com/repos/Microsoft/checkedc-clang/issues/comments{/number}","contents_url":"https://api.github.com/repos/Microsoft/checkedc-clang/contents/{+path}","compare_url":"https://api.github.com/repos/Microsoft/checkedc-clang/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Microsoft/checkedc-clang/merges","archive_url":"https://api.github.com/repos/Microsoft/checkedc-clang/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Microsoft/checkedc-clang/downloads","issues_url":"https://api.github.com/repos/Microsoft/checkedc-clang/issues{/number}","pulls_url":"https://api.github.com/repos/Microsoft/checkedc-clang/pulls{/number}","milestones_url":"https://api.github.com/repos/Microsoft/checkedc-clang/milestones{/number}","notifications_url":"https://api.github.com/repos/Microsoft/checkedc-clang/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Microsoft/checkedc-clang/labels{/name}","releases_url":"https://api.github.com/repos/Microsoft/checkedc-clang/releases{/id}","deployments_url":"https://api.github.com/repos/Microsoft/checkedc-clang/deployments","created_at":"2016-06-07T20:43:32Z","updated_at":"2016-09-19T14:57:03Z","pushed_at":"2016-09-20T17:05:20Z","git_url":"git://github.com/Microsoft/checkedc-clang.git","ssh_url":"git@github.com:Microsoft/checkedc-clang.git","clone_url":"https://github.com/Microsoft/checkedc-clang.git","svn_url":"https://github.com/Microsoft/checkedc-clang","homepage":"","size":293082,"stargazers_count":101,"watchers_count":101,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":12,"mirror_url":null,"open_issues_count":21,"forks":12,"open_issues":21,"watchers":101,"default_branch":"master"}},"base":{"label":"Microsoft:master","ref":"master","sha":"e3ba60ee085fcca3226410efd43b786f8d0c495d","user":{"login":"Microsoft","id":6154722,"avatar_url":"https://avatars.githubusercontent.com/u/6154722?v=3","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"repo":{"id":60645050,"name":"checkedc-clang","full_name":"Microsoft/checkedc-clang","owner":{"login":"Microsoft","id":6154722,"avatar_url":"https://avatars.githubusercontent.com/u/6154722?v=3","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Microsoft/checkedc-clang","description":"This repo contains a version of clang that is being modified to support Checked C.   Checked C is an extension to C that adds checking to detect or prevent common programming errors such as out-of-bounds memory accesses.","fork":false,"url":"https://api.github.com/repos/Microsoft/checkedc-clang","forks_url":"https://api.github.com/repos/Microsoft/checkedc-clang/forks","keys_url":"https://api.github.com/repos/Microsoft/checkedc-clang/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Microsoft/checkedc-clang/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Microsoft/checkedc-clang/teams","hooks_url":"https://api.github.com/repos/Microsoft/checkedc-clang/hooks","issue_events_url":"https://api.github.com/repos/Microsoft/checkedc-clang/issues/events{/number}","events_url":"https://api.github.com/repos/Microsoft/checkedc-clang/events","assignees_url":"https://api.github.com/repos/Microsoft/checkedc-clang/assignees{/user}","branches_url":"https://api.github.com/repos/Microsoft/checkedc-clang/branches{/branch}","tags_url":"https://api.github.com/repos/Microsoft/checkedc-clang/tags","blobs_url":"https://api.github.com/repos/Microsoft/checkedc-clang/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Microsoft/checkedc-clang/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Microsoft/checkedc-clang/git/refs{/sha}","trees_url":"https://api.github.com/repos/Microsoft/checkedc-clang/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Microsoft/checkedc-clang/statuses/{sha}","languages_url":"https://api.github.com/repos/Microsoft/checkedc-clang/languages","stargazers_url":"https://api.github.com/repos/Microsoft/checkedc-clang/stargazers","contributors_url":"https://api.github.com/repos/Microsoft/checkedc-clang/contributors","subscribers_url":"https://api.github.com/repos/Microsoft/checkedc-clang/subscribers","subscription_url":"https://api.github.com/repos/Microsoft/checkedc-clang/subscription","commits_url":"https://api.github.com/repos/Microsoft/checkedc-clang/commits{/sha}","git_commits_url":"https://api.github.com/repos/Microsoft/checkedc-clang/git/commits{/sha}","comments_url":"https://api.github.com/repos/Microsoft/checkedc-clang/comments{/number}","issue_comment_url":"https://api.github.com/repos/Microsoft/checkedc-clang/issues/comments{/number}","contents_url":"https://api.github.com/repos/Microsoft/checkedc-clang/contents/{+path}","compare_url":"https://api.github.com/repos/Microsoft/checkedc-clang/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Microsoft/checkedc-clang/merges","archive_url":"https://api.github.com/repos/Microsoft/checkedc-clang/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Microsoft/checkedc-clang/downloads","issues_url":"https://api.github.com/repos/Microsoft/checkedc-clang/issues{/number}","pulls_url":"https://api.github.com/repos/Microsoft/checkedc-clang/pulls{/number}","milestones_url":"https://api.github.com/repos/Microsoft/checkedc-clang/milestones{/number}","notifications_url":"https://api.github.com/repos/Microsoft/checkedc-clang/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Microsoft/checkedc-clang/labels{/name}","releases_url":"https://api.github.com/repos/Microsoft/checkedc-clang/releases{/id}","deployments_url":"https://api.github.com/repos/Microsoft/checkedc-clang/deployments","created_at":"2016-06-07T20:43:32Z","updated_at":"2016-09-19T14:57:03Z","pushed_at":"2016-09-20T17:05:20Z","git_url":"git://github.com/Microsoft/checkedc-clang.git","ssh_url":"git@github.com:Microsoft/checkedc-clang.git","clone_url":"https://github.com/Microsoft/checkedc-clang.git","svn_url":"https://github.com/Microsoft/checkedc-clang","homepage":"","size":293082,"stargazers_count":101,"watchers_count":101,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":12,"mirror_url":null,"open_issues_count":21,"forks":12,"open_issues":21,"watchers":101,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Microsoft/checkedc-clang/pulls/56"},"html":{"href":"https://github.com/Microsoft/checkedc-clang/pull/56"},"issue":{"href":"https://api.github.com/repos/Microsoft/checkedc-clang/issues/56"},"comments":{"href":"https://api.github.com/repos/Microsoft/checkedc-clang/issues/56/comments"},"review_comments":{"href":"https://api.github.com/repos/Microsoft/checkedc-clang/pulls/56/comments"},"review_comment":{"href":"https://api.github.com/repos/Microsoft/checkedc-clang/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Microsoft/checkedc-clang/pulls/56/commits"},"statuses":{"href":"https://api.github.com/repos/Microsoft/checkedc-clang/statuses/ba0c942eada53825baebe48813c68fa95e123592"}}}}
{"actor":{"display_login":"dtarditi"}}