https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71378

--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> ---
Reduced test-case:

$ cat tc.ii
class A {
public:
  int GetLen();
};
class B {
  A s_MDSPartIDStr;
  void FillLoadPartitionInfo();
};
void B::FillLoadPartitionInfo() { char a[s_MDSPartIDStr.GetLen()] = ""; }

$ (gdb) p debug_tree(decl)
 <var_decl 0x7ffff6a21870 *.LC0
    type <array_type 0x7ffff6a13738
        type <integer_type 0x7ffff68855e8 char sizes-gimplified public
string-flag type_6 QI
            size <integer_cst 0x7ffff6881f48 constant 8>
            unit size <integer_cst 0x7ffff6881f60 constant 1>
            align 8 symtab 0 alias set -1 canonical type 0x7ffff68855e8
precision 8 min <integer_cst 0x7ffff6881f90 -128> max <integer_cst
0x7ffff6881fc0 127>
            pointer_to_this <pointer_type 0x7ffff68a9b28>>
        sizes-gimplified BLK
        size <var_decl 0x7ffff6a21120 D.2578 type <integer_type 0x7ffff68852a0
bitsizetype>
            unsigned ignored TI file
/home/marxin/Programming/testcases/PR71378/tc.ii line 9 col 40
            size <integer_cst 0x7ffff6881ea0 constant 128>
            unit size <integer_cst 0x7ffff6881eb8 constant 16>
            align 128 context <function_decl 0x7ffff6a16600
FillLoadPartitionInfo> chain <var_decl 0x7ffff6a211b0 D.2579>>
        unit size <var_decl 0x7ffff6a211b0 D.2579 type <integer_type
0x7ffff68851f8 sizetype>
            unsigned ignored DI file
/home/marxin/Programming/testcases/PR71378/tc.ii line 9 col 40
            size <integer_cst 0x7ffff6881e58 constant 64>
            unit size <integer_cst 0x7ffff6881e70 constant 8>
            align 64 context <function_decl 0x7ffff6a16600
FillLoadPartitionInfo> chain <var_decl 0x7ffff6a21240 D.2580>>
        align 8 symtab 0 alias set -1 structural equality
        domain <integer_type 0x7ffff6a13690 type <integer_type 0x7ffff68851f8
sizetype>
            sizes-gimplified type_6 DI size <integer_cst 0x7ffff6881e58 64>
unit size <integer_cst 0x7ffff6881e70 8>
            align 64 symtab 0 alias set -1 structural equality precision 64 min
<integer_cst 0x7ffff6881e88 0> max <var_decl 0x7ffff6a21090 D.2577>>
        pointer_to_this <pointer_type 0x7ffff6a13dc8>>
    readonly addressable asm_written static ignored in-constant-pool BLK file
(null) line 0 col 0 size <var_decl 0x7ffff6a21120 D.2578> unit size <var_decl
0x7ffff6a211b0 D.2579>
    align 256 initial <string_cst 0x7ffff69f2ee8>>

Problem is that unit size of the VAR_DECL is not an integer constant.

Reply via email to