erik.pilkington (Erik Pilkington)
User

Projects

User does not belong to any projects.

User Details

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

Recent Activity

Yesterday

erik.pilkington added a comment to D43578: -ftime-report switch support in Clang.

Hi, thanks for working on this! Having better timers in clang would be really great.

Fri, Feb 23, 7:46 AM

Sat, Feb 3

erik.pilkington updated the diff for D41889: [libcxxabi][demangler] Clean up and llvm-ify the type parser.

Rebase and remove the qualifier substitution bug fix.

Sat, Feb 3, 11:44 AM

Thu, Feb 1

erik.pilkington added a comment to D42776: [Sema] Fix an assertion failure in constant expression evaluation of calls to functions with default arguments.

Hi Akira, thanks for working on this!

Thu, Feb 1, 1:10 PM

Wed, Jan 31

erik.pilkington updated the diff for D41887: [libcxxabi][demangler] Clean up and llvm-ify the expression parser.

Rebase onto r323906. Most of this patch is just a mechanical transformation to the parser to use the new API, the interesting part is just the changes to the Db struct.

Wed, Jan 31, 2:25 PM

Thu, Jan 25

erik.pilkington added inline comments to D41885: [libcxxabi][demangler] Improve handling of variadic templates.
Thu, Jan 25, 7:38 PM
erik.pilkington updated the diff for D41885: [libcxxabi][demangler] Improve handling of variadic templates.

In this new patch:

  • Make the cached values use a 3-way bool type, and default it to false. This simplifies all the Node ctors.
  • Remove some minor style fixes to clean up the diff.
Thu, Jan 25, 7:37 PM

Jan 22 2018

erik.pilkington added a comment to D41885: [libcxxabi][demangler] Improve handling of variadic templates.

Ping!

Jan 22 2018, 10:26 AM

Jan 9 2018

erik.pilkington added a dependent revision for D41887: [libcxxabi][demangler] Clean up and llvm-ify the expression parser: D41889: [libcxxabi][demangler] Clean up and llvm-ify the type parser.
Jan 9 2018, 4:03 PM
erik.pilkington added a dependency for D41889: [libcxxabi][demangler] Clean up and llvm-ify the type parser: D41887: [libcxxabi][demangler] Clean up and llvm-ify the expression parser.
Jan 9 2018, 4:03 PM
erik.pilkington added a dependency for D41887: [libcxxabi][demangler] Clean up and llvm-ify the expression parser: D41885: [libcxxabi][demangler] Improve handling of variadic templates.
Jan 9 2018, 4:02 PM
erik.pilkington added a dependent revision for D41885: [libcxxabi][demangler] Improve handling of variadic templates: D41887: [libcxxabi][demangler] Clean up and llvm-ify the expression parser.
Jan 9 2018, 4:02 PM
erik.pilkington created D41889: [libcxxabi][demangler] Clean up and llvm-ify the type parser.
Jan 9 2018, 3:50 PM
erik.pilkington created D41887: [libcxxabi][demangler] Clean up and llvm-ify the expression parser.
Jan 9 2018, 3:43 PM
erik.pilkington added inline comments to D41885: [libcxxabi][demangler] Improve handling of variadic templates.
Jan 9 2018, 3:27 PM
erik.pilkington created D41885: [libcxxabi][demangler] Improve handling of variadic templates.
Jan 9 2018, 3:19 PM

Dec 14 2017

erik.pilkington updated the diff for D41261: [libcxxabi][demangler] Special case demangling for pass_object_size attribute.

Add a testcase with pass_object_size[0-3].

Dec 14 2017, 10:04 PM
erik.pilkington created D41261: [libcxxabi][demangler] Special case demangling for pass_object_size attribute.
Dec 14 2017, 3:13 PM

Dec 8 2017

erik.pilkington added a comment to D40372: [ExprConstant] Fix assert when initializing constexpr array.

Ping!

Dec 8 2017, 6:57 AM

