Page MenuHomePhabricator

erik.pilkington (Erik Pilkington)
User

Projects

User does not belong to any projects.

User Details

User Since
Feb 2 2016, 10:56 AM (163 w, 4 d)

Recent Activity

Yesterday

erik.pilkington added a comment to D58797: [Sema] Add some compile time _FORTIFY_SOURCE diagnostics.

This is causing false positive warnings for the Linux kernel:
https://github.com/ClangBuiltLinux/linux/issues/423
:(

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/statfs.c#n128
Consider this untested case (when the condition is false):

	if (sizeof(buf) == sizeof(*st))
		memcpy(&buf, st, sizeof(*st));

fs/statfs.c:129:3: warning: 'memcpy' will always overflow; destination buffer has size 64, but size argument is 88 [-Wfortify-source]

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/statfs.c#n169, too.

Fri, Mar 22, 12:16 PM · Restricted Project

Thu, Mar 21

erik.pilkington created D59670: [Sema] Fix an assert when a block captures a constexpr local.
Thu, Mar 21, 2:32 PM · Restricted Project

Wed, Mar 20

erik.pilkington committed rG8ca6ab33b7d2: Add a __has_extension check for '#pragma clang attribute' as an external… (authored by erik.pilkington).
Add a __has_extension check for '#pragma clang attribute' as an external…
Wed, Mar 20, 12:27 PM
erik.pilkington committed rG13ee62f7d7ee: [Sema] Deduplicate some availability checking logic (authored by erik.pilkington).
[Sema] Deduplicate some availability checking logic
Wed, Mar 20, 12:27 PM

Tue, Mar 19

erik.pilkington committed rG02d5fb1a6efb: Add a spelling of pass_object_size that uses __builtin_dynamic_object_size (authored by erik.pilkington).
Add a spelling of pass_object_size that uses __builtin_dynamic_object_size
Tue, Mar 19, 1:47 PM

Mon, Mar 18

erik.pilkington added a comment to D59523: Thread Safety: also look at ObjC methods.

I don't understand this code at all, but what about BlockDecl?

Mon, Mar 18, 5:09 PM · Restricted Project
erik.pilkington committed rGb6e16ea006a2: [Sema] Add some compile time _FORTIFY_SOURCE diagnostics (authored by erik.pilkington).
[Sema] Add some compile time _FORTIFY_SOURCE diagnostics
Mon, Mar 18, 12:24 PM
erik.pilkington requested review of D59394: [Sema] De-duplicate some availability checking logic.

I can confirm this fixed my original problem. It's also close to the patch I attempted writing myself earlier this week -- but this one is better of course.

Mon, Mar 18, 11:46 AM · Restricted Project, Restricted Project

Fri, Mar 15

erik.pilkington added inline comments to D58757: Add a version of the pass_object_size attribute that works with builtin_dynamic_object_size.
Fri, Mar 15, 3:58 PM · Restricted Project
erik.pilkington updated the diff for D58757: Add a version of the pass_object_size attribute that works with builtin_dynamic_object_size.

Address review comments.

Fri, Mar 15, 3:58 PM · Restricted Project

Thu, Mar 14

erik.pilkington created D59394: [Sema] De-duplicate some availability checking logic.
Thu, Mar 14, 4:08 PM · Restricted Project, Restricted Project
erik.pilkington added a comment to D58514: Avoid needlessly copying blocks that initialize or are assigned to local auto variables to the heap.

There is no way in the existing ABI for copying a block to cause other references to the block to become references to the heap block. We do do that for __block variables, but not for block objects themselves.

Do you think thats worth doing? We could add a forwarding pointer to the end of a block literal on the stack (after all the captures) and flip an unused bit to track it, preserving ABI. Seems like now that we're delaying _Block_copyies this might be a bigger issue.

We've always delayed _Block_copy in a bunch of places. Now we're just delaying it in a place that ARC used to be more conservative about.

I guess we could actually make forwarding work at some code-size cost (functions that emitted forwardable blocks would have to zero the forwarding slot and release it when destroying the stack copy). But it'd just silently do nothing without a runtime update, so it'd be somewhat treacherous, especially after a couple of releases: e.g. if we made the runtime change in macOS 20 Eugene O'Neill National Historic Site, and Chromium eventually only ran tests on macOS 20 and higher but still supported deploying to macOS 19 San Francisco Maritime National Historical Park, then Chromium might not catch that it was still necessary to include an explicit copy here.

Thu, Mar 14, 12:21 PM · Restricted Project
erik.pilkington committed rG3689caebecfa: [Sema] Fix a use-after-free of a _Nonnull ParsedAttr (authored by erik.pilkington).
[Sema] Fix a use-after-free of a _Nonnull ParsedAttr
Thu, Mar 14, 11:40 AM
erik.pilkington added a comment to D58514: Avoid needlessly copying blocks that initialize or are assigned to local auto variables to the heap.

There is no way in the existing ABI for copying a block to cause other references to the block to become references to the heap block. We do do that for __block variables, but not for block objects themselves.

Thu, Mar 14, 11:17 AM · Restricted Project

Wed, Mar 13

erik.pilkington added inline comments to D58797: [Sema] Add some compile time _FORTIFY_SOURCE diagnostics.
Wed, Mar 13, 6:10 PM · Restricted Project
erik.pilkington updated the diff for D58797: [Sema] Add some compile time _FORTIFY_SOURCE diagnostics.

Address review comments. Thanks!

Wed, Mar 13, 6:09 PM · Restricted Project
erik.pilkington added inline comments to D59223: Objective-C++11: Support static_assert() in @interface/@implementation ivar lists and method declarations.
Wed, Mar 13, 4:09 PM · Restricted Project
erik.pilkington committed rG02886e547649: Revert "Add a new attribute, fortify_stdlib" (authored by erik.pilkington).
Revert "Add a new attribute, fortify_stdlib"
Wed, Mar 13, 2:37 PM
erik.pilkington updated subscribers of D57918: Add an attribute that causes clang to emit fortified calls to C stdlib functions.

I reverted this in r356103:

Wed, Mar 13, 2:37 PM · Restricted Project, Restricted Project
erik.pilkington accepted D59223: Objective-C++11: Support static_assert() in @interface/@implementation ivar lists and method declarations.

LGTM, after one more comment in Features.def :)

