{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/coreclr/issues/10956","repository_url":"https://api.github.com/repos/dotnet/coreclr","labels_url":"https://api.github.com/repos/dotnet/coreclr/issues/10956/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/coreclr/issues/10956/comments","events_url":"https://api.github.com/repos/dotnet/coreclr/issues/10956/events","html_url":"https://github.com/dotnet/coreclr/pull/10956","id":221700686,"number":10956,"title":"Jit: fix unnecessary null checks in some field accesses","user":{"login":"AndyAyersMS","id":10121823,"avatar_url":"https://avatars2.githubusercontent.com/u/10121823?v=3","gravatar_id":"","url":"https://api.github.com/users/AndyAyersMS","html_url":"https://github.com/AndyAyersMS","followers_url":"https://api.github.com/users/AndyAyersMS/followers","following_url":"https://api.github.com/users/AndyAyersMS/following{/other_user}","gists_url":"https://api.github.com/users/AndyAyersMS/gists{/gist_id}","starred_url":"https://api.github.com/users/AndyAyersMS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndyAyersMS/subscriptions","organizations_url":"https://api.github.com/users/AndyAyersMS/orgs","repos_url":"https://api.github.com/users/AndyAyersMS/repos","events_url":"https://api.github.com/users/AndyAyersMS/events{/privacy}","received_events_url":"https://api.github.com/users/AndyAyersMS/received_events","type":"User","site_admin":false},"labels":[{"id":197462704,"url":"https://api.github.com/repos/dotnet/coreclr/labels/cla-already-signed","name":"cla-already-signed","color":"009800","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2017-04-13T22:39:34Z","updated_at":"2017-04-14T00:13:23Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/dotnet/coreclr/pulls/10956","html_url":"https://github.com/dotnet/coreclr/pull/10956","diff_url":"https://github.com/dotnet/coreclr/pull/10956.diff","patch_url":"https://github.com/dotnet/coreclr/pull/10956.patch"},"body":"Morph was sometimes passing the existing MorphAddressContext down\r\nto fgMorphField even when the field access was for a field value.\r\nIf that context contained indefinite offsets, morph would then\r\ninsert an explicit null check on the object pointer for the field\r\naccess.\r\n\r\nTypically the field offset is small enough that this explicit check\r\nis not needed. The implicit check done when fetching the field's value\r\nis sufficient protection.\r\n\r\nThe fix is to have `fgMorphSmpOp` clear out the context for child\r\n`GT_FIELD` nodes, unless the field parent is a `GT_ADDR`. Note\r\nif there is an `op2` node the parent cannot be `GT_ADDR` so these\r\nfield children always get an empty context.\r\n\r\nNo tests added since this kicks in reasonably frequently in corelib and\r\nelsewhere in frameworks.\r\n\r\nCloses #10942."},"comment":{"url":"https://api.github.com/repos/dotnet/coreclr/issues/comments/294052894","html_url":"https://github.com/dotnet/coreclr/pull/10956#issuecomment-294052894","issue_url":"https://api.github.com/repos/dotnet/coreclr/issues/10956","id":294052894,"user":{"login":"AndyAyersMS","id":10121823,"avatar_url":"https://avatars2.githubusercontent.com/u/10121823?v=3","gravatar_id":"","url":"https://api.github.com/users/AndyAyersMS","html_url":"https://github.com/AndyAyersMS","followers_url":"https://api.github.com/users/AndyAyersMS/followers","following_url":"https://api.github.com/users/AndyAyersMS/following{/other_user}","gists_url":"https://api.github.com/users/AndyAyersMS/gists{/gist_id}","starred_url":"https://api.github.com/users/AndyAyersMS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndyAyersMS/subscriptions","organizations_url":"https://api.github.com/users/AndyAyersMS/orgs","repos_url":"https://api.github.com/users/AndyAyersMS/repos","events_url":"https://api.github.com/users/AndyAyersMS/events{/privacy}","received_events_url":"https://api.github.com/users/AndyAyersMS/received_events","type":"User","site_admin":false},"created_at":"2017-04-14T00:13:23Z","updated_at":"2017-04-14T00:13:23Z","body":"Let's see if the failure repros\r\n@dotnet-bot retest Tizen armel Cross Release Build"}}
{"actor":{"display_login":"AndyAyersMS"}}