Page MenuHomePhabricator
Feed Advanced Search

Jul 20 2022

kimgr added a comment to D112374: [clang] Implement ElaboratedType sugaring for types written bare.

From a purely personal perspective, I'd prefer if this landed after the branch for llvm-15.

Jul 20 2022, 12:35 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project

Jul 17 2022

kimgr added a comment to D112374: [clang] Implement ElaboratedType sugaring for types written bare.

I'm coming at this from pretty far away, so there's very likely lots of details that I'm overlooking. But it seems to me the mainline had only had an ElaboratedType node if there was elaboration, and not otherwise. And that makes a lot more sense to me than having 2 ElaboratedType* nodes _for every type in the AST_, just to express that "hey, by the way, this type had no elaboration".

There are no 2 ElaboratedType nodes, there is only one. If you are seeing something like an ElaboratedType wrapping directly over another ElaboratedType, that would seem to be a bug.

Jul 17 2022, 2:08 AM · Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project

Jul 16 2022

kimgr added a comment to D112374: [clang] Implement ElaboratedType sugaring for types written bare.

It's the difference in knowing the type was written without any tag or nested-name specifier, and having a type that you are not sure how it was written.

When we are dealing with a type which we are not sure, we would like to print it fully qualified, with a synthetic nested name specifier computed from it's DC,
because otherwise it could be confusing as the type could come from somewhere very distant from the context we are printing the type from. We would not
want to assume that a type which has been desugared was written how it's desugared state would seem to imply.

Jul 16 2022, 11:35 AM · Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project
kimgr added a comment to D112374: [clang] Implement ElaboratedType sugaring for types written bare.

It's a little confusing, because it now looks like _every_ Type in the AST is wrapped in an ElaboratedTypeLoc + ElaboratedType. IWYU's debug AST dump shows this (excerpt):

tests/cxx/sizeof_reference.cc:51:8: (1) [ VarDecl ] size_t s2                                                                                                                                                      
tests/cxx/sizeof_reference.cc:51:1: (2) [ ElaboratedTypeLoc ] size_t                                                                                                                                               
tests/cxx/sizeof_reference.cc:51:1: (2) [ ElaboratedType ] size_t                                                                                                                                                  
tests/cxx/sizeof_reference.cc:51:1: (3) [ TypedefTypeLoc ] size_t                                                                                                                                                  
tests/cxx/sizeof_reference.cc:51:1: (3) [ TypedefType ] size_t                                                                                                                                                     
Marked full-info use of decl size_t (from /home/kimgr/code/iwyu/out/main/lib/clang/15.0.0/include/stddef.h:46:23) at tests/cxx/sizeof_reference.cc:51:1
tests/cxx/sizeof_reference.cc:51:13: (2) [ UnaryExprOrTypeTraitExpr ] UnaryExprOrTypeTraitExpr 0x5589fd2a4230 'unsigned long' sizeof 'IndirectTemplateStruct<IndirectClass> &'
Jul 16 2022, 8:05 AM · Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project

Jul 13 2022

kimgr added a comment to D112374: [clang] Implement ElaboratedType sugaring for types written bare.

This patch also broke IWYU, not exactly sure how or why yet. We run around the AST quite a bit, so structural changes like this often bite us.

Jul 13 2022, 12:53 PM · Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project, Restricted Project

Mar 22 2022

kimgr closed D117391: [AST] Ignore implicit nodes in CastExpr::getConversionFunction.

Now that D119477 has landed, this suggested change is obsolete. Closing.

Mar 22 2022, 12:31 PM · Restricted Project, Restricted Project

Mar 19 2022

kimgr added a comment to D119476: Generalize and harmonize sub-expression traversal.

Thanks! Could you help me land it? Author: Kim Gräsman <kim.grasman at gmail.com>.

Mar 19 2022, 8:15 AM · Restricted Project, Restricted Project
kimgr updated the diff for D119477: Ignore FullExpr when traversing cast sub-expressions.