Nov 29 2017

erik.pilkington added a comment to D40566: Check if MemberExpr arguments are type-dependent..

Hi, thanks for working on this!
Why don't we just set the TypeDependent bit to false when building the underlying MemberExpr here? Based on the section of the standard you quoted that node shouldn't be considered type-dependent, but it is by clang. I think this patch is just hiding that underlying problem by fishing out the real type-dependence after constructing the MemberExpr when really that information should be included in the MemberExpr to begin with.
Thanks,
Erik

Nov 29 2017, 10:20 AM

Nov 24 2017

erik.pilkington added a comment to D40445: [C++17] Allow an empty expression in an if init statement.

Hi, thanks for working on this!
Can you add tests to make sure that this also works with switch statements (which also have this bug), and not with while? Also, it makes it a lot easier to review these patches if you add context lines to the diff.
Thanks,
Erik

Nov 24 2017, 11:41 AM · Restricted Project

Nov 22 2017

erik.pilkington added a comment to D40284: [Sema] Improve diagnostics for template arg deduction.

This looks correct, but I definitely agree that RAII would make this a lot nicer. Have you considered adding a CancelableSaveAndRestore or something to SaveAndRestore.h? It seems useful and generic enough to make it worthwhile. Otherwise, you could just write your own RAII object special-cased to handle this. A less intrusive way of doing this might be to wrap calls to this function with another that checks if the return value is TDK_Success, and if so restores these fields.

Nov 22 2017, 2:00 PM
erik.pilkington created D40372: [ExprConstant] Fix assert when initializing constexpr array.
Nov 22 2017, 11:22 AM

Nov 21 2017

erik.pilkington added inline comments to D40279: [libcxxabi][demangler] Add demangling for __attribute__((abi_tag)).
Nov 21 2017, 7:20 AM
erik.pilkington updated the diff for D40279: [libcxxabi][demangler] Add demangling for __attribute__((abi_tag)).

In this new patch:

  • Update the comment BNF to show the new attribute, fix comment formatting
  • Move call to parse_abi_tag_seq() from parse_unqualified_name() to parse_operator_name() to more closely model BNF
Nov 21 2017, 7:17 AM

Nov 20 2017

erik.pilkington created D40279: [libcxxabi][demangler] Add demangling for __attribute__((abi_tag)).
Nov 20 2017, 7:17 PM

Nov 17 2017

erik.pilkington accepted D39913: [ObjC] warn about availability attributes missing from a method's declaration when they're specified for a method's definition .

It's harder as we don't know the distinction between declaration/definition at merge time. Right now the C++ implementation of this warning actually checks the attributes too late, after they're merged. I'll take out the C++/C support completely and keep to ObjC in this patch for simplicity. The rest can be supported later.

Nov 17 2017, 6:31 AM

Nov 10 2017

erik.pilkington added a comment to D39913: [ObjC] warn about availability attributes missing from a method's declaration when they're specified for a method's definition .

Any thoughts on having this for regular functions and C++ member functions? Seems just as useful there.

Nov 10 2017, 1:15 PM

Oct 3 2017

erik.pilkington added inline comments to D38483: [ExprConstant] Allow constexpr ctor to modify non static data members in body.
Oct 3 2017, 8:00 AM
erik.pilkington updated the diff for D38483: [ExprConstant] Allow constexpr ctor to modify non static data members in body.

Thanks for the feedback, in this new patch:

  • insert EvaluatingDecl into EvaluatingConstructors instead of checking it in isEvaluatingDecl()
  • Add a comment to the typedef
Oct 3 2017, 8:00 AM

Oct 2 2017

erik.pilkington created D38483: [ExprConstant] Allow constexpr ctor to modify non static data members in body.
Oct 2 2017, 4:41 PM

Aug 17 2017

erik.pilkington updated the diff for D36777: [Sema] Don't emit -Wunguarded-availability for switch cases.

Ah, good point. This new patch does that.
Thanks,
Erik

