efriedma added inline comments.

================
Comment at: clang/lib/AST/MicrosoftMangle.cpp:1250
+      for (unsigned I = 1, IE = ID->getChainingSize(); I < IE; ++I)
+        mangleSourceName("<unnamed-tag>");
+
----------------
bolshakov-a wrote:
> bolshakov-a wrote:
> > efriedma wrote:
> > > bolshakov-a wrote:
> > > > efriedma wrote:
> > > > > bolshakov-a wrote:
> > > > > > efriedma wrote:
> > > > > > > Weird indentation
> > > > > > I agree. Don't know why clang-format does so. Should I put 
> > > > > > `clang-format off` here?
> > > > > If clang-format won't cooperate, you can probably make it figure out 
> > > > > what you're doing with something like
> > > > > 
> > > > >   if (const auto *ID = dyn_cast<IndirectFieldDecl>(ND)) {
> > > > >     for (unsigned I = 1, IE = ID->getChainingSize(); I < IE; ++I)
> > > > >       mangleSourceName("<unnamed-tag>");
> > > > >   }
> > > > It doesn't help. Moreover, clang-format corrupts formatting in this 
> > > > function even without my changes. You can check it by yourself.
> > > I just tried "clang-format -i" on the file with your patch, and it seems 
> > > to compute the correct indentation here.  This with a source tree and 
> > > clang-format binary from feb 28 because that's what I had handy... but I 
> > > don't think anything relevant has changed here?
> > Running clang-format on the whole file really seems to produce correct 
> > formatting... But it is a lot of unrelated changes. Running clang-format 
> > only on the `mangleNestedName` function (`--lines=1185:1287` without my 
> > changes, `--lines=1242:1349` with my changes) produces bad formatting.
> I could make a separate PR with formatting this file and fix this PR after 
> landing that one.
If `clang-format --lines` is broken, just fix the formatting by hand (and file 
a bug against clang-format).


================
Comment at: clang/lib/AST/MicrosoftMangle.cpp:1816
 
-      QualType T = Base.getType();
+      std::stack<char> EntryTypeStack;
+      SmallVector<std::function<void()>, 2> EntryManglers;
----------------
bolshakov-a wrote:
> efriedma wrote:
> > Please just use SmallVector instead of std::stack.
> `std::stack` can be parameterized with container type (`std::stack<char, 
> SmallVector<char, 2>>`). Or it should not be used for some other reason?
Using std::stack as a wrapper around SmallVector is sort of pointless; you can 
just explicitly push_back/pop_back.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D146386/new/

https://reviews.llvm.org/D146386

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
  • [PATCH] D146386:... Andrey Ali Khan Bolshakov via Phabricator via cfe-commits
    • [PATCH] D14... Eli Friedman via Phabricator via cfe-commits
    • [PATCH] D14... Andrey Ali Khan Bolshakov via Phabricator via cfe-commits
    • [PATCH] D14... Eli Friedman via Phabricator via cfe-commits
    • [PATCH] D14... Andrey Ali Khan Bolshakov via Phabricator via cfe-commits
    • [PATCH] D14... Eli Friedman via Phabricator via cfe-commits
    • [PATCH] D14... Andrey Ali Khan Bolshakov via Phabricator via cfe-commits
    • [PATCH] D14... Andrey Ali Khan Bolshakov via Phabricator via cfe-commits
    • [PATCH] D14... Eli Friedman via Phabricator via cfe-commits
    • [PATCH] D14... Andrey Ali Khan Bolshakov via Phabricator via cfe-commits
    • [PATCH] D14... Andrey Ali Khan Bolshakov via Phabricator via cfe-commits
    • [PATCH] D14... Eli Friedman via Phabricator via cfe-commits
    • [PATCH] D14... Andrey Ali Khan Bolshakov via Phabricator via cfe-commits
    • [PATCH] D14... Eli Friedman via Phabricator via cfe-commits
    • [PATCH] D14... Andrey Ali Khan Bolshakov via Phabricator via cfe-commits

Reply via email to