aaron.ballman (Aaron Ballman)
User

Projects

User does not belong to any projects.

User Details

User Since
Mar 14 2013, 3:16 PM (278 w, 6 d)

Recent Activity

Today

aaron.ballman accepted D49504: Enable C++2a Chrono Literals.

LGTM!

Thu, Jul 19, 6:40 AM
aaron.ballman added inline comments to D49504: Enable C++2a Chrono Literals.
Thu, Jul 19, 5:55 AM
aaron.ballman accepted D49421: [CodeComplete] Fix accessibilty of protected members from base class..

LGTM!

Thu, Jul 19, 5:48 AM
aaron.ballman accepted D49112: [Sema] Implement -Wmemset-transposed-args.

LGTM aside from a minor nit.

Thu, Jul 19, 5:44 AM
aaron.ballman accepted D48786: [Preprocessor] Stop entering included files after hitting a fatal error..

LGTM as well

Thu, Jul 19, 5:36 AM
aaron.ballman added inline comments to D49114: [clang-tidy] Add a check for "magic numbers".
Thu, Jul 19, 5:13 AM

Yesterday

aaron.ballman added inline comments to D49114: [clang-tidy] Add a check for "magic numbers".
Wed, Jul 18, 2:16 PM
aaron.ballman accepted D47474: Implement cpu_dispatch/cpu_specific Multiversioning.

Aside from an assert than can be removed, this LGTM on the attribute side of things.

Wed, Jul 18, 1:20 PM
aaron.ballman added inline comments to D49114: [clang-tidy] Add a check for "magic numbers".
Wed, Jul 18, 1:16 PM
aaron.ballman added inline comments to D49421: [CodeComplete] Fix accessibilty of protected members from base class..
Wed, Jul 18, 12:26 PM
aaron.ballman added inline comments to D47474: Implement cpu_dispatch/cpu_specific Multiversioning.
Wed, Jul 18, 11:54 AM
aaron.ballman added inline comments to D49112: [Sema] Implement -Wmemset-transposed-args.
Wed, Jul 18, 6:20 AM
aaron.ballman added inline comments to D47474: Implement cpu_dispatch/cpu_specific Multiversioning.
Wed, Jul 18, 6:10 AM
aaron.ballman added a reviewer for D49421: [CodeComplete] Fix accessibilty of protected members from base class.: rsmith.

Adding Richard to see if he agrees with the direction taken.

Wed, Jul 18, 5:07 AM

Mon, Jul 16

aaron.ballman accepted D48841: Add support for __declspec(code_seg("segname")).

The attribute bits look good to me, but I am less familiar with the behavioral bits so you may want to wait to see if @majnemer or @rnk have further comments on that.

Mon, Jul 16, 1:22 PM
aaron.ballman accepted D49333: [ASTMatchers] Introduce Objective-C matchers `hasReceiver` and `isInstanceMessage` for ObjCMessageExpr.

LGTM aside from a style nit (you can take it or leave it).

Mon, Jul 16, 1:13 PM
aaron.ballman accepted D49356: [clang-tidy: modernize] Fix modernize-use-equals-default with {} brackets list initialization: patch.

LGTM with a formatting nit.

Mon, Jul 16, 5:44 AM

Sun, Jul 15

aaron.ballman closed D49275: Thread safety: Run tests with both lock and capability attributes.

Thanks for the review. Could you commit this for me (Aaron Puchert <aaron.puchert@sap.com>)?

Sun, Jul 15, 5:14 AM

Sat, Jul 14

aaron.ballman added inline comments to D49333: [ASTMatchers] Introduce Objective-C matchers `hasReceiver` and `isInstanceMessage` for ObjCMessageExpr.
Sat, Jul 14, 5:40 AM

Fri, Jul 13

aaron.ballman accepted D49045: PR15730/PR16986 Allow dependently typed vector_size types..

LGTM, though it's your call on the const_cast stuff whether you want to revert or keep it.

Fri, Jul 13, 12:13 PM
aaron.ballman added inline comments to D49045: PR15730/PR16986 Allow dependently typed vector_size types..
Fri, Jul 13, 6:06 AM
aaron.ballman accepted D49275: Thread safety: Run tests with both lock and capability attributes.

LGTM! Thank you for this!

