[clang] [clang] fix serialization of SubstNonTypeTemplateParmExpr (PR #134560)

via cfe-commits cfe-commits at lists.llvm.org
Fri Apr 11 11:34:48 PDT 2025


eaeltsin wrote:

Dumping pcm files that occasionally differ, we always get the same diff:
```
<     <EXPR_SUBST_NON_TYPE_TEMPLATE_PARM op0=25165824 op1=56 op2=360777253048 op3=3 op4=21560934252/>
---
>     <EXPR_SUBST_NON_TYPE_TEMPLATE_PARM op0=8388608 op1=56 op2=360777253048 op3=3 op4=21560934252/>
66200c66200
<     <EXPR_SUBST_NON_TYPE_TEMPLATE_PARM op0=25165824 op1=56 op2=360777253048 op3=2 op4=21560934252/>
---
>     <EXPR_SUBST_NON_TYPE_TEMPLATE_PARM op0=8388608 op1=56 op2=360777253048 op3=2 op4=21560934252/>
66205c66205
<     <EXPR_SUBST_NON_TYPE_TEMPLATE_PARM op0=25165824 op1=56 op2=360777253048 op3=1 op4=21560934252/>
---
>     <EXPR_SUBST_NON_TYPE_TEMPLATE_PARM op0=8388608 op1=56 op2=360777253048 op3=1 op4=21560934252/>
66223c66223
<     <EXPR_SUBST_NON_TYPE_TEMPLATE_PARM op0=25165824 op1=56 op2=360777253048 op3=3 op4=21560934252/>
---
>     <EXPR_SUBST_NON_TYPE_TEMPLATE_PARM op0=8388608 op1=56 op2=360777253048 op3=3 op4=21560934252/>
66228c66228
<     <EXPR_SUBST_NON_TYPE_TEMPLATE_PARM op0=25165824 op1=56 op2=360777253048 op3=2 op4=21560934252/>
---
>     <EXPR_SUBST_NON_TYPE_TEMPLATE_PARM op0=8388608 op1=56 op2=360777253048 op3=2 op4=21560934252/>
66233c66233
<     <EXPR_SUBST_NON_TYPE_TEMPLATE_PARM op0=25165824 op1=56 op2=360777253048 op3=1 op4=21560934252/>
---
>     <EXPR_SUBST_NON_TYPE_TEMPLATE_PARM op0=8388608 op1=56 op2=360777253048 op3=1 op4=21560934252/>
```

so `op0` non-deterministically changes between `25165824` and `8388608`


https://github.com/llvm/llvm-project/pull/134560


More information about the cfe-commits mailing list