Wed, Mar 13, 2:20 PM · Restricted Project
erik.pilkington created D59327: [Sema] Fix a use-after-free of a _Nonnull ParsedAttr.
Wed, Mar 13, 1:55 PM · Restricted Project, Restricted Project
erik.pilkington committed rG83e539b75c8d: Fix a failing test. (authored by erik.pilkington).
Fix a failing test.
Wed, Mar 13, 12:22 PM
erik.pilkington committed rGfcc53eedab6c: [Parse] Parse '#pragma clang attribute' as an external-declaration (authored by erik.pilkington).
[Parse] Parse '#pragma clang attribute' as an external-declaration
Wed, Mar 13, 11:32 AM

Tue, Mar 12

erik.pilkington created D59282: [Parse] Parse '#pragma clang attribute' as an external-declaration.
Tue, Mar 12, 5:54 PM · Restricted Project, Restricted Project

Mon, Mar 11

erik.pilkington added inline comments to D59223: Objective-C++11: Support static_assert() in @interface/@implementation ivar lists and method declarations.
Mon, Mar 11, 4:16 PM · Restricted Project

Thu, Feb 28

erik.pilkington created D58797: [Sema] Add some compile time _FORTIFY_SOURCE diagnostics.
Thu, Feb 28, 3:04 PM · Restricted Project

Wed, Feb 27

erik.pilkington created D58757: Add a version of the pass_object_size attribute that works with builtin_dynamic_object_size.
Wed, Feb 27, 8:24 PM · Restricted Project
erik.pilkington committed rG53e43f4d9e8e: [CodeGen] Fix some broken IR generated by -fsanitize=unsigned-integer-overflow (authored by erik.pilkington).
[CodeGen] Fix some broken IR generated by -fsanitize=unsigned-integer-overflow
Wed, Feb 27, 4:48 PM
erik.pilkington updated the diff for D58744: [CodeGen] Fix some broken IR generated by -fsanitize=unsigned-integer-overflow.

Use atomicPHI->getParent() instead of tracking the block.