Address review feedback

Mar 19 2022, 7:13 AM · Restricted Project, Restricted Project

Mar 18 2022

kimgr added inline comments to D119477: Ignore FullExpr when traversing cast sub-expressions.
Mar 18 2022, 9:32 AM · Restricted Project, Restricted Project

Mar 14 2022

kimgr added a comment to D119477: Ignore FullExpr when traversing cast sub-expressions.

@aaron.ballman Friendly Monday ping.

Mar 14 2022, 1:30 PM · Restricted Project, Restricted Project
kimgr added a comment to D119476: Generalize and harmonize sub-expression traversal.

@aaron.ballman Friendly Monday ping.

Mar 14 2022, 1:29 PM · Restricted Project, Restricted Project

Mar 6 2022

Herald added a project to D119477: Ignore FullExpr when traversing cast sub-expressions: Restricted Project.

Gentle weekly ping

Mar 6 2022, 10:55 PM · Restricted Project, Restricted Project
Herald added a project to D119476: Generalize and harmonize sub-expression traversal: Restricted Project.

Gentle weekly ping

Mar 6 2022, 10:54 PM · Restricted Project, Restricted Project

Feb 27 2022

kimgr updated the diff for D119476: Generalize and harmonize sub-expression traversal.

Fix typo in comment.

Feb 27 2022, 4:25 AM · Restricted Project, Restricted Project
kimgr added a comment to D119477: Ignore FullExpr when traversing cast sub-expressions.

I have a local branch with both D119476 and this patch.

Feb 27 2022, 4:18 AM · Restricted Project, Restricted Project

Feb 20 2022

kimgr added a comment to D119095: [clang] Fix redundant functional cast in ConstantExpr.

Having looked at this some more, I wonder if this patch is covering for another problem. Running even the simplest example fails on an assertion in Sema::BuildCXXTypeConstructExpr: https://godbolt.org/z/fMPcsh4f3.

Feb 20 2022, 2:41 AM · Restricted Project

Feb 19 2022

kimgr added a comment to D119095: [clang] Fix redundant functional cast in ConstantExpr.

