Page MenuHomePhabricator

rsmith (Richard Smith - zygoloid)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 12 2012, 2:19 PM (349 w, 4 d)

Recent Activity

Fri, Mar 22

rsmith added a comment to D43576: Solution to fix PR27066 - Redefinition with same mangled name as another definition (dllexport and uuid).

Thanks, this looks like a good broad direction.

Fri, Mar 22, 3:01 PM

Thu, Mar 21

rsmith committed rC356712: Improve the diagnostic for #include_next occurring in a file not found.
Improve the diagnostic for #include_next occurring in a file not found
Thu, Mar 21, 1:42 PM
rsmith committed rL356712: Improve the diagnostic for #include_next occurring in a file not found.
Improve the diagnostic for #include_next occurring in a file not found
Thu, Mar 21, 1:42 PM
rsmith committed rL356704: Refactor handling of #include directives to cleanly separate the.
Refactor handling of #include directives to cleanly separate the
Thu, Mar 21, 12:43 PM
rsmith committed rC356704: Refactor handling of #include directives to cleanly separate the.
Refactor handling of #include directives to cleanly separate the
Thu, Mar 21, 12:43 PM

Tue, Mar 19

rsmith accepted D59573: [analyzer] C++17: PR41142: Ignore transparent InitListExprs when finding construction contexts..

LGTM

Tue, Mar 19, 7:17 PM · Restricted Project, Restricted Project
rsmith committed rL356530: Replace tok::angle_string_literal with new tok::header_name..
Replace tok::angle_string_literal with new tok::header_name.
Tue, Mar 19, 3:09 PM
rsmith committed rC356530: Replace tok::angle_string_literal with new tok::header_name..
Replace tok::angle_string_literal with new tok::header_name.
Tue, Mar 19, 3:09 PM

Mon, Mar 18

rsmith committed rC356433: Factor out repeated code parsing and concatenating header-names from.
Factor out repeated code parsing and concatenating header-names from
Mon, Mar 18, 6:52 PM
rsmith committed rC356432: Don't apply the include depth limit until we actually decide to enter.
Don't apply the include depth limit until we actually decide to enter
Mon, Mar 18, 6:52 PM
rsmith committed rL356433: Factor out repeated code parsing and concatenating header-names from.
Factor out repeated code parsing and concatenating header-names from
Mon, Mar 18, 6:52 PM
rsmith committed rL356432: Don't apply the include depth limit until we actually decide to enter.
Don't apply the include depth limit until we actually decide to enter
Mon, Mar 18, 6:52 PM

Tue, Mar 12

rsmith accepted D59282: [Parse] Parse '#pragma clang attribute' as an external-declaration.
Tue, Mar 12, 9:25 PM · Restricted Project, Restricted Project
rsmith added a reviewer for D59254: [RFC] Implementation of Clang randstruct: kcc.
Tue, Mar 12, 1:29 PM · Restricted Project

Fri, Mar 8

rsmith added a comment to D59038: [8.0 Regression] Fix handling of `__builtin_constant_p` inside template arguments, enumerators, case statements, and the enable_if attribute..

LGTM, and I think this is safe enough to take for Clang 8.

Do you think the severity is high enough to spin another release candidate?

Fri, Mar 8, 3:18 PM · Restricted Project
rsmith accepted D59038: [8.0 Regression] Fix handling of `__builtin_constant_p` inside template arguments, enumerators, case statements, and the enable_if attribute..

LGTM, and I think this is safe enough to take for Clang 8.

Fri, Mar 8, 10:00 AM · Restricted Project

Thu, Mar 7

rsmith added a comment to D59105: [RFC] Create an Arbitrary Precision Integer Type..

In principle, I think an extension in this space seems reasonable and useful. Considering the points in http://clang.llvm.org/get_involved.html, I'm happy to assume you meet points 2, 5, and 6, but I'd like to see a written-up rationale for the other points. (In particular, you do not yet meet the bar for points 3 and 7, and if you're not proposing this to WG14 or WG21 or similar, some amount of rationale justifying that is necessary.)

Thu, Mar 7, 2:05 PM

Wed, Mar 6

rsmith abandoned D58154: Add support for -fpermissive..

If we go with a different name for the flag, then the user has to update their build scripts to get code to compile with Clang, which means it shouldn't be too onerous for them to spell out the specific diagnostics they need disabled (and it sort of forces them into somewhat better code hygiene by not disabling all diagnostics). I'm kind of leaning towards not providing a flag at all.