Wed, Feb 27, 4:30 PM · Restricted Project, Restricted Project
erik.pilkington added inline comments to D58744: [CodeGen] Fix some broken IR generated by -fsanitize=unsigned-integer-overflow.
Wed, Feb 27, 4:17 PM · Restricted Project, Restricted Project
erik.pilkington updated the diff for D58744: [CodeGen] Fix some broken IR generated by -fsanitize=unsigned-integer-overflow.

Use FileCheck in the test, NFC.

Wed, Feb 27, 3:54 PM · Restricted Project, Restricted Project
erik.pilkington created D58744: [CodeGen] Fix some broken IR generated by -fsanitize=unsigned-integer-overflow.
Wed, Feb 27, 3:09 PM · Restricted Project, Restricted Project

Mon, Feb 25

erik.pilkington committed rG55e703a5504c: [CodeGenObjC] Fix a nullptr dyn_cast (authored by erik.pilkington).
[CodeGenObjC] Fix a nullptr dyn_cast
Mon, Feb 25, 1:36 PM

Feb 15 2019

erik.pilkington committed rGf6e77311502c: Fix some tests I broke in r354190 (authored by erik.pilkington).
Fix some tests I broke in r354190
Feb 15 2019, 5:53 PM
erik.pilkington committed rGeac7c3ffaf5d: [Sema] Diagnose floating point conversions based on target semantics (authored by erik.pilkington).
[Sema] Diagnose floating point conversions based on target semantics
Feb 15 2019, 5:12 PM

Feb 14 2019

erik.pilkington accepted D57075: [ObjC] For type substitution in generics use a regular recursive type visitor..

LGTM too, I agree this should be NFC with the parent commit.

Feb 14 2019, 4:14 PM · Restricted Project
erik.pilkington accepted D57270: [ObjC] Fix non-canonical types preventing type arguments substitution..

LGTM!

Feb 14 2019, 4:12 PM · Restricted Project
erik.pilkington committed rGd5b017d601b4: [Sema] Fix-up a -Wfloat-conversion diagnostic (authored by erik.pilkington).
[Sema] Fix-up a -Wfloat-conversion diagnostic
Feb 14 2019, 2:48 PM
erik.pilkington added inline comments to D58145: [Sema] Fix a bogus -Wconversion warning.
Feb 14 2019, 2:43 PM · Restricted Project, Restricted Project
erik.pilkington created D58254: [Sema] Diagnose floating point conversions based on target semantics.
Feb 14 2019, 2:43 PM · Restricted Project
erik.pilkington committed rGec389b0838b9: [CodeGenObjC] Emit [[X alloc] init] as objc_alloc_init(X) when available (authored by erik.pilkington).
[CodeGenObjC] Emit [[X alloc] init] as objc_alloc_init(X) when available
Feb 14 2019, 12:04 PM

Feb 13 2019

erik.pilkington added inline comments to D57936: [CodeGenObjC] When available, emit a direct call to objc_alloc_init(cls) instead of [objc_alloc(cls) init].
Feb 13 2019, 6:25 PM · Restricted Project
erik.pilkington updated the diff for D57936: [CodeGenObjC] When available, emit a direct call to objc_alloc_init(cls) instead of [objc_alloc(cls) init].

Address review comments.

Feb 13 2019, 6:22 PM · Restricted Project
erik.pilkington requested review of D58145: [Sema] Fix a bogus -Wconversion warning.
Feb 13 2019, 4:52 PM · Restricted Project, Restricted Project
erik.pilkington updated the diff for D58145: [Sema] Fix a bogus -Wconversion warning.

I was taking a final look at this, and I noticed that we were sending the wrong arguments to DiagnoseFloatingImpCast. The expression argument is meant to be the source expression with floating-point type, but we were sending in the compound assignment operator, with integral type. Similarly, the type argument is meant to be the (integral) destination type, but we were sending in the floating-point RHS type. This lead to bad diagnostics:

t.c:3:7: warning: implicit conversion turns floating-point number into integer: 'int' to 'double' [-Wfloat-conversion]
    integral_value += double_value;

When really it ought to be 'double' to 'int'. Fix this by just directly calling DiagnoseImpCast, since we don't really need anything DiagnoseFloatingImpCast does anyways.