I can also confirm that main and my branch (containing https://reviews.llvm.org/D119477 and https://reviews.llvm.org/D119476) both assert on the same line:

$ cat ../../bug-53244.cc 
struct A {       
    consteval A() {}
    A(const A&) = delete;
    consteval void f() {}
};
Feb 19 2022, 10:17 AM · Restricted Project
kimgr added a comment to D119095: [clang] Fix redundant functional cast in ConstantExpr.

First sanity check: applying this patch on my branch causes no test failures either in the tools/clang/unittests/Tooling/ToolingTests or ninja check-clang-semacxx. Hopefully I can think this through more deeply soon.

Feb 19 2022, 5:21 AM · Restricted Project

Feb 15 2022

kimgr added a comment to D119095: [clang] Fix redundant functional cast in ConstantExpr.

Thanks for the heads-up! I'm a little busy this week, but I need to think about potential interference between these two changes. Off the top of my head it looks like they should get along fine, but there may be subtleties.

Feb 15 2022, 8:35 AM · Restricted Project

Feb 10 2022

kimgr added inline comments to D119476: Generalize and harmonize sub-expression traversal.
Feb 10 2022, 1:19 PM · Restricted Project, Restricted Project
kimgr updated subscribers of D119477: Ignore FullExpr when traversing cast sub-expressions.

@aaron.ballman This patch replaces https://reviews.llvm.org/D117391 as a potential solution for https://github.com/llvm/llvm-project/issues/53044.

Feb 10 2022, 1:18 PM · Restricted Project, Restricted Project
kimgr requested review of D119477: Ignore FullExpr when traversing cast sub-expressions.
Feb 10 2022, 1:13 PM · Restricted Project, Restricted Project
kimgr updated subscribers of D119476: Generalize and harmonize sub-expression traversal.

@aaron.ballman First refactor to generalize and harmonize getSubExprAsWritten and getConversionFunction. As mentioned in the commit message, this is strictly speaking a functional change, but it should have no visible effect.

Feb 10 2022, 1:04 PM · Restricted Project, Restricted Project
kimgr requested review of D119476: Generalize and harmonize sub-expression traversal.
Feb 10 2022, 1:02 PM · Restricted Project, Restricted Project

Feb 7 2022

kimgr added a comment to D117391: [AST] Ignore implicit nodes in CastExpr::getConversionFunction.

@aaron.ballman Thanks for the valuable feedback!

Feb 7 2022, 10:02 AM · Restricted Project, Restricted Project

Feb 6 2022

kimgr added a comment to D117391: [AST] Ignore implicit nodes in CastExpr::getConversionFunction.

I have now convinced myself that including FullExpr in skipImplicitTemporary gives an improvement in consteval diagnostics. But I'm still not sure why. Motivating example, derived from cxx2a-consteval.cpp:

struct A {
  int *p = new int(42);
  consteval A ret_a() const {
      return A{};
  }
};
Feb 6 2022, 11:04 AM · Restricted Project, Restricted Project

Feb 3 2022

kimgr added inline comments to D117391: [AST] Ignore implicit nodes in CastExpr::getConversionFunction.
Feb 3 2022, 7:31 AM · Restricted Project, Restricted Project

Feb 2 2022

kimgr added inline comments to D117391: [AST] Ignore implicit nodes in CastExpr::getConversionFunction.
Feb 2 2022, 12:46 PM · Restricted Project, Restricted Project
kimgr added a comment to D117391: [AST] Ignore implicit nodes in CastExpr::getConversionFunction.

Here's the diff between my patch (main) and handling FullExpr in skipImplicitTemporary as in the diff I posted above (patch.txt):

--- main.txt	2022-02-02 20:37:21.619534225 +0100
+++ patch.txt	2022-02-02 20:34:17.016949227 +0100
@@ -192,6 +192,13 @@
 /home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:360:25: note: temporary created here
   { A k = to_lvalue_ref(A()); } // expected-error {{is not a constant expression}}
                         ^
+/home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:362:25: error: call to consteval function 'alloc::A::ret_a' is not a constant expression
+  { A k = to_lvalue_ref(A().ret_a()); } // expected-error {{is not a constant expression}}
+                        ^
+/home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:362:25: note: pointer to heap-allocated object is not a constant expression
+/home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:334:12: note: heap allocation performed here
+  int* p = new int(42);
+           ^
 /home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:362:11: error: call to consteval function 'alloc::to_lvalue_ref' is not a constant expression
   { A k = to_lvalue_ref(A().ret_a()); } // expected-error {{is not a constant expression}}
           ^
@@ -199,6 +206,27 @@
 /home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:362:25: note: temporary created here
   { A k = to_lvalue_ref(A().ret_a()); } // expected-error {{is not a constant expression}}
                         ^
+/home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:364:13: error: call to consteval function 'alloc::A::ret_a' is not a constant expression
+  { int k = A().ret_a().ret_i(); }
+            ^
+/home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:364:13: note: pointer to heap-allocated object is not a constant expression
+/home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:334:12: note: heap allocation performed here
+  int* p = new int(42);
+           ^
+/home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:370:25: error: call to consteval function 'alloc::A::ret_a' is not a constant expression
+  { int k = const_a_ref(A().ret_a()); }
+                        ^
+/home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:370:25: note: pointer to heap-allocated object is not a constant expression
+/home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:334:12: note: heap allocation performed here
+  int* p = new int(42);
+           ^
+/home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:371:39: error: call to consteval function 'alloc::A::ret_a' is not a constant expression
+  { int k = const_a_ref(to_lvalue_ref(A().ret_a())); }
+                                      ^
+/home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:371:39: note: pointer to heap-allocated object is not a constant expression
+/home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:334:12: note: heap allocation performed here
+  int* p = new int(42);
+           ^
 /home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:375:14: error: call to consteval function 'alloc::A::ret_a' is not a constant expression
   { int k = (A().ret_a(), A().ret_i()); }// expected-error {{is not a constant expression}}
              ^
@@ -206,6 +234,13 @@
 /home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:334:12: note: heap allocation performed here
   int* p = new int(42);
            ^
+/home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:377:26: error: call to consteval function 'alloc::A::ret_a' is not a constant expression
+  { int k = (const_a_ref(A().ret_a()), A().ret_i()); }
+                         ^
+/home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:377:26: note: pointer to heap-allocated object is not a constant expression
+/home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:334:12: note: heap allocation performed here
+  int* p = new int(42);
+           ^
 /home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:400:7: error: call to consteval function 'self_referencing::f' is not a constant expression
   s = f(0); // expected-error {{is not a constant expression}}
       ^
@@ -454,9 +489,9 @@
 /home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:548:15: note: declared here
 consteval int f_eval() { // expected-note+ {{declared here}}
               ^
-/home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:574:25: error: cannot take address of consteval function 'f_eval' outside of an immediate invocation
-  { Copy c = Copy(Copy(&f_eval)); }// expected-error {{cannot take address of consteval}}
-                        ^
+/home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:567:19: error: cannot take address of consteval function 'f_eval' outside of an immediate invocation
+  { Copy c((Copy(&f_eval))); }// expected-error {{cannot take address of consteval}}
+                  ^
 /home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:548:15: note: declared here
 consteval int f_eval() { // expected-note+ {{declared here}}
               ^
@@ -466,9 +501,9 @@
 /home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:548:15: note: declared here
 consteval int f_eval() { // expected-note+ {{declared here}}
               ^
-/home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:567:19: error: cannot take address of consteval function 'f_eval' outside of an immediate invocation
-  { Copy c((Copy(&f_eval))); }// expected-error {{cannot take address of consteval}}
-                  ^
+/home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:574:25: error: cannot take address of consteval function 'f_eval' outside of an immediate invocation
+  { Copy c = Copy(Copy(&f_eval)); }// expected-error {{cannot take address of consteval}}
+                        ^
 /home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:548:15: note: declared here
 consteval int f_eval() { // expected-note+ {{declared here}}
               ^
@@ -501,4 +536,4 @@
     a() + d(); // expected-error {{call to consteval function 'PR48235::A::a' is not a constant expression}} \
     ^
 /home/kimgr/code/llvm-project/clang/test/SemaCXX/cxx2a-consteval.cpp:661:5: note: implicit use of 'this' pointer is only allowed within the evaluation of a call to a 'constexpr' member function
-84 errors generated.
+89 errors generated.
Feb 2 2022, 12:02 PM · Restricted Project, Restricted Project
kimgr added a comment to D117391: [AST] Ignore implicit nodes in CastExpr::getConversionFunction.

Alright, with this diff:

diff --git a/clang/lib/AST/Expr.cpp b/clang/lib/AST/Expr.cpp
index d502b3f1e93e..1716ac0be7ef 100644
--- a/clang/lib/AST/Expr.cpp
+++ b/clang/lib/AST/Expr.cpp
@@ -1908,6 +1908,9 @@ namespace {
     if (auto *Binder = dyn_cast<CXXBindTemporaryExpr>(E))
       E = Binder->getSubExpr();
Feb 2 2022, 11:29 AM · Restricted Project, Restricted Project
kimgr added a comment to D117391: [AST] Ignore implicit nodes in CastExpr::getConversionFunction.

@aaron.ballman @davrec Thank you both!

Feb 2 2022, 8:48 AM · Restricted Project, Restricted Project
kimgr added a comment to D117390: [AST] Reformat CastExpr unittest suite.

@aaron.ballman Thanks! Please use Kim Gräsman and kim.grasman at gmail.com.

Feb 2 2022, 8:42 AM · Restricted Project

Jan 31 2022

kimgr added a comment to D117391: [AST] Ignore implicit nodes in CastExpr::getConversionFunction.

@rsmith Gentle ping

Jan 31 2022, 12:19 AM · Restricted Project, Restricted Project
kimgr added a comment to D117390: [AST] Reformat CastExpr unittest suite.

@rsmith Gentle ping

Jan 31 2022, 12:18 AM · Restricted Project
kimgr added a comment to D31696: Automatically add include-what-you-use for when building in tree.

We've had reports from users that it's now possible to build IWYU together with Clang and LLVM using LLVM_EXTERNAL_PROJECTS, so this can be closed.

Jan 31 2022, 12:17 AM

Jan 24 2022

kimgr added a comment to D117391: [AST] Ignore implicit nodes in CastExpr::getConversionFunction.

@rsmith Weekly ping

Jan 24 2022, 11:00 AM · Restricted Project, Restricted Project
kimgr added a comment to D117390: [AST] Reformat CastExpr unittest suite.

@rsmith Weekly ping

Jan 24 2022, 10:59 AM · Restricted Project

Jan 16 2022

kimgr added a comment to D117391: [AST] Ignore implicit nodes in CastExpr::getConversionFunction.
  • Update broken test case
  • Rebase on latest main (8eb74626f)
  • Build and run ninja check-clang
Jan 16 2022, 7:51 AM · Restricted Project, Restricted Project
kimgr updated the diff for D117391: [AST] Ignore implicit nodes in CastExpr::getConversionFunction.

Fix spurious semicolon

Jan 16 2022, 7:48 AM · Restricted Project, Restricted Project
kimgr added inline comments to D117391: [AST] Ignore implicit nodes in CastExpr::getConversionFunction.
Jan 16 2022, 7:19 AM · Restricted Project, Restricted Project
kimgr added a comment to D117390: [AST] Reformat CastExpr unittest suite.

@daverec I don't have commit access, could you help me land this?

Jan 16 2022, 6:36 AM · Restricted Project

Jan 15 2022

kimgr added a comment to D117391: [AST] Ignore implicit nodes in CastExpr::getConversionFunction.

Oh yeah, this closes bug https://github.com/llvm/llvm-project/issues/53044. Do I mention that in the commit message/patch summary?

Jan 15 2022, 2:29 AM · Restricted Project, Restricted Project
kimgr added reviewers for D117391: [AST] Ignore implicit nodes in CastExpr::getConversionFunction: sberg, davrec.
Jan 15 2022, 2:24 AM · Restricted Project, Restricted Project
kimgr added reviewers for D117390: [AST] Reformat CastExpr unittest suite: sberg, davrec.
Jan 15 2022, 2:23 AM · Restricted Project
kimgr requested review of D117391: [AST] Ignore implicit nodes in CastExpr::getConversionFunction.
Jan 15 2022, 2:17 AM · Restricted Project, Restricted Project
kimgr requested review of D117390: [AST] Reformat CastExpr unittest suite.
Jan 15 2022, 2:16 AM · Restricted Project

Aug 3 2021

kimgr added a comment to D106394: [clang][pp] adds '#pragma include_instead'.

@dblaikie I think @sammccall mentioned IWYU pragma: friend before, that's what I was alluding to. Much of IWYU's complexity comes from maintaining these library mappings both statically (using mapping tables) and dynamically (using in-source annotations).

Aug 3 2021, 12:53 PM · Restricted Project
kimgr added a comment to D106394: [clang][pp] adds '#pragma include_instead'.

Hi, sorry I'm late to the game. IWYU maintainer here.

Aug 3 2021, 3:44 AM · Restricted Project

Jun 7 2021

kimgr added a comment to D54047: Check TUScope is valid before use.

This was eventually fixed in IWYU based on @jkorous' suggestion above. I believe the problem is/was:

Jun 7 2021, 1:34 PM
kimgr added a comment to D31697: Check for null before using TUScope.

This was eventually fixed in IWYU. I believe the problem is/was:

Jun 7 2021, 1:32 PM

Jan 23 2020

kimgr added a comment to D72703: Add a warning, flags and pragmas to limit the number of pre-processor tokens in a translation unit.

I assume the same correlation could also be found with lines of code, but I think tokens is a better dimension to measure since it's less likely to be gamed, and it also is also kind of the basic work unit that the compiler deals with.

Jan 23 2020, 10:43 PM · Restricted Project

Jan 22 2020

kimgr added a comment to D72730: [clang-tidy] run-clang-tidy -export-fixes exports only fixes, not all warnings.

A small Python suggestion.

Jan 22 2020, 11:18 PM · Restricted Project, Restricted Project

Jan 21 2020

kimgr added a comment to D72703: Add a warning, flags and pragmas to limit the number of pre-processor tokens in a translation unit.

I just want to say that finding the correlation between token count and compile time is a bit of a breakthrough! Could you expose a flag for printing token count so users can run their own analysis? Or does that already exist in baseline clang? It's easier to set a maximum for a codebase if the distribution is known.

Jan 21 2020, 11:03 PM · Restricted Project

Nov 17 2019

kimgr added a comment to D70196: [clang-include-fixer] Skip .rc files when finding symbols.

Oh, I see. I thought rc.exe was the one and only implementation. Fair enough, this is probably the lesser of two evils :)

Nov 17 2019, 10:42 PM · Restricted Project

Nov 16 2019

kimgr added a comment to D70196: [clang-include-fixer] Skip .rc files when finding symbols.

I wonder if it would be better to look at the compile-command than the source file?

Nov 16 2019, 2:54 AM · Restricted Project

Sep 28 2019

kimgr added inline comments to D68163: [analyzer][MallocChecker][NFC] Change the use of IdentifierInfo* to CallDescription.
Sep 28 2019, 1:20 AM · Restricted Project

Jul 19 2019

kimgr added a comment to D64547: [Driver] -noprofilelib flag.

On the fuzzer side, there's also -fsanitize=fuzzer-no-link (see http://llvm.org/docs/LibFuzzer.html#fuzzer-usage). Maybe it would be nice to harmonize all these?

Jul 19 2019, 10:52 PM · Restricted Project, Restricted Project

Jun 30 2019

kimgr added a comment to D61909: Add Clang shared library with C++ exports.

@sylvestre.ledru @beanz After this change, the Debian packaging on apt.llvm.org is basically broken. See https://bugs.llvm.org/show_bug.cgi?id=42432. I'm sure this can be fixed in packaging, but I don't know enough about it to know exactly what to do. At any rate I think the idea that libclang_shared.so.* can stay out of the published package is wrong. At least unless there's also a way to build the Clang tree withouth the clang_shared target.

Jun 30 2019, 7:45 AM · Restricted Project

Jun 18 2019

kimgr added a comment to D62115: fix a issue that clang is incompatible with gcc with -H option..

This looks good to me, thanks!

Could you help accept this patch?

Jun 18 2019, 12:35 AM · Restricted Project

Jun 17 2019

kimgr added a comment to D62115: fix a issue that clang is incompatible with gcc with -H option..

This looks good to me, thanks!

Jun 17 2019, 11:50 PM · Restricted Project

Jun 11 2019

kimgr added a comment to D62115: fix a issue that clang is incompatible with gcc with -H option..

I think the test needs a bit more work. It's essentially checking the same thing twice to exercise the Windows path separators.

Jun 11 2019, 12:18 PM · Restricted Project

May 21 2019

kimgr added a comment to D62115: fix a issue that clang is incompatible with gcc with -H option..

I was thinking about a testcase like:

May 21 2019, 10:37 PM · Restricted Project
kimgr added a comment to D62115: fix a issue that clang is incompatible with gcc with -H option..

Also, consider ././Inputs/empty.h.

May 21 2019, 10:37 PM · Restricted Project

May 20 2019

kimgr added a comment to D62115: fix a issue that clang is incompatible with gcc with -H option..

Should you also consider Windows path separators here?

May 20 2019, 10:36 PM · Restricted Project

Mar 5 2019

kimgr added inline comments to D58556: [LibTooling] Add retrieval of extended AST-node source to FixIt library.
Mar 5 2019, 11:01 PM · Restricted Project, Restricted Project
kimgr added inline comments to D58556: [LibTooling] Add retrieval of extended AST-node source to FixIt library.
Mar 5 2019, 2:06 AM · Restricted Project, Restricted Project

Nov 16 2018

kimgr updated subscribers of D54047: Check TUScope is valid before use.

Here's some related suggestions/questions for context:

Nov 16 2018, 10:42 PM

Oct 28 2018

kimgr added a comment to D53354: [WIP][NOT FOR COMMIT][PROTOTYPE] clang-scan-deps: dependency scanning tool rough prototype.

Hi Alex,

Oct 28 2018, 8:06 AM · Restricted Project

Sep 3 2018

kimgr added a comment to D50610: Disable -Wnoexcept-type wholesale.

This appears ready to go, here's a weekly commit ping.

Sep 3 2018, 3:27 AM

Aug 31 2018

kimgr added a comment to D50610: Disable -Wnoexcept-type wholesale.

@thakis I updated the Title/Summary to what I think is a reasonable commit message. Could you commit this for me? Thanks!

Aug 31 2018, 1:59 AM
kimgr updated the summary of D50610: Disable -Wnoexcept-type wholesale.
Aug 31 2018, 1:58 AM

Aug 22 2018

kimgr added a comment to D50610: Disable -Wnoexcept-type wholesale.

Thanks! Could you also commit this for me?

Aug 22 2018, 12:13 PM

Aug 20 2018

kimgr updated the summary of D50610: Disable -Wnoexcept-type wholesale.
Aug 20 2018, 1:39 PM

Aug 15 2018

kimgr added a comment to D50612: Remove dead code from MipsPassConfig.

I do not, could you commit it for me? Thanks!

Aug 15 2018, 11:37 PM

Aug 13 2018

kimgr added a comment to D50623: [NFC] [Hexagon] Simplify int8 truncation and validation.

The title is probably no longer relevant, but I'm having trouble coming up with something apt. If this looks good, could you commit it for me with a reasonable message? Thanks!

Aug 13 2018, 7:55 AM
kimgr updated the diff for D50623: [NFC] [Hexagon] Simplify int8 truncation and validation.

Use llvm_unreachable to convince GCC that all is well.

Aug 13 2018, 7:52 AM
kimgr added inline comments to D50623: [NFC] [Hexagon] Simplify int8 truncation and validation.
Aug 13 2018, 7:36 AM
kimgr added inline comments to D50623: [NFC] [Hexagon] Simplify int8 truncation and validation.
Aug 13 2018, 6:38 AM
kimgr updated the summary of D50623: [NFC] [Hexagon] Simplify int8 truncation and validation.
Aug 13 2018, 2:38 AM
kimgr added a comment to D50623: [NFC] [Hexagon] Simplify int8 truncation and validation.

The original code should have worked (Opc was constrained to storerb, storerh or storeri by validation earlier in the method), but GCC complained:

Aug 13 2018, 1:30 AM
kimgr created D50623: [NFC] [Hexagon] Simplify int8 truncation and validation.
Aug 13 2018, 1:26 AM

Aug 12 2018

xiangzhai awarded D50608: [Support][JSON][NFC] Silence GCC warning about broken strict aliasing rules a Like token.
Aug 12 2018, 6:56 PM
kimgr added a comment to D50608: [Support][JSON][NFC] Silence GCC warning about broken strict aliasing rules.

If you're happy with this, could you also commit it for me? Thanks!

Aug 12 2018, 9:37 AM
kimgr updated the diff for D50608: [Support][JSON][NFC] Silence GCC warning about broken strict aliasing rules.
  • Clarify comment
  • Fix naming
  • Update differential title/summary
Aug 12 2018, 9:36 AM
kimgr abandoned D50607: Silence GCC warning about broken strict aliasing rules.

Better solution in D50608.

Aug 12 2018, 9:25 AM
kimgr added a comment to D50611: Remove dead code from GlobalISelEmitter.

Could you also commit this for me, I don't have commit privs. Thanks!

Aug 12 2018, 9:23 AM
kimgr created D50612: Remove dead code from MipsPassConfig.
Aug 12 2018, 8:31 AM
kimgr created D50611: Remove dead code from GlobalISelEmitter.
Aug 12 2018, 8:26 AM
kimgr created D50610: Disable -Wnoexcept-type wholesale.
Aug 12 2018, 8:21 AM
kimgr added a comment to D50608: [Support][JSON][NFC] Silence GCC warning about broken strict aliasing rules.

Thanks, me too!

Aug 12 2018, 6:59 AM
kimgr updated the summary of D50607: Silence GCC warning about broken strict aliasing rules.
Aug 12 2018, 6:31 AM
kimgr created D50608: [Support][JSON][NFC] Silence GCC warning about broken strict aliasing rules.
Aug 12 2018, 6:03 AM
kimgr created D50607: Silence GCC warning about broken strict aliasing rules.
Aug 12 2018, 5:39 AM

Aug 1 2018

kimgr added a comment to D49922: [P0936R0] add [[clang::lifetimebound]] attribute.

Potential typo in the tests

Aug 1 2018, 11:11 PM

Jul 19 2018

kimgr added a comment to D49486: [cfe][CMake] Export the clang resource directory.

Thank you for doing this, I'm going to guess you have IWYU in mind :-)

Jul 19 2018, 11:20 AM
kimgr added a comment to D32696: More detailed docs for UsingShadowDecl.

Ping!

Jul 19 2018, 11:14 AM
Herald added a reviewer for D31696: Automatically add include-what-you-use for when building in tree: javed.absar.

This can be closed, IWYU no longer officially supports in-tree builds.

Jul 19 2018, 11:13 AM

May 17 2018

kimgr added a comment to D46652: [clang-cl, PCH] Implement support for MS-style PCH through headers.

Can you test what happens when you do clang-cl.exe /Yc stdafx.h /Tp stdafx.h, i.e. compile the header
directly as C++ code and generate .pch from it? The normal MSVC modus operandi is to have stdafx.h
included in all source files (with /Yu) and stdafx.cpp to generate it (with /Yc). That stdafx.cpp file serves
no purpose, so I've played this trick to generate PCH from the header directly. If it works, it might also
be useful for your tests.

It isn't always the case that the .cpp file serves no purpose. It's true that the MS project generators give you this setup but we've seen many projects over the years that use a regular source file with code in it to generate the PCH. The > object file generated during PCH create can have real code and the compiler can take advantage of that fact by compiling less code in the compilation units that use the PCH [...]

May 17 2018, 12:05 PM

May 16 2018

kimgr added a comment to D46652: [clang-cl, PCH] Implement support for MS-style PCH through headers.

I've done some terrible things with MSVC PCHs over the years, so I'll pile on some more questions:

May 16 2018, 1:22 PM

May 12 2018

kimgr added a comment to D46522: [clang] cmake: resolve symlinks in ClangConfig.cmake.

It works! Having to specify CMAKE_PREFIX_PATH is at least documentable, so I don't see that as a major drawback, especially if it makes docs for tools using Clang more portable.

May 12 2018, 2:20 AM