<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in ast-dump-APValue-todo.cpp</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>7a7d50e1 - [clang][NFC] Also test for serialization in test/AST/ast-dump-APValue-*</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/AST/ast-dump-APValue-todo.cpp#7a7d50e1</link>
        <description>[clang][NFC] Also test for serialization in test/AST/ast-dump-APValue-*This does not actually exercise the serialization of APValue, but itwill at least prevent a regression in the future. NFC.

            List of files:
            /llvm-project-15.0.7/clang/test/AST/ast-dump-APValue-todo.cpp</description>
        <pubDate>Wed, 08 Jul 2020 15:36:48 +0000</pubDate>
        <dc:creator>Bruno Ricci &lt;riccibrun@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>f63e3ea5 - [clang] Rework how and when APValues are dumped</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/AST/ast-dump-APValue-todo.cpp#f63e3ea5</link>
        <description>[clang] Rework how and when APValues are dumpedCurrently APValues are dumped as a single string. This becomes quicklycompletely unreadable since APValue is a tree-like structure. Even a simpleexample is not pretty:  struct S { int arr[4]; float f; };  constexpr S s = { .arr = {1,2}, .f = 3.1415f };  // Struct  fields: Array: Int: 1, Int: 2, 2 x Int: 0, Float: 3.141500e+00With this patch this becomes:  -Struct   |-field: Array size=4   | |-elements: Int 1, Int 2   | `-filler: 2 x Int 0   `-field: Float 3.141500e+00Additionally APValues are currently only dumped as part of visiting aConstantExpr. This patch also dump the value of the initializer of constexprvariable declarations:  constexpr int foo(int a, int b) { return a + b - 42; }  constexpr int a = 1, b = 2;  constexpr int c = foo(a, b) &gt; 0 ? foo(a, b) : foo(b, a);  // VarDecl 0x62100008aec8 &lt;col:3, col:57&gt; col:17 c &apos;const int&apos; constexpr cinit  // |-value: Int -39  // `-ConditionalOperator 0x62100008b4d0 &lt;col:21, col:57&gt; &apos;int&apos;  // &lt;snip&gt;Do the above by moving the dump functions to TextNodeDumper which already hasthe machinery to display trees. The cases APValue::LValue, APValue::MemberPointerand APValue::AddrLabelDiff are left as they were before (unimplemented).We try to display multiple elements on the same line if they are considered tobe &quot;simple&quot;. This is to avoid wasting large amounts of vertical space in anexample like:  constexpr int arr[8] = {0,1,2,3,4,5,6,7};  // VarDecl 0x62100008bb78 &lt;col:3, col:42&gt; col:17 arr &apos;int const[8]&apos; constexpr cinit  // |-value: Array size=8  // | |-elements: Int 0, Int 1, Int 2, Int 3  // | `-elements: Int 4, Int 5, Int 6, Int 7Differential Revision: https://reviews.llvm.org/D83183Reviewed By: aaron.ballman

            List of files:
            /llvm-project-15.0.7/clang/test/AST/ast-dump-APValue-todo.cpp</description>
        <pubDate>Mon, 06 Jul 2020 20:50:23 +0000</pubDate>
        <dc:creator>Bruno Ricci &lt;riccibrun@gmail.com&gt;</dc:creator>
    </item>
</channel>
</rss>