Feb 13 2019, 4:52 PM · Restricted Project, Restricted Project
erik.pilkington committed rG81d3f45137e1: [Sema] Delay checking whether objc_designated_initializer is being applied to… (authored by erik.pilkington).
[Sema] Delay checking whether objc_designated_initializer is being applied to…
Feb 13 2019, 12:33 PM
erik.pilkington added inline comments to D58152: [Sema] Delay checking whether objc_designated_initializer is being applied to an init method.
Feb 13 2019, 11:47 AM · Restricted Project
erik.pilkington updated the diff for D58152: [Sema] Delay checking whether objc_designated_initializer is being applied to an init method.

Remove an auto.

Feb 13 2019, 11:47 AM · Restricted Project
erik.pilkington added a comment to D58004: Bit-casting object representations (p0476r2).

@erik.pilkington friendly ping, have you made any progress on compiler support?

Feb 13 2019, 10:44 AM

Feb 12 2019

erik.pilkington created D58152: [Sema] Delay checking whether objc_designated_initializer is being applied to an init method.
Feb 12 2019, 3:23 PM · Restricted Project
erik.pilkington committed rG4ecd7a90a604: Fix auto-upgrade for the new parameter to llvm.objectsize (authored by erik.pilkington).
Fix auto-upgrade for the new parameter to llvm.objectsize
Feb 12 2019, 1:56 PM
erik.pilkington created D58145: [Sema] Fix a bogus -Wconversion warning.
Feb 12 2019, 1:33 PM · Restricted Project, Restricted Project

Feb 11 2019

erik.pilkington updated the diff for D58071: Fix auto-upgrade for the new parameter to llvm.objectsize.

Use a .bc file in the test. @steven_wu, LG?

Feb 11 2019, 4:39 PM · Restricted Project
erik.pilkington committed rGe3cd735ea637: Add a new attribute, fortify_stdlib (authored by erik.pilkington).
Add a new attribute, fortify_stdlib
Feb 11 2019, 3:22 PM
erik.pilkington added inline comments to D57918: Add an attribute that causes clang to emit fortified calls to C stdlib functions.
Feb 11 2019, 3:21 PM · Restricted Project, Restricted Project
erik.pilkington added a comment to D56761: Add a parameter to the objectsize intrinsic that controls whether to evaluate size dynamically.
In D56761#1391118, @vsk wrote:

I think this breaks bitcode backwards compatibility:

Callsite was not defined with variable arguments!
i64 (i8*, i1, i1)* @llvm.objectsize.i64.p0i8
Feb 11 2019, 1:15 PM · Restricted Project
erik.pilkington created D58071: Fix auto-upgrade for the new parameter to llvm.objectsize.
Feb 11 2019, 1:14 PM · Restricted Project
erik.pilkington updated the diff for D57918: Add an attribute that causes clang to emit fortified calls to C stdlib functions.

Link to the GCC docs for __builitn_object_size.

Feb 11 2019, 11:31 AM · Restricted Project, Restricted Project
erik.pilkington added inline comments to D57918: Add an attribute that causes clang to emit fortified calls to C stdlib functions.
Feb 11 2019, 11:24 AM · Restricted Project, Restricted Project

Feb 8 2019

erik.pilkington added inline comments to D57918: Add an attribute that causes clang to emit fortified calls to C stdlib functions.
Feb 8 2019, 12:32 PM · Restricted Project, Restricted Project
erik.pilkington updated the diff for D57918: Add an attribute that causes clang to emit fortified calls to C stdlib functions.

Describe what the arguments do in the docs.

Feb 8 2019, 12:32 PM · Restricted Project, Restricted Project
erik.pilkington updated the diff for D57918: Add an attribute that causes clang to emit fortified calls to C stdlib functions.

Address John's comments.

Feb 8 2019, 11:51 AM · Restricted Project, Restricted Project
erik.pilkington added inline comments to D57918: Add an attribute that causes clang to emit fortified calls to C stdlib functions.
Feb 8 2019, 11:51 AM · Restricted Project, Restricted Project

Feb 7 2019

erik.pilkington updated the summary of D57918: Add an attribute that causes clang to emit fortified calls to C stdlib functions.
Feb 7 2019, 6:51 PM · Restricted Project, Restricted Project
erik.pilkington created D57936: [CodeGenObjC] When available, emit a direct call to objc_alloc_init(cls) instead of [objc_alloc(cls) init].
Feb 7 2019, 6:38 PM · Restricted Project
erik.pilkington created D57918: Add an attribute that causes clang to emit fortified calls to C stdlib functions.
Feb 7 2019, 11:37 AM · Restricted Project, Restricted Project