Aug 17 2017, 9:54 AM

Aug 16 2017

erik.pilkington added a comment to D36492: [time-report] Add preprocessor timer.

This looks really usefull, thanks for working on this!

Aug 16 2017, 1:43 PM

Aug 15 2017

erik.pilkington created D36777: [Sema] Don't emit -Wunguarded-availability for switch cases.
Aug 15 2017, 5:21 PM

Aug 14 2017

erik.pilkington added a comment to D36200: [Sema] Improve some -Wunguarded-availability diagnostic messages.

Ping!

Aug 14 2017, 9:50 AM

Aug 8 2017

erik.pilkington added inline comments to D36427: [libcxxabi][demangler] Improve representation of substitutions/templates.
Aug 8 2017, 2:40 PM
erik.pilkington updated the diff for D36427: [libcxxabi][demangler] Improve representation of substitutions/templates.

Address review comments.
Thanks!
Erik

Aug 8 2017, 2:40 PM

Aug 7 2017

erik.pilkington created D36427: [libcxxabi][demangler] Improve representation of substitutions/templates.
Aug 7 2017, 1:44 PM

Aug 2 2017

erik.pilkington added a comment to D36200: [Sema] Improve some -Wunguarded-availability diagnostic messages.

This needs a test for the fixits as well, see test/FixIt/fixit-availability*

Aug 2 2017, 9:46 AM

Aug 1 2017

erik.pilkington created D36200: [Sema] Improve some -Wunguarded-availability diagnostic messages.
Aug 1 2017, 4:31 PM
erik.pilkington created D36191: [CodeGen] Don't make availability attributes imply default visibility on macos.
Aug 1 2017, 2:21 PM

Jul 27 2017

erik.pilkington updated the diff for D35159: [libcxxabi][demangler] Use an AST to represent the demangled name.

Use LLVM naming conventions for all the new stuff in this patch.

Jul 27 2017, 2:04 PM

Jul 24 2017

erik.pilkington accepted D35726: unguarded availability: add a fixit for the "annotate '...' with an availability attribute to silence" note.

LGTM, thanks for working on this!

Jul 24 2017, 9:24 AM

Jul 23 2017

erik.pilkington planned changes to D35781: [Sema] Make sure that -Wunguarded-availability emits notes at the right redeclaration.

On second thought, I think it makes more sense to do this right before we emit a diagnostic so we have the most recent redecl with all the inherited availability attributes until then. I'll put a diff up for that tomorrow!

Jul 23 2017, 9:04 PM
erik.pilkington created D35781: [Sema] Make sure that -Wunguarded-availability emits notes at the right redeclaration.
Jul 23 2017, 2:04 PM

Jul 21 2017

erik.pilkington added a comment to D35726: unguarded availability: add a fixit for the "annotate '...' with an availability attribute to silence" note.

Thanks for working on this! This looks like it would be very useful.

Jul 21 2017, 9:39 AM

Jul 17 2017

erik.pilkington updated the diff for D35159: [libcxxabi][demangler] Use an AST to represent the demangled name.

s/string_ref/StringView

Jul 17 2017, 3:34 PM

Jul 14 2017

erik.pilkington updated the diff for D35159: [libcxxabi][demangler] Use an AST to represent the demangled name.

Rebase. I don't think the issue of purging underscores from this file/libcxx should block this, if we want to discuss that cfe-dev would probably be the place. I agree that it would be nice to clang-format this file, would anyone have any problems with me committing that after this? I found the git-blame of this file to be pretty useless, almost every line just points to r184097.
Are there any other thoughts on this change?
Thanks,
Erik

Jul 14 2017, 9:44 AM

Jul 13 2017

erik.pilkington added inline comments to D35379: Add documentation for @available.
Jul 13 2017, 1:47 PM
erik.pilkington added a reviewer for D35379: Add documentation for @available: arphaman.

This looks great, thanks for working on this! LGTM, but @arphaman might have some thoughts.

