OK.
On Mon, Feb 12, 2018 at 2:18 PM, Paolo Carlini <paolo.carl...@oracle.com> wrote: > Hi, > > this ICE on valid happens only with checking enabled - that explains why we > didn't notice it so far - but I think points to a minor but substantive > correctness issue. In short, we ICE when build_conditional_expr calls > save_expr, which in turn calls contain_placeholder_p, which doesn't handle > correctly the sizeof(int), and tries to use TREE_CONSTANT on the > INTEGER_TYPE. I think that in general we simply have to explicitly handle > both kinds of sizeof in contains_placeholder_p: even for a type as simple as > INTEGER_TYPE the result may not be trivial, ie, type_contains_placeholder_1 > checks the bounds: > > case INTEGER_TYPE: > case REAL_TYPE: > case FIXED_POINT_TYPE: > /* Here we just check the bounds. */ > return (CONTAINS_PLACEHOLDER_P (TYPE_MIN_VALUE (type)) > || CONTAINS_PLACEHOLDER_P (TYPE_MAX_VALUE (type))); > > I'm finishing testing the below on x86_64-linux, all good so far. > > Thanks, Paolo. > > ////////////////// >