Fri, Jul 13, 5:37 AM
aaron.ballman added a comment to D49117: [Lex] [WIP] Fix preprocessor adding whitespace for empty comments.

I believe this would be non-comforming.

Fri, Jul 13, 5:16 AM
aaron.ballman added inline comments to D49112: [Sema] Implement -Wmemset-transposed-args.
Fri, Jul 13, 5:02 AM
aaron.ballman added inline comments to D48841: Add support for __declspec(code_seg("segname")).
Fri, Jul 13, 4:54 AM

Thu, Jul 12

aaron.ballman accepted D48788: AttributeList de-listifying:.

LGTM! Thank you for doing this work, Erich!

Thu, Jul 12, 12:47 PM

Mon, Jul 9

aaron.ballman added a comment to D48912: [libc++] Add deprecated attributes to many deprecated components.

Regarding whether we want to enable or disable those warnings by default: it seems like we've reached consensus (on the LLVM IRC) for enabling the deprecation warnings by default. However, I suggest we keep them disabled by default in this commit, and then change the default in a subsequent change. This will make things easier from an integration perspective, and also in case we need to roll back the defaults because of some unforeseen circumstances.

Mon, Jul 9, 11:28 AM

Fri, Jul 6

aaron.ballman accepted D48412: [RISCV] Add support for interrupt attribute.

LGTM! Do you need me to commit on your behalf, or do you have commit privileges?

Fri, Jul 6, 1:23 PM
aaron.ballman accepted D48910: [ASTMatchers] A matcher for Objective-C @autoreleasepool.

LGTM, thank you!

Fri, Jul 6, 5:08 AM
aaron.ballman added inline comments to D48412: [RISCV] Add support for interrupt attribute.
Fri, Jul 6, 5:08 AM

Thu, Jul 5

aaron.ballman added inline comments to D48412: [RISCV] Add support for interrupt attribute.
Thu, Jul 5, 1:47 PM
aaron.ballman added a comment to D48852: [Sema] -Wformat-pedantic only for NSInteger/NSUInteger %tu/%td on Darwin.

This is acceptable because Darwin guarantees that, despite the watchOS ABI differences, sizeof(ptrdiff_t) == sizeof(NS[U]Integer)

Can you describe these ABI differences please? Also, does Darwin guarantee that alignof(ptrdiff_t) == alignof(NS[U]Integer)?

The ABI difference boils down to the following:

Regular 32-bit Darwin targets (like armv7) use 'ptrdiff_t' of type 'int', which matches 'NSInteger'.
WatchOS arm iOS target (armv7k) uses 'ptrdiff_t' of type 'long', which doesn't match 'NSInteger' of type 'int'.

Thu, Jul 5, 1:14 PM
aaron.ballman added a comment to D48852: [Sema] -Wformat-pedantic only for NSInteger/NSUInteger %tu/%td on Darwin.

This is acceptable because Darwin guarantees that, despite the watchOS ABI differences, sizeof(ptrdiff_t) == sizeof(NS[U]Integer)

Thu, Jul 5, 11:04 AM
aaron.ballman added inline comments to D48841: Add support for __declspec(code_seg("segname")).
Thu, Jul 5, 8:31 AM

Wed, Jul 4

aaron.ballman closed D44143: [clang-tidy] Create properly seeded random generator check.

How can I commit it?

Wed, Jul 4, 6:23 PM · Restricted Project
aaron.ballman added a comment to D48912: [libc++] Add deprecated attributes to many deprecated components.

FWIW, I would prefer to enable deprecation warnings by default and to have a way of turning them off

Wed, Jul 4, 1:23 PM
aaron.ballman requested changes to D48910: [ASTMatchers] A matcher for Objective-C @autoreleasepool.

This mostly looks good, but the name of the matcher is inconsistent.

Wed, Jul 4, 7:19 AM

Tue, Jul 3

aaron.ballman accepted D48617: [Builtins][Attributes][X86] Tag all X86 builtins with their required vector width. Add a min_vector_width function attribute and tag all x86 instrinsics with it..

Aside from a new round of minor doc nits, I think this is looking good.

Tue, Jul 3, 3:48 PM
aaron.ballman added reviewers for D48841: Add support for __declspec(code_seg("segname")): rnk, majnemer.
Tue, Jul 3, 3:41 PM
aaron.ballman accepted D48734: [Sema] Consider all format_arg attributes..