Feb 4 2019

erik.pilkington committed rG3062887c9956: [SemaObjC] Don't infer the availabilty of +new from -init if the receiver has… (authored by erik.pilkington).
[SemaObjC] Don't infer the availabilty of +new from -init if the receiver has…
Feb 4 2019, 3:31 PM
erik.pilkington created D57712: [SemaObjC] Don't infer the availabilty of messages to +new from -init if the receiver has Class type.
Feb 4 2019, 1:55 PM · Restricted Project

Feb 3 2019

erik.pilkington abandoned D57634: Support for GCC's `__builtin_va_arg_pack{,_len}`.

Tentatively marking as abandoned, Eli suggested a different approach in the LLVM review which I'm going to look into.

Feb 3 2019, 11:26 AM · Restricted Project
erik.pilkington abandoned D57635: Add a new intrinsic and attribute to implement `__builtin_va_arg_pack{,_len}` in Clang.

In terms of the general approach, what problem are we really trying to solve? The ability to forward a variadic argument list on to another variadic function doesn't grant any semantic power if you control the implementation; you can always just use a va_list instead (e.g. convert printf to vprintf). In C++, you can also just use a variadic template. And if the goal is just to allow the compiler to emit fortified calls to known library functions, it would be more straightforward to add a flag to implicitly instrument code.

I guess if you specifically want to add a feature to C which allows you to write, in C, a function (not a macro) which wraps an interface you don't control that takes a variadic argument list, you can't do much better than __builtin_va_arg_pack().

Feb 3 2019, 11:25 AM · Restricted Project

Feb 2 2019

erik.pilkington added a comment to D57635: Add a new intrinsic and attribute to implement `__builtin_va_arg_pack{,_len}` in Clang.

Maybe a silly question, but is this actually worth implementing, at this point? The new IR additions have unusual semantics that transforms are continually going to trip over; I'm not convinced you found all the places that currently need checks. And there isn't any existing code we need to be compatible with, I think. If we were designing a frontend extension from scratch, we would probably take a different approach.

Feb 2 2019, 3:36 PM · Restricted Project

Feb 1 2019

erik.pilkington added a reviewer for D57634: Support for GCC's `__builtin_va_arg_pack{,_len}`: rjmccall.
Feb 1 2019, 7:33 PM · Restricted Project
erik.pilkington added a parent revision for D57634: Support for GCC's `__builtin_va_arg_pack{,_len}`: D57635: Add a new intrinsic and attribute to implement `__builtin_va_arg_pack{,_len}` in Clang.
Feb 1 2019, 7:31 PM · Restricted Project
erik.pilkington created D57635: Add a new intrinsic and attribute to implement `__builtin_va_arg_pack{,_len}` in Clang.
Feb 1 2019, 7:31 PM · Restricted Project
erik.pilkington created D57634: Support for GCC's `__builtin_va_arg_pack{,_len}`.
Feb 1 2019, 7:31 PM · Restricted Project

Jan 31 2019

erik.pilkington resigned from D57345: Make clang/test/Index/pch-from-libclang.c pass in more places.

Sorry, this really seems more like @arphaman's wheelhouse. I'll ping him to take a look though.

Jan 31 2019, 8:49 AM · Restricted Project

Jan 30 2019

erik.pilkington updated the diff for D57476: [CodeGenObjC] Use an invoke instead of a call when calling `objc_alloc` or `objc_allocWithZone`.

Fix a mistake in the tests.

Jan 30 2019, 2:54 PM
erik.pilkington added inline comments to D57476: [CodeGenObjC] Use an invoke instead of a call when calling `objc_alloc` or `objc_allocWithZone`.
Jan 30 2019, 2:51 PM
erik.pilkington created D57476: [CodeGenObjC] Use an invoke instead of a call when calling `objc_alloc` or `objc_allocWithZone`.
Jan 30 2019, 2:40 PM
erik.pilkington added a comment to D52339: Support enums with a fixed underlying type in all language modes.

@erik.pilkington the change to make objc_fixed_enum true in non-ObjC mode turned out to be problematic for our adoption. Could you please fix it before LLVM8 is wrapped up so that we don't ship this extension as on by default for all language modes?