Jul 13 2017, 1:31 PM

Jul 12 2017

erik.pilkington added a comment to D35159: [libcxxabi][demangler] Use an AST to represent the demangled name.

Looks like this demangler's design is similar to my demangler for Microsoft name mangling scheme (https://reviews.llvm.org/D34667). Is that a coincidence? Both demanglers create AST, stringize it using print_left/print_right (I named them write_pre/write_post), and use custom memory allocator. Looks like both demangler can share more code once both land.

Jul 12 2017, 2:04 PM

Jul 9 2017

erik.pilkington closed D35158: [libcxxabi][demangler] NFC: Don't make everything a template.

Landed as r307482 & r307481, thanks! (for some reason phab wasn't automatically closing this)

Jul 9 2017, 6:14 AM
erik.pilkington added inline comments to D35159: [libcxxabi][demangler] Use an AST to represent the demangled name.
Jul 9 2017, 6:14 AM
erik.pilkington updated the diff for D35159: [libcxxabi][demangler] Use an AST to represent the demangled name.

In this new patch:

  • Fix UB @EricWF pointed out; memmove(something, nullptr, 0) was being called.
  • Add some comments
  • rename stream -> output_stream
Jul 9 2017, 6:14 AM
erik.pilkington updated the diff for D35159: [libcxxabi][demangler] Use an AST to represent the demangled name.

Forgot to add context lines!

Jul 9 2017, 6:13 AM
erik.pilkington created D35159: [libcxxabi][demangler] Use an AST to represent the demangled name.
Jul 9 2017, 6:13 AM
erik.pilkington created D35158: [libcxxabi][demangler] NFC: Don't make everything a template.
Jul 9 2017, 6:13 AM

Jul 6 2017

erik.pilkington accepted D35061: [ObjC] Avoid the -Wunguarded-availability warnings for protocol requirements in protocol/class/category declarations.

LGTM, thanks!

Jul 6 2017, 10:39 AM
erik.pilkington added inline comments to D35061: [ObjC] Avoid the -Wunguarded-availability warnings for protocol requirements in protocol/class/category declarations.
Jul 6 2017, 10:09 AM
erik.pilkington added inline comments to D35061: [ObjC] Avoid the -Wunguarded-availability warnings for protocol requirements in protocol/class/category declarations.
Jul 6 2017, 9:46 AM

Jun 28 2017

erik.pilkington updated the diff for D33816: [Sema][ObjC] Don't allow -Wunguarded-availability to be silenced with redeclarations.

Improve diagnostics for unnamed types.

Jun 28 2017, 9:20 AM

Jun 26 2017

erik.pilkington updated the diff for D33816: [Sema][ObjC] Don't allow -Wunguarded-availability to be silenced with redeclarations.

Make the diagnostic reference the context declaration instead of the offending decl if no enclosing decl is found, fixing the diagnostic bug @arphaman pointed out.

Jun 26 2017, 8:49 AM

Jun 24 2017

erik.pilkington updated the diff for D33816: [Sema][ObjC] Don't allow -Wunguarded-availability to be silenced with redeclarations.

Improve enum diagnostics, as @arphaman suggested. This causes a bit of churn throughout the availability diagnostic machinery, if it would make it at all easier to review, I would be happy to separate out these changes.
Thanks,
Erik

Jun 24 2017, 3:32 PM

Jun 23 2017

erik.pilkington added inline comments to D34556: [libcxx] Annotate c++17 aligned new/delete operators with availability attribute.
Jun 23 2017, 8:20 AM

Jun 22 2017

erik.pilkington accepted D33606: [Sema] Fix a crash-on-invalid when a template parameter list has a class definition or non-reference class type.

LGTM!

Jun 22 2017, 5:37 PM
erik.pilkington accepted D34264: Introduce -Wunguarded-availability-new, which is like -Wunguarded-availability, except that it's enabled by default for new deployment targets.

LGTM, thanks for working on this!

Jun 22 2017, 8:09 AM

Jun 19 2017

erik.pilkington added inline comments to D34264: Introduce -Wunguarded-availability-new, which is like -Wunguarded-availability, except that it's enabled by default for new deployment targets.
Jun 19 2017, 9:30 AM

Jun 16 2017

erik.pilkington added inline comments to D34264: Introduce -Wunguarded-availability-new, which is like -Wunguarded-availability, except that it's enabled by default for new deployment targets.
Jun 16 2017, 3:57 PM

Jun 15 2017

erik.pilkington added a comment to D33816: [Sema][ObjC] Don't allow -Wunguarded-availability to be silenced with redeclarations.

Ping!

Jun 15 2017, 6:18 PM
erik.pilkington added inline comments to D34264: Introduce -Wunguarded-availability-new, which is like -Wunguarded-availability, except that it's enabled by default for new deployment targets.
Jun 15 2017, 6:16 PM

Jun 13 2017

erik.pilkington added a comment to D33977: [libcxx][WIP] Experimental support for a scheduler for use in the parallel stl algorithms.

Ping!

Jun 13 2017, 9:05 AM

Jun 11 2017

erik.pilkington created D34096: [Sema][C++1z] Ensure structured binding's bindings in dependent foreach have non-null type.
Jun 11 2017, 6:31 PM

Jun 6 2017

erik.pilkington created D33977: [libcxx][WIP] Experimental support for a scheduler for use in the parallel stl algorithms.
Jun 6 2017, 10:55 PM

Jun 1 2017

erik.pilkington created D33816: [Sema][ObjC] Don't allow -Wunguarded-availability to be silenced with redeclarations.
Jun 1 2017, 6:14 PM

May 29 2017

erik.pilkington created D33661: [Sema][ObjC] Don't emit availability diagnostics for categories extending unavailable interfaces.
May 29 2017, 5:39 PM

May 28 2017

erik.pilkington edited reviewers for D33637: [libcxxabi][demangler] Fix a exponential string copying bug, added: compnerd; removed: EricWF.
May 28 2017, 2:28 PM
erik.pilkington created D33637: [libcxxabi][demangler] Fix a exponential string copying bug.
May 28 2017, 2:27 PM

May 24 2017

erik.pilkington added a comment to D33368: [libcxxabi][demangler] Fix a crash in the demangler.

Also, are you now maintaining this code?
I am trying to find someone who wants to be CC-ed to other demangler bugs automatically reported by oss-fuzz.

I don’t think I’ll accept the title of maintainer, (I only have one commit in this file!) but I have some plans to work on it and would be interested in hearing about any bugs found in the fuzzer.
Can you add erik.pilkington@gmail.com to your CC list?

May 24 2017, 2:30 PM
erik.pilkington added a comment to D33368: [libcxxabi][demangler] Fix a crash in the demangler.

r303806 removes the assertion (instead just returning first). I though this should never happen, I'm looking into this testcase to see if there is another bug here.
Thanks,
Erik

May 24 2017, 1:55 PM

May 23 2017

erik.pilkington added inline comments to D33368: [libcxxabi][demangler] Fix a crash in the demangler.
May 23 2017, 10:43 PM
erik.pilkington accepted D33450: Warn about uses of `@available` that can't suppress the -Wunguarded-availability warnings.

LGTM, thanks!

May 23 2017, 9:34 PM
erik.pilkington added a comment to D33393: [PATCH] Libcxxabi Demangler PR32890.

but having a constant like this ("7") sounds wrong. Why not 6, or 8, or 42?

7 is correct here because we inserting into a specific point into a string that was inserted into db.names just above this (but out of context from the diff). The only problem is that more stuff was inserted in the meantime.
This is horrible, but the demangler is littered with random offsets. My personal favorite is that const, volatile, and restrict aren't represented with an enum, but just with the literals 1, 2, and 4.

May 23 2017, 11:44 AM
erik.pilkington added inline comments to D33450: Warn about uses of `@available` that can't suppress the -Wunguarded-availability warnings.
May 23 2017, 10:50 AM
erik.pilkington added a comment to D33393: [PATCH] Libcxxabi Demangler PR32890.

You could append my test case as a quick-check.

Sure, I added the test case here to my patch and it works.

So, I'll go ahead and abandon this revision?

Guess so, sorry for the confusion here.

May 23 2017, 9:29 AM
erik.pilkington updated the diff for D33368: [libcxxabi][demangler] Fix a crash in the demangler.

In this new patch:

May 23 2017, 9:25 AM

May 22 2017

erik.pilkington added a comment to D33393: [PATCH] Libcxxabi Demangler PR32890.

Could you please add more context lines in any future patches? Makes it easier to review!

May 22 2017, 11:23 PM
erik.pilkington added a comment to D30837: [libcxx] Support for shared_ptr<T()>.

Ping!

May 22 2017, 4:37 PM
erik.pilkington added inline comments to D33368: [libcxxabi][demangler] Fix a crash in the demangler.
May 22 2017, 9:45 AM

May 19 2017

erik.pilkington updated the diff for D33049: [libcxx] Support for Objective-C++ tests.

This new patch checks to make sure ARC is enabled in the tests, thanks for the suggestion!

May 19 2017, 3:32 PM
erik.pilkington updated the diff for D33049: [libcxx] Support for Objective-C++ tests.

In this new patch:

  • Add support for toggling -fobjc-arc, this is done by using file extensions, ie: foo.arc.pass.mm instead of foo.pass.mm. (Thanks @dexonsmith for the suggestion!)
  • Clean up/simplify things a bit
May 19 2017, 3:05 PM
erik.pilkington created D33368: [libcxxabi][demangler] Fix a crash in the demangler.
May 19 2017, 2:15 PM
erik.pilkington updated the diff for D33250: [Sema][ObjC] Fix a bug where -Wunguarded-availability was emitted at the wrong location.

Can we ignore the TypeLocs with invalid location and instead look at ObjCPropertyRefExprs with a class receiver?

Sure, good idea. This new patch does exactly that.

May 19 2017, 1:06 PM

May 16 2017

erik.pilkington updated the diff for D33250: [Sema][ObjC] Fix a bug where -Wunguarded-availability was emitted at the wrong location.

Just noticed this can be simplified a bit, NFC compared to the last version of the diff.

May 16 2017, 8:46 PM
erik.pilkington created D33250: [Sema][ObjC] Fix a bug where -Wunguarded-availability was emitted at the wrong location.
May 16 2017, 11:17 AM

May 10 2017

erik.pilkington created D33049: [libcxx] Support for Objective-C++ tests.
May 10 2017, 9:24 AM

May 9 2017

erik.pilkington added a comment to D30837: [libcxx] Support for shared_ptr<T()>.

Ping! @mclow.lists: Do you have any thoughts here?

May 9 2017, 9:31 AM
erik.pilkington accepted D33000: Add support for pretty platform names to `@available`/`__builtin_available`.

LGTM, thanks for working on this!

May 9 2017, 8:07 AM

May 5 2017

erik.pilkington accepted D32424: Add a fix-it for -Wunguarded-availability.

LGTM, thanks!

May 5 2017, 8:46 AM

May 4 2017

erik.pilkington created D32891: [Sema][ObjC++] Objective-C++ support for __is_base_of(B, D).
May 4 2017, 6:51 PM
erik.pilkington added a comment to D32424: Add a fix-it for -Wunguarded-availability.

Hi Alex, thanks for working on this! This looks right, but I have a couple of comments.
Thanks,
Erik

May 4 2017, 9:18 AM

May 1 2017

erik.pilkington updated the diff for D30837: [libcxx] Support for shared_ptr<T()>.

Rebase n' ping!

May 1 2017, 11:19 AM