LGTM!

Tue, Jul 3, 3:39 PM
aaron.ballman added a comment to D44143: [clang-tidy] Create properly seeded random generator check.

This still LGTM; do you need someone to commit on your behalf?

Tue, Jul 3, 3:36 PM · Restricted Project
aaron.ballman added inline comments to D48788: AttributeList de-listifying:.
Tue, Jul 3, 3:00 PM
aaron.ballman added inline comments to D42682: [clang-tidy] Add io-functions-misused checker.
Tue, Jul 3, 8:12 AM · Restricted Project

Mon, Jul 2

aaron.ballman added inline comments to D48617: [Builtins][Attributes][X86] Tag all X86 builtins with their required vector width. Add a min_vector_width function attribute and tag all x86 instrinsics with it..
Mon, Jul 2, 1:39 PM
aaron.ballman added inline comments to D48617: [Builtins][Attributes][X86] Tag all X86 builtins with their required vector width. Add a min_vector_width function attribute and tag all x86 instrinsics with it..
Mon, Jul 2, 12:45 PM
aaron.ballman added inline comments to D48617: [Builtins][Attributes][X86] Tag all X86 builtins with their required vector width. Add a min_vector_width function attribute and tag all x86 instrinsics with it..
Mon, Jul 2, 12:07 PM

Sat, Jun 30

aaron.ballman added a comment to D48788: AttributeList de-listifying:.

Wow, this is an amazing start to a very large refactoring! Thank you for tackling this. I've made a few review comments but haven't gotten through the entire patch yet. The parts that I've seen all look reasonably sane thus far.

Sat, Jun 30, 1:38 PM

Fri, Jun 29

aaron.ballman added inline comments to D48412: [RISCV] Add support for interrupt attribute.
Fri, Jun 29, 11:59 AM
aaron.ballman added a comment to D48717: [clang-tidy] fix PR36489 - respect deduced pointer types from auto as well.
  • fix decltype deduction with new matcher

    I had to introduce a new matcher in clang for DecltypeType to reach its underlying type. It would be better to have hasType resolve all these issues but i dont know how much work that would be.
Fri, Jun 29, 5:58 AM
aaron.ballman added a comment to D48759: [ASTMatchers] add matcher for decltypeType and its underlyingType.

Once this goes in, you can also update TrailingReturnTypeCheck.cpp to remove its local instance of this type matcher.

Fri, Jun 29, 5:47 AM
aaron.ballman added inline comments to D48734: [Sema] Consider all format_arg attributes..
Fri, Jun 29, 5:41 AM
aaron.ballman added inline comments to D48412: [RISCV] Add support for interrupt attribute.
Fri, Jun 29, 5:35 AM

Thu, Jun 28

aaron.ballman accepted D44143: [clang-tidy] Create properly seeded random generator check.

LGTM with a small documentation nit.

Thu, Jun 28, 10:10 AM · Restricted Project
aaron.ballman accepted D48717: [clang-tidy] fix PR36489 - respect deduced pointer types from auto as well.

LGTM!

Thu, Jun 28, 10:06 AM
aaron.ballman requested changes to D48717: [clang-tidy] fix PR36489 - respect deduced pointer types from auto as well.
Thu, Jun 28, 6:58 AM

Wed, Jun 27

aaron.ballman added inline comments to D44143: [clang-tidy] Create properly seeded random generator check.
Wed, Jun 27, 11:08 AM · Restricted Project
aaron.ballman added a comment to D46313: [clang] Add WriteOnlyFunc attribute.

Sorry about the slow turn around. I've updated the documentation to be clearer about this attribute's use.

While I'm mainly interested in marking math functions, exposing this attribute to users should be beneficial as I'm working to enable some optimizations in the backend making use of the WriteOnly LLVM attribute.

I haven't added any additional documentation concerning consequences and effects because at this point the WriteOnly LLVM attribute is not being used extensively. Would it be best to wait until additional uses (CSE, Hoisting) are in effect then update the documentation?