Wed, Mar 6, 4:22 PM · Restricted Project
rsmith added a comment to D58154: Add support for -fpermissive..

I also can't really tell what the intent is behind classifying some diagnostics in Clang as ExtWarn,DefaultError and others Warning,DefaultError -- or if there even is any useful purpose there at all. I note with special-puzzlement the existence of both ext_return_missing_expr and warn_return_missing_expr.

Wed, Mar 6, 12:47 PM · Restricted Project

Tue, Mar 5

rsmith added a comment to D58154: Add support for -fpermissive..

The errors disabled by this feature are default-error warnings -- you can already get the same effect by using -Wno-<lots-of-things>.

Tue, Mar 5, 4:01 PM · Restricted Project

Mon, Mar 4

rsmith added a comment to D58154: Add support for -fpermissive..

I'm not super keen on supporting -fpermissive -- what is the impetus for supporting this? Is it just for GCC compatibility?

Mon, Mar 4, 2:48 PM · Restricted Project

Feb 23 2019

rsmith committed rL354736: Enable coroutines under -std=c++2a..
Enable coroutines under -std=c++2a.
Feb 23 2019, 1:09 PM
rsmith committed rL354735: [cxx_status] Update to match Kona motions..
[cxx_status] Update to match Kona motions.
Feb 23 2019, 1:09 PM
rsmith committed rC354736: Enable coroutines under -std=c++2a..
Enable coroutines under -std=c++2a.
Feb 23 2019, 1:09 PM
rsmith committed rC354735: [cxx_status] Update to match Kona motions..
[cxx_status] Update to match Kona motions.
Feb 23 2019, 1:09 PM

Feb 21 2019

rsmith committed rC354633: Use _Q as MS ABI mangling for char8_t..
Use _Q as MS ABI mangling for char8_t.
Feb 21 2019, 3:04 PM
rsmith committed rL354633: Use _Q as MS ABI mangling for char8_t..
Use _Q as MS ABI mangling for char8_t.
Feb 21 2019, 3:04 PM

Feb 15 2019

Herald added a reviewer for D56571: [RFC prototype] Implementation of asm-goto support in clang: martong.
Feb 15 2019, 5:35 PM
Herald added a project to D56336: [Support] unflake TempFileCollisions test: Restricted Project.

