[all-commits] [llvm/llvm-project] a64492: [libc++] Simpler Python script for generating a gr...

Quuxplusone via All-commits all-commits at lists.llvm.org
Tue Mar 23 11:12:43 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a644920a02bfa30337c936afcdc04c9c7970b206
      https://github.com/llvm/llvm-project/commit/a644920a02bfa30337c936afcdc04c9c7970b206
  Author: Arthur O'Dwyer <arthur.j.odwyer at gmail.com>
  Date:   2021-03-23 (Tue, 23 Mar 2021)

  Changed paths:
    M libcxx/utils/graph_header_deps.py
    R libcxx/utils/libcxx/graph.py

  Log Message:
  -----------
  [libc++] Simpler Python script for generating a graph of libc++'s header dependencies

My attempts to play around with the old graph_header_deps.py were mostly fruitless;
I needed to modify it in various ways to make it work, and then even when I got it
working, it generated pretty ugly graphs.

Old graph_header_deps.py (after my local changes to simplify the usage)
(producing https://i.imgur.com/zATrsaP.jpg )

    mkdir foo
    time ./graph_header_deps.py --libcxx-only -o foo --clang-command ~/llvm-project/build/bin/clang++
    dot -Tpng < foo/all_headers.dot > old.png
    file old.png

    real    0m37.453s
    old.png: PNG image data, 25882 x 3035, 8-bit/color RGBA, non-interlaced

New graph_header_deps.py
(producing https://i.imgur.com/ZU0G52U.png )

    time ./graph_header_deps.py | dot -Tpng > new.png
    file new.png

    real    0m1.063s
    new.png: PNG image data, 6162 x 1344, 8-bit/color RGBA, non-interlaced

Differential Revision: https://reviews.llvm.org/D99124


  Commit: 5f1de9cab1ce2fbb1e45239d3e0e8d4970d2124e
      https://github.com/llvm/llvm-project/commit/5f1de9cab1ce2fbb1e45239d3e0e8d4970d2124e
  Author: Arthur O'Dwyer <arthur.j.odwyer at gmail.com>
  Date:   2021-03-23 (Tue, 23 Mar 2021)

  Changed paths:
    M clang/lib/Sema/SemaStmt.cpp
    M clang/test/CXX/class/class.init/class.copy.elision/p3.cpp

  Log Message:
  -----------
  [C++20] [P1825] Fix bugs with implicit-move from variables of reference type.

Review D88220 turns out to have some pretty severe bugs, but I *think*
this patch fixes them.

Paper P1825 is supposed to enable implicit move from "non-volatile objects
and rvalue references to non-volatile object types." Instead, what was committed
seems to have enabled implicit move from "non-volatile things of all kinds,
except that if they're rvalue references then they must also refer to non-volatile
things." In other words, D88220 accidentally enabled implicit move from
lvalue object references (super yikes!) and also from non-object references
(such as references to functions).

These two cases are now fixed and regression-tested.

Differential Revision: https://reviews.llvm.org/D98971


Compare: https://github.com/llvm/llvm-project/compare/fdf97bc73891...5f1de9cab1ce


More information about the All-commits mailing list