Wed, Jun 27, 10:48 AM
aaron.ballman added a reviewer for D48617: [Builtins][Attributes][X86] Tag all X86 builtins with their required vector width. Add a min_vector_width function attribute and tag all x86 instrinsics with it.: aaron.ballman.
Wed, Jun 27, 10:34 AM
aaron.ballman accepted D46951: [clang-tidy] misc-unused-parameters - retain old behavior under StrictMode.

LGTM aside from some documentation nits.

Wed, Jun 27, 9:05 AM
aaron.ballman accepted D48598: [ADT] drop_begin: use adl_begin/adl_end. NFC..

LGTM!

Wed, Jun 27, 8:26 AM

Mon, Jun 25

aaron.ballman added inline comments to D48412: [RISCV] Add support for interrupt attribute.
Mon, Jun 25, 5:30 AM
aaron.ballman added inline comments to D44143: [clang-tidy] Create properly seeded random generator check.
Mon, Jun 25, 5:17 AM · Restricted Project

Fri, Jun 22

aaron.ballman added a reviewer for D48412: [RISCV] Add support for interrupt attribute: aaron.ballman.
Fri, Jun 22, 6:16 AM

Wed, Jun 20

aaron.ballman added a comment to D48390: ASan docs: no_sanitize("address") works on globals..

Do you also want to update AttrDocs.td with some similar information?

Wed, Jun 20, 12:56 PM
aaron.ballman added reviewers for D47953: [builtin] Add bitfield support for __builtin_dump_struct: echristo, rsmith, dblaikie.

I will for sure add tests @lebedev.ri . Fact is that, for the moment, this is not working as expected.
This is why I am asking for a bit of help about this bitfield handling :)

Wed, Jun 20, 11:35 AM

Tue, Jun 19

aaron.ballman added inline comments to D47953: [builtin] Add bitfield support for __builtin_dump_struct.
Tue, Jun 19, 8:26 AM

Jun 19 2018

aaron.ballman accepted D48100: Append new attributes to the end of an AttributeList..

LGTM, thank you for this!

Jun 19 2018, 8:17 AM
aaron.ballman closed D47435: Add __builtin_signbit semantic checking.

I've committed in r335048; if @rsmith has concerns, they can be addressed post commit.

Jun 19 2018, 7:40 AM

Jun 15 2018

aaron.ballman accepted D48242: [ASTMatchers] Add support for matching the type of a friend decl..

LGTM aside from some minor nits.

Jun 15 2018, 5:02 PM · Restricted Project

Jun 14 2018

aaron.ballman added a reviewer for D48100: Append new attributes to the end of an AttributeList.: aaron.ballman.

Thank you for working on this odd detail of attributes!

Jun 14 2018, 4:11 AM

Jun 13 2018

aaron.ballman reopened D45679: [clang-tidy] Add ExprMutationAnalyzer, that analyzes whether an expression is mutated within a statement..

I had to revert due to failing tests. The revert was done in r334606 and this is an example of a failing bot: http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/31500

Jun 13 2018, 8:08 AM · Restricted Project
aaron.ballman closed D45679: [clang-tidy] Add ExprMutationAnalyzer, that analyzes whether an expression is mutated within a statement..

I've commit in r334604 with one minor change -- I added an include for <cctype> to the unit test so that std::isspace() would compile properly on all platforms.

Jun 13 2018, 7:46 AM · Restricted Project

Jun 12 2018

aaron.ballman added inline comments to D47435: Add __builtin_signbit semantic checking.
Jun 12 2018, 9:22 AM
aaron.ballman updated the diff for D47435: Add __builtin_signbit semantic checking.

Updating based on review feedback.

Jun 12 2018, 9:22 AM
aaron.ballman added a comment to D47435: Add __builtin_signbit semantic checking.

Ping

Jun 12 2018, 6:50 AM

Jun 9 2018

aaron.ballman added a comment to D47290: [Sema] -Wformat-pedantic only for NSInteger/NSUInteger %zu/%zi on Darwin.
In D47290#1127190, @jfb wrote:

Okay, that's fair, but the vendor-specific type for my Windows example is spelled DWORD. I'm really worried that this special case will become a precedent and we'll wind up with -Wformat being relaxed for everything based on the same rationale. If that's how the community wants -Wformat to work, cool, but I'd like to know if we're intending to change (what I see as) the design of this warning.