Jan 30 2019, 1:14 PM

Jan 24 2019

erik.pilkington added inline comments to D57064: [Sema] Improve a -Warray-bounds diagnostic.
Jan 24 2019, 3:51 PM
erik.pilkington added inline comments to D57075: [ObjC] For type substitution in generics use a regular recursive type visitor..
Jan 24 2019, 12:41 PM · Restricted Project

Jan 23 2019

erik.pilkington added a comment to D56760: Add a new builtin: __builtin_dynamic_object_size.

I don't see any evidence of that. Jakub said that modes 0-3 should stay static, but that's in line with what we suggested.

Jan 23 2019, 12:30 PM
erik.pilkington added a comment to D56760: Add a new builtin: __builtin_dynamic_object_size.
In D56760#1367915, @jfb wrote:

@rsmith, what do you think and how do you want to proceed? We think something like what Erik implemented will catch things _FORTIFY_SOURCE currently cannot. We agree there are valid code generation complexity concerns, yet it seems like having a different spelling for the builtin helps mitigate those concerns.

Jan 23 2019, 10:22 AM

Jan 22 2019

erik.pilkington created D57064: [Sema] Improve a -Warray-bounds diagnostic.
Jan 22 2019, 12:46 PM

Jan 21 2019

erik.pilkington accepted D57035: Add missing include (cstdlib) to Demangle.h.

LGTM!

Jan 21 2019, 5:13 PM

Jan 18 2019

erik.pilkington accepted D56892: Add a priority field to availability attributes to prioritize explicit attributes from declaration over attributes from '#pragma clang attribute'.

LGTM, thanks!

Jan 18 2019, 2:56 PM
erik.pilkington added a comment to D56892: Add a priority field to availability attributes to prioritize explicit attributes from declaration over attributes from '#pragma clang attribute'.

This seems pretty reasonable to me. I agree that a more general mechanism to override #pca (/implicit) attributes would be pretty useful, but I guess there is no need to jump the gun on that.

Jan 18 2019, 1:53 PM
erik.pilkington updated the diff for D56879: [Sema] Suppress a warning about a forward-declared fixed enum in C mode.

Add a -pedantic RUN line.

Jan 18 2019, 9:56 AM

Jan 17 2019

erik.pilkington created D56879: [Sema] Suppress a warning about a forward-declared fixed enum in C mode.
Jan 17 2019, 2:36 PM
erik.pilkington added inline comments to D56855: Add ___Z demangling to new common demangle function.
Jan 17 2019, 1:44 PM
erik.pilkington added inline comments to D56721: Move llvm-objdump demangle function into demangler library.
Jan 17 2019, 1:42 PM
erik.pilkington accepted D53538: NFC: Reorganize the demangler a bit.

I think I'll just land this, I have some dependent work that I want to do.

Jan 17 2019, 12:40 PM
erik.pilkington added inline comments to D56721: Move llvm-objdump demangle function into demangler library.
Jan 17 2019, 12:32 PM
erik.pilkington added inline comments to D56721: Move llvm-objdump demangle function into demangler library.
Jan 17 2019, 12:25 PM
erik.pilkington accepted D56855: Add ___Z demangling to new common demangle function.

LGTM, thanks for following up!

Jan 17 2019, 9:08 AM

Jan 16 2019

erik.pilkington updated the diff for D56802: [CodeGenObjC] Treat ivar offsets variables as constant if they refer to ivars of a direct subclass of NSObject with an @implementation.

Sure, that makes sense. The new patch makes the global constant again.

Jan 16 2019, 11:10 PM
erik.pilkington accepted D56816: [ObjC] Follow-up r350768 and allow the use of unavailable methods that are declared in a parent class from within the @implementation context.

LGTM, thanks!

Jan 16 2019, 8:51 PM
erik.pilkington added inline comments to D56816: [ObjC] Follow-up r350768 and allow the use of unavailable methods that are declared in a parent class from within the @implementation context.
Jan 16 2019, 4:24 PM
erik.pilkington updated the diff for D56802: [CodeGenObjC] Treat ivar offsets variables as constant if they refer to ivars of a direct subclass of NSObject with an @implementation.

Address review comments: move the check to a function, and call it when emitting the ivar offset instead of when we emit the global. Thanks!

Jan 16 2019, 4:12 PM