So the risk with that one is that if someone had say the -didSomething direct selector and that some UIKit/Apple SDK API now adds this as a thing that you use with CFNotification center for example, where you _need_ dynamism, then the uses of the API would warn all the time when the internal to the client project -didSomething is in scope.
So we ideally need a way to silence this warning, so at the very least this needs to be a new -W flag (on by default (?)) so that callers that have an issue can use a _Pragma at the call site to ignore the error for when it's legal.
Add an off-by-default variant of this warning.
Tue, Jun 30
LGTM, after mine and Aaron's comments.
Thu, Jun 25
Ping, @rsmith did you want to take another look at this?
LGTM, thanks for figuring this out!
Wed, Jun 24
Sat, Jun 20
I don't have a problem with adding an API like this in theory, but what exactly are you planning on using these for in an IR pass? If its to infer some semantic property of the symbol then there probably are better ways of expressing that, like getting the frontend to add metadata or a function attribute or something.
Mon, Jun 15
Fri, Jun 12
Thu, Jun 11
Tue, Jun 9
LGTM (after a minor comment), thank you for fixing this!
Mon, Jun 8
May 14 2020
May 13 2020
May 6 2020
May 5 2020
May 1 2020
Apr 30 2020
Apr 29 2020
Apr 28 2020
Apr 23 2020
Apr 22 2020
LGTM, again :) Thanks for cleaning this up.
The demangler changes should also be made in libcxxabi/src/demangle, as there is a copy of the demangler there. This change also needs tests, there should be demangler tests (in libcxxabi/test/test_demangle.cpp), and IRGen tests (in clang/test/CodeGen) that check the mangled name. Finally, can you please add full contexts to your diffs? (by running e.g. git show -U99999).
Apr 20 2020
Apr 15 2020
Apr 14 2020
Please also commit this to llvm's copy of the demangler. You can copy the change over by running the cp-to-llvm.sh script.
Apr 13 2020
LGTM (after fixing those tests). Thanks for cleaning this up!
Apr 12 2020
Apr 11 2020
Can you add your test to libcxxabi/test/test_demangle.pass.cpp? You can put it in invalid_cases if you expect it to fail to demangle.
Apr 8 2020
What do you think about using the block type instead of a hash? That should be stable across compiler versions, changes to the block body, and changes to referenced declarations. You'd still have to number blocks of the same type within the same function, but that should be a much smaller problem. It'd also allow demanglers to provide more information about the symbol, e.g. a demangler could print:
Apr 7 2020
This also adds the same feature to ObjC blocks under the assumption that ObjC wishes to follow the C standard in this regard.
Apr 6 2020
Don't bother including zero length bit-fields in the mangling of the copy/destroy helpers.
Apr 2 2020
LGTM, sorry for the delay in reviewing this.
Mar 31 2020
Address review comments.
Mar 30 2020
Mar 25 2020
Mar 24 2020
Mar 23 2020
Add tests for bit_cast<bool>((char)1);
Mar 20 2020
Add alignment attribute to all sret parameters.
Mar 17 2020
Mar 13 2020
Mar 10 2020
This also fixes https://bugs.llvm.org/show_bug.cgi?id=44253. Is there any update on the ppc reproducer?
Mar 9 2020
Mar 2 2020
It looks like this check is done already in getDeclLocForCommentSearch. Any reason to duplicate it?
Feb 28 2020
Okay, I've added this, it seems to fix the test but I'm not sure if it's fully correct since the place where it was modified is under the VarDecl comment instead of ParmVarDecl.
Feb 26 2020
Feb 14 2020
Feb 13 2020
Added but it's still failing due to a different assertion failure, do you think this could be because the abbreviation is different for the ParamVars? I'm not sure how to handle this...
Feb 12 2020
This looks good, but please add a testcase.
This patch broke our multistage bot during stage 2 build: http://lab.llvm.org:8011/builders/clang-ppc64be-linux-multistage/builds/23546
We are investigating, please pull until we can provide a reproducer.
Feb 10 2020
Feb 7 2020
Disable the optimization for non-trivially destructible types.