I spoke with @jfb offline and am less concerned about this patch now. He's welcome to correct me if I misrepresent anything, but the precedent this sets is that a platform "owner" (someone with authority, not Joe Q Random-User) can relax -Wformat as in this patch, but this is not a precedent for a blanket change to -Wformat just because the UB happens to work and we "know" it.

Thanks for asking these questions Aaron, it's helped answer everyone's concerns and explain our respective positions. You've certainly summarized what I was thinking.

Jun 9 2018, 4:35 AM

Jun 8 2018

aaron.ballman added a comment to D47290: [Sema] -Wformat-pedantic only for NSInteger/NSUInteger %zu/%zi on Darwin.

Okay, that's fair, but the vendor-specific type for my Windows example is spelled DWORD. I'm really worried that this special case will become a precedent and we'll wind up with -Wformat being relaxed for everything based on the same rationale. If that's how the community wants -Wformat to work, cool, but I'd like to know if we're intending to change (what I see as) the design of this warning.

Jun 8 2018, 7:07 AM

Jun 7 2018

aaron.ballman added a comment to D47290: [Sema] -Wformat-pedantic only for NSInteger/NSUInteger %zu/%zi on Darwin.

If we really want to special-case NSInteger, and given that you're targeting a specific wide-spread pattern maybe that's the right thing to do, I think we should make -Wformat accept (move the warning behind -Wformat-pedantic I suppose) printing NSInteger with *any* integral type of the right size, not just size_t.

Would you be similarly okay with %ld and %d on Windows platforms when mixing up int and long?

No, I'm against a general relaxation of -Wformat, but to solve JF's problem I think special-casing NSInteger might be reasonable.

How is JF's problem different?

It concerns a vendor-specific type. Of course I personally think it would be better if the code could be fixed, but it doesn't sound like that's an option so then I think special-casing for NSInteger is an acceptable solution.

Jun 7 2018, 7:26 AM
aaron.ballman added a comment to D47290: [Sema] -Wformat-pedantic only for NSInteger/NSUInteger %zu/%zi on Darwin.

If we really want to special-case NSInteger, and given that you're targeting a specific wide-spread pattern maybe that's the right thing to do, I think we should make -Wformat accept (move the warning behind -Wformat-pedantic I suppose) printing NSInteger with *any* integral type of the right size, not just size_t.

Would you be similarly okay with %ld and %d on Windows platforms when mixing up int and long?

No, I'm against a general relaxation of -Wformat, but to solve JF's problem I think special-casing NSInteger might be reasonable.

Jun 7 2018, 7:01 AM
aaron.ballman added a comment to D47290: [Sema] -Wformat-pedantic only for NSInteger/NSUInteger %zu/%zi on Darwin.

If we really want to special-case NSInteger, and given that you're targeting a specific wide-spread pattern maybe that's the right thing to do, I think we should make -Wformat accept (move the warning behind -Wformat-pedantic I suppose) printing NSInteger with *any* integral type of the right size, not just size_t.

Jun 7 2018, 6:42 AM

Jun 6 2018

aaron.ballman updated subscribers of D47290: [Sema] -Wformat-pedantic only for NSInteger/NSUInteger %zu/%zi on Darwin.
In D47290#1115352, @jfb wrote:

Hopefully this makes sense? I'm not sure I summarize my context very well. I'm happy to talk about it in-person next week too.

Jun 6 2018, 12:05 PM

Jun 5 2018

aaron.ballman accepted D47804: [CUDA] Replace 'nv_weak' attributes in CUDA headers with 'weak'..

LGTM as well, for what little it's worth. :-)

Jun 5 2018, 11:57 PM
aaron.ballman accepted D46602: [clang-tidy] Store checks profiling info as JSON files.

LGTM!

Jun 5 2018, 4:44 AM · Restricted Project
aaron.ballman accepted D46805: If some platforms do not support an attribute, we should exclude the platform.

LGTM aside from a nit with one of the tests. Once you've updated the patch and verified that check-clang passes all tests, I can commit for you next week when I'm back from meetings (unless someone else gets to it before me).

Jun 5 2018, 1:48 AM
aaron.ballman accepted D45679: [clang-tidy] Add ExprMutationAnalyzer, that analyzes whether an expression is mutated within a statement..

Aside from a minor commenting nit, this LGTM.

