{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/llilc/issues/879","labels_url":"https://api.github.com/repos/dotnet/llilc/issues/879/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/llilc/issues/879/comments","events_url":"https://api.github.com/repos/dotnet/llilc/issues/879/events","html_url":"https://github.com/dotnet/llilc/pull/879","id":108954662,"number":879,"title":"Fix types of IRNodes in interlocked functions","user":{"login":"adiaaida","id":9666644,"avatar_url":"https://avatars.githubusercontent.com/u/9666644?v=3","gravatar_id":"","url":"https://api.github.com/users/adiaaida","html_url":"https://github.com/adiaaida","followers_url":"https://api.github.com/users/adiaaida/followers","following_url":"https://api.github.com/users/adiaaida/following{/other_user}","gists_url":"https://api.github.com/users/adiaaida/gists{/gist_id}","starred_url":"https://api.github.com/users/adiaaida/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adiaaida/subscriptions","organizations_url":"https://api.github.com/users/adiaaida/orgs","repos_url":"https://api.github.com/users/adiaaida/repos","events_url":"https://api.github.com/users/adiaaida/events{/privacy}","received_events_url":"https://api.github.com/users/adiaaida/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dotnet/llilc/labels/cla-already-signed","name":"cla-already-signed","color":"009800"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-09-29T20:36:21Z","updated_at":"2015-09-29T20:36:38Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/dotnet/llilc/pulls/879","html_url":"https://github.com/dotnet/llilc/pull/879","diff_url":"https://github.com/dotnet/llilc/pull/879.diff","patch_url":"https://github.com/dotnet/llilc/pull/879.patch"},"body":"This change updated interlockedCmpXchg and interlockedIntrinsicBinOp:\r\n* In interlockedCmpXchg, the Exchange IRNode and Comparand IR node must\r\n  have the same type, however, we can have cases where Exchange comes in\r\n  as a pointer. If Exchange is a pointer, we want to cast it to the same\r\n  type as Comparand.\r\n* In interlockedIntrinsicBinOp, we call CreateAtomicRMW, which assumes\r\n  that Arg1 is a pointer to the type of Arg2, however, we have instances\r\n  where Arg1 is a pointer to a pointer of the type of Arg2, so we need\r\n  to cast it to a pointer, like we do with Destination in\r\n  interlockedCmpXchg."},"comment":{"url":"https://api.github.com/repos/dotnet/llilc/issues/comments/144184271","html_url":"https://github.com/dotnet/llilc/pull/879#issuecomment-144184271","issue_url":"https://api.github.com/repos/dotnet/llilc/issues/879","id":144184271,"user":{"login":"adiaaida","id":9666644,"avatar_url":"https://avatars.githubusercontent.com/u/9666644?v=3","gravatar_id":"","url":"https://api.github.com/users/adiaaida","html_url":"https://github.com/adiaaida","followers_url":"https://api.github.com/users/adiaaida/followers","following_url":"https://api.github.com/users/adiaaida/following{/other_user}","gists_url":"https://api.github.com/users/adiaaida/gists{/gist_id}","starred_url":"https://api.github.com/users/adiaaida/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adiaaida/subscriptions","organizations_url":"https://api.github.com/users/adiaaida/orgs","repos_url":"https://api.github.com/users/adiaaida/repos","events_url":"https://api.github.com/users/adiaaida/events{/privacy}","received_events_url":"https://api.github.com/users/adiaaida/received_events","type":"User","site_admin":false},"created_at":"2015-09-29T20:36:38Z","updated_at":"2015-09-29T20:36:38Z","body":"@erozenfeld PTAL"}}