This seems fine to me, but I think we can do better if we want to. How about: call TryCreateTempFile() N times, and check that it succeeds exactly 16 times. Pick N such that the probability of it failing to find all 16 possible file names (given that it has 128 retries for each call) is astronomically small. (Right now the test should fail somewhere around 0.03% of the time; if we made, say, 32 calls, the probability of a flake would be significantly lower than the probability of a flake due to spontaneous hardware failure (in order to flake, we must find only 15 of the 16 filenames with at least 17 * 128 + 15 guesses, the probability of which is 1 in 3.9x10^62).

Feb 15 2019, 5:17 PM · Restricted Project
rsmith committed rLLDB354185: Temporarily disable test:.
Temporarily disable test:
Feb 15 2019, 4:16 PM
rsmith committed rL354185: Temporarily disable test:.
Temporarily disable test:
Feb 15 2019, 4:16 PM
rsmith accepted D58297: [Sema] SequenceChecker: C++17 sequencing rules for built-in operators <<, >>, .*, ->*, =, op=.
Feb 15 2019, 2:57 PM · Restricted Project
rsmith committed rC354176: Fix implementation of [temp.local]p4..
Fix implementation of [temp.local]p4.
Feb 15 2019, 1:53 PM
rsmith committed rL354176: Fix implementation of [temp.local]p4..
Fix implementation of [temp.local]p4.
Feb 15 2019, 1:53 PM
rsmith committed rL354174: Fix invalid code that Clang trunk will soon diagnose..
Fix invalid code that Clang trunk will soon diagnose.
Feb 15 2019, 1:52 PM
rsmith committed rCRT354174: Fix invalid code that Clang trunk will soon diagnose..
Fix invalid code that Clang trunk will soon diagnose.
Feb 15 2019, 1:52 PM
rsmith committed rL354173: Fix AST generated for a class template to connect the class inside a.
Fix AST generated for a class template to connect the class inside a
Feb 15 2019, 1:52 PM
rsmith committed rLLDB354173: Fix AST generated for a class template to connect the class inside a.
Fix AST generated for a class template to connect the class inside a
Feb 15 2019, 1:52 PM

Feb 14 2019

rsmith committed rL354091: Fix implementation of [temp.local]p4..
Fix implementation of [temp.local]p4.
Feb 14 2019, 4:30 PM
rsmith committed rC354091: Fix implementation of [temp.local]p4..
Fix implementation of [temp.local]p4.
Feb 14 2019, 4:30 PM
rsmith committed rL354090: PR40642: Fix determination of whether the final statement of a statement.
PR40642: Fix determination of whether the final statement of a statement
Feb 14 2019, 4:30 PM
rsmith committed rC354090: PR40642: Fix determination of whether the final statement of a statement.
PR40642: Fix determination of whether the final statement of a statement
Feb 14 2019, 4:30 PM
rsmith closed D57984: PR40642: Fix determination of whether the final statement of a statementexpression is a discarded-value expression..
Feb 14 2019, 4:29 PM · Restricted Project

Feb 13 2019

rsmith added a comment to D58149: [clang] Make sure C99/C11 features in <float.h> are provided in C++11.
In D58149#1397390, @jfb wrote:

Formally, I don't think C11 is a normative reference for C++11 or C++14, only C++17 (see [intro.refs] in the standard).

You're right. I don't mind submitting a patch that enables it for C++17 and above only if that's what you want, however...

Right, this was changed in wg21.link/p0063r3
That being said, we *can* offer these C11 features as extensions IIUC.

... I think it's also fine to have it in C++11.

Feb 13 2019, 6:06 PM · Restricted Project
rsmith added inline comments to D58091: Customize warnings for missing built-in type.
Feb 13 2019, 3:39 PM · Restricted Project
rsmith added inline comments to D57984: PR40642: Fix determination of whether the final statement of a statementexpression is a discarded-value expression..
Feb 13 2019, 1:43 PM · Restricted Project
rsmith updated the diff for D57984: PR40642: Fix determination of whether the final statement of a statementexpression is a discarded-value expression..

Address review comments.

Feb 13 2019, 1:43 PM · Restricted Project

Feb 12 2019

rsmith updated the diff for D57984: PR40642: Fix determination of whether the final statement of a statementexpression is a discarded-value expression..

Combine WithinStmtExpr flag with AllowedStmtKinds into a more general statement
context. In doing so, fix some bugs where the OpenMP context was not being
propagated properly through labels and expression-statements starting with @.

Feb 12 2019, 6:12 PM · Restricted Project
rsmith created D58154: Add support for -fpermissive..
Feb 12 2019, 3:45 PM · Restricted Project

Feb 11 2019

rsmith added a comment to D57984: PR40642: Fix determination of whether the final statement of a statementexpression is a discarded-value expression..

@ABataev Is it intentional that we do not propagate Allowed through labels? For example:

void f() {
  #pragma omp barrier // ok

label:
  #pragma omp barrier // error, "cannot be an immediate substatement"

label:
  ;
  #pragma omp barrier // ok
}

?

No, it is a bug.

Feb 11 2019, 7:55 PM · Restricted Project
rsmith added a comment to D57984: PR40642: Fix determination of whether the final statement of a statementexpression is a discarded-value expression..

@ABataev Is it intentional that we do not propagate Allowed through labels? For example:

Feb 11 2019, 5:07 PM · Restricted Project
rsmith added a reviewer for D57984: PR40642: Fix determination of whether the final statement of a statementexpression is a discarded-value expression.: ABataev.
Feb 11 2019, 5:06 PM · Restricted Project
rsmith accepted D57729: Add fenv.h header.

LGTM

Feb 11 2019, 3:37 PM
rsmith updated the diff for D57984: PR40642: Fix determination of whether the final statement of a statementexpression is a discarded-value expression..

Address a couple of review comments.

Feb 11 2019, 2:26 PM · Restricted Project
rsmith accepted D58069: [Sema] Mark GNU compound literal array init as an rvalue..
Feb 11 2019, 2:12 PM · Restricted Project

Feb 8 2019

rsmith retitled D57984: PR40642: Fix determination of whether the final statement of a statementexpression is a discarded-value expression. from PR40642: Fix determination of whether the final statement of a statement expression is a discarded-value expression. to PR40642: Fix determination of whether the final statement of a statementexpression is a discarded-value expression..
Feb 8 2019, 4:30 PM · Restricted Project
rsmith added inline comments to D57540: [C++17] Don't crash while diagnosing different access specifier of a deduction guide..
Feb 8 2019, 4:17 PM · Restricted Project
rsmith created D57984: PR40642: Fix determination of whether the final statement of a statementexpression is a discarded-value expression..
Feb 8 2019, 4:06 PM · Restricted Project
rsmith accepted D57935: [Sema] Make string literal init an rvalue..

Thanks, this is a much cleaner model than having two different APValue representations for arrays.

Feb 8 2019, 12:47 PM · Restricted Project
rsmith added a comment to D57086: Ignore trailing NullStmts in StmtExprs for GCC compatibility.

You'll also need to update TreeTransform::TransformCompoundStmt. (And please add some tests for template instantiation.)

Feb 8 2019, 11:36 AM

Feb 6 2019

rsmith added inline comments to D56571: [RFC prototype] Implementation of asm-goto support in clang.
Feb 6 2019, 2:03 PM

Feb 5 2019

rsmith added inline comments to D56571: [RFC prototype] Implementation of asm-goto support in clang.
Feb 5 2019, 4:35 PM
rsmith committed rL353240: [modules] Fix handling of initializers for templated global variables..
[modules] Fix handling of initializers for templated global variables.
Feb 5 2019, 3:37 PM
rsmith committed rC353240: [modules] Fix handling of initializers for templated global variables..
[modules] Fix handling of initializers for templated global variables.
Feb 5 2019, 3:37 PM
rsmith accepted D57747: [Sema] SequenceChecker: Fix handling of operator ||, && and ?:.

The "false negatives" in the current behaviour are the result of an intentional decision to avoid false positives for unsequenced operations that cannot actually both happen as part of the same evaluation (because both are conditional on different and mutually-exclusive conditions), such as the false positive we now get in the tests. I think it's reasonable to revisit that decision, though; the new false positive cases do not realistically seem likely to occur in real code whereas the false negatives do.

Feb 5 2019, 9:04 AM · Restricted Project

Feb 4 2019

rsmith added inline comments to D56571: [RFC prototype] Implementation of asm-goto support in clang.
Feb 4 2019, 6:32 PM
rsmith added a comment to D57626: Disallow trivial_abi on a class if all copy and move constructors are deleted.

I admit that this lock_guard example is contrived and generally ill-advised, but its ill-advisedness seems like a higher-level concern that shouldn't be "enforced" by fiddling with the rules of [[trivial_abi]], so I hope that's not what's going on here.

Feb 4 2019, 3:09 PM · Restricted Project
rsmith added inline comments to D56571: [RFC prototype] Implementation of asm-goto support in clang.
Feb 4 2019, 2:25 PM

Feb 1 2019

rsmith added inline comments to D56571: [RFC prototype] Implementation of asm-goto support in clang.
Feb 1 2019, 2:14 PM
rsmith committed rC352925: Factor out duplication between ExprIterator and ConstExprIterator..
Factor out duplication between ExprIterator and ConstExprIterator.
Feb 1 2019, 1:58 PM
rsmith committed rL352925: Factor out duplication between ExprIterator and ConstExprIterator..
Factor out duplication between ExprIterator and ConstExprIterator.
Feb 1 2019, 1:58 PM
rsmith added inline comments to D57455: [libunwind] Provide inline placement new definition.
Feb 1 2019, 1:49 PM · Restricted Project

Jan 31 2019

rsmith accepted D57032: [SemaCXX] Param diagnostic matches overload logic.

Thanks, LGTM.

Jan 31 2019, 6:57 PM · Restricted Project
rsmith accepted D55782: Fix isInSystemMacro to handle pasted token.
Jan 31 2019, 1:17 PM · Restricted Project

Jan 29 2019

rsmith committed rL352593: Simplify and modernize this code a little..
Simplify and modernize this code a little.
Jan 29 2019, 6:23 PM
rsmith committed rC352593: Simplify and modernize this code a little..
Simplify and modernize this code a little.
Jan 29 2019, 6:23 PM
rsmith accepted D56723: [CodeComplete] Propagate preferred types through parser in more cases.
Jan 29 2019, 3:45 PM
rsmith accepted D56760: Add a new builtin: __builtin_dynamic_object_size.

FWIW I'd prefer the __builtin_object_size spelling too, but it doesn't seem like the GCC folks are super crazy about it to me. So it seems likely to me that if we implement it it will just be a clang extension for at least the medium term (if not permanently). I guess that's fine, so long as the GCC people are aware that it would be bad to extend their builtin to use type&4.

Jan 29 2019, 2:11 PM

Jan 28 2019

rsmith added inline comments to D51329: [Attribute/Diagnostics] Print macro if definition is an attribute declaration.
Jan 28 2019, 5:49 PM · Restricted Project
rsmith added inline comments to D56723: [CodeComplete] Propagate preferred types through parser in more cases.
Jan 28 2019, 2:38 PM
rsmith added inline comments to D55782: Fix isInSystemMacro to handle pasted token.
Jan 28 2019, 11:05 AM · Restricted Project

Jan 26 2019

rsmith accepted D56974: [SemaCXX] Fix ICE with structure bindings to members of template.

LGTM, thanks.

Jan 26 2019, 3:01 PM · Restricted Project

Jan 24 2019

rsmith accepted D57128: Add --unwindlib=[libgcc|compiler-rt] to parallel --rtlib=.

Looks good to me, thanks! Let's try this and see if it shakes out any problems.

Jan 24 2019, 7:30 PM
rsmith accepted D56792: Rename getTypeQualifiers to getMethodQualifiers.

There isn't really a standard name for this; in the absence of such a name, this seems as good as anything.

Jan 24 2019, 6:42 PM
rsmith accepted D53199: Fix the behavior of clang's -w flag..
Jan 24 2019, 1:48 PM
rsmith committed rC352102: Add a triple to this test so it passes for targets where alignof(double).
Add a triple to this test so it passes for targets where alignof(double)
Jan 24 2019, 12:53 PM
rsmith committed rL352102: Add a triple to this test so it passes for targets where alignof(double).
Add a triple to this test so it passes for targets where alignof(double)
Jan 24 2019, 12:53 PM

Jan 23 2019

rsmith added a comment to D55500: [Builtins] Implement __builtin_is_constant_evaluated for use in C++2a.

Thanks for the added tests! They seem to have found a bug in the handling of local const integral variables.

Jan 23 2019, 7:02 PM
rsmith committed rC352011: Improve diagnostic for -fvisibility mismatch between module/PCH build.
Improve diagnostic for -fvisibility mismatch between module/PCH build
Jan 23 2019, 6:42 PM
rsmith committed rL352011: Improve diagnostic for -fvisibility mismatch between module/PCH build.
Improve diagnostic for -fvisibility mismatch between module/PCH build
Jan 23 2019, 6:42 PM
rsmith added a comment to D56760: Add a new builtin: __builtin_dynamic_object_size.

So it seems like the GCC people want to keep __builtin_object_size static.

Jan 23 2019, 11:57 AM

Jan 22 2019

rsmith committed rC351924: [ubsan] Check the correct size when sanitizing array new..
[ubsan] Check the correct size when sanitizing array new.
Jan 22 2019, 7:37 PM
rsmith committed rL351924: [ubsan] Check the correct size when sanitizing array new..
[ubsan] Check the correct size when sanitizing array new.
Jan 22 2019, 7:37 PM
rsmith added a comment to D56723: [CodeComplete] Propagate preferred types through parser in more cases.

I'll try playing around with your idea, my initial plan is to store preferred type alongside the current token as a member of the Parser class and update it when advancing to next token, when the parser backtracks and in the places where we care about propagating the types.

Jan 22 2019, 1:33 PM
rsmith added inline comments to D55676: [Modules] Fix decl order for DeclsInPrototype.
Jan 22 2019, 11:22 AM

Jan 21 2019

rsmith added a comment to D56723: [CodeComplete] Propagate preferred types through parser in more cases.

This seems to be introducing a requirement that enterUnknown is called on all paths through the parser where we recurse to parse a subexpression and don't have specific type information. That seems like an unfortunate requirement to me from a maintenance perspective; have you considered alternative approaches? For example, we could store the preferred type alongside the SourceLocation of the corresponding token (and propagate the information when we parse parentheses and any other completion-type-preserving construct), and only apply the information when the code completion token is at that location. That way, we only need to annotate cases where we know the preferred type, not when we don't.

Jan 21 2019, 3:31 PM

Jan 18 2019

rsmith accepted D54472: Disable invalid isPodLike<> specialization.

Thanks, looks great!

Jan 18 2019, 3:02 PM

Jan 17 2019

rsmith committed rC351487: Fix cleanup registration for lambda captures..
Fix cleanup registration for lambda captures.
Jan 17 2019, 2:10 PM
rsmith committed rL351487: Fix cleanup registration for lambda captures..
Fix cleanup registration for lambda captures.
Jan 17 2019, 2:10 PM
rsmith accepted D56731: Add -Wctad-maybe-unsupported to diagnose CTAD on types with no user defined deduction guides..
Jan 17 2019, 11:24 AM