Jun 5 2018, 12:42 AM · Restricted Project
aaron.ballman added inline comments to D46602: [clang-tidy] Store checks profiling info as JSON files.
Jun 5 2018, 12:12 AM · Restricted Project

Jun 4 2018

aaron.ballman added a comment to D47201: [CUDA] Implement nv_weak attribute for functions.
In D47201#1119249, @tra wrote:

IIUIC, nv_weak is a synonym for weak (<rant>why, oh why did they need it?</rant>)
You may need to hunt down and change few other places that deal with the weak attribute.
E.g.: https://github.com/llvm-project/llvm-project-20170507/blob/master/clang/lib/AST/Decl.cpp#L4267
https://github.com/llvm-project/llvm-project-20170507/blob/master/clang/lib/CodeGen/ItaniumCXXABI.cpp#L3045

If it is truly a synonym for weak, then a better implementation would be to make no semantic distinction between the two attributes -- just add new spellings to weak. If you need to make minor distinctions between the spellings, you can do it using accessors on the attribute.

I first went with this approach but then thought it would be better to restrict the new attribute as much as possible. That's why I added a completely new one which is only applicable to functions, but not to variables and CXXRecords. Let me know if you'd prefer nv_weak to be a full alias of weak and I'll revert to what @aaron.ballman suggested.

Jun 4 2018, 11:49 PM

Jun 1 2018

aaron.ballman added a reviewer for D47201: [CUDA] Implement nv_weak attribute for functions: aaron.ballman.
Jun 1 2018, 10:54 AM
aaron.ballman added a comment to D47201: [CUDA] Implement nv_weak attribute for functions.
In D47201#1119249, @tra wrote:

IIUIC, nv_weak is a synonym for weak (<rant>why, oh why did they need it?</rant>)
You may need to hunt down and change few other places that deal with the weak attribute.
E.g.: https://github.com/llvm-project/llvm-project-20170507/blob/master/clang/lib/AST/Decl.cpp#L4267
https://github.com/llvm-project/llvm-project-20170507/blob/master/clang/lib/CodeGen/ItaniumCXXABI.cpp#L3045

Jun 1 2018, 10:45 AM

May 31 2018

aaron.ballman accepted D47157: Warning for framework headers using double quote includes.

LGTM

May 31 2018, 12:46 PM
aaron.ballman added inline comments to D47157: Warning for framework headers using double quote includes.
May 31 2018, 11:38 AM
aaron.ballman closed D45835: Add new driver mode for dumping compiler options.

Committed in r333653.

May 31 2018, 7:01 AM
aaron.ballman added inline comments to D46602: [clang-tidy] Store checks profiling info as JSON files.
May 31 2018, 5:10 AM · Restricted Project
aaron.ballman added inline comments to D47474: Implement cpu_dispatch/cpu_specific Multiversioning.
May 31 2018, 4:54 AM
aaron.ballman added inline comments to D47157: Warning for framework headers using double quote includes.
May 31 2018, 4:31 AM

May 30 2018

aaron.ballman added inline comments to D47474: Implement cpu_dispatch/cpu_specific Multiversioning.
May 30 2018, 5:43 AM
aaron.ballman accepted D45686: [Driver] Clean up tmp files when deleting Compilation objects.

Any more comments or concerns, or can I land this?

May 30 2018, 4:52 AM
aaron.ballman added a comment to D47157: Warning for framework headers using double quote includes.

Consistency would be nice, but at the same time, I don't see a good metric for when we'd know it's time to switch it to being on by default. I'm worried that it'll remain off by default forever simply because no one thinks to go turn it on (because it's silent by default). Perhaps on-by-default here and off-by-default downstream would be the better approach, or do you think this would be too disruptive to enable by default anywhere?

I believe this could be too disruptive to enable now, since it's still very common to find quoted includes in framework headers. This is very important for Modules to properly work with frameworks (quoted headers are usually considered non-modular when modules builds kick in) and is actually very compelling for us to turn it on by default on Darwin as soon as we can, but we need to educate users first.

May 30 2018, 4:52 AM

May 28 2018

aaron.ballman added inline comments to D45835: Add new driver mode for dumping compiler options.
May 28 2018, 4:51 AM

May 27 2018

aaron.ballman created D47435: Add __builtin_signbit semantic checking.
May 27 2018, 2:15 PM