22#ifndef GCC_VALUE_RANGE_H
23#define GCC_VALUE_RANGE_H
89 template <
typename T>
friend bool is_a (
vrange &);
123 void dump (FILE *)
const;
167 void dump (FILE *)
const;
209 return m_mask.get_precision ();
251 if (unknown1 || unknown2)
252 return unknown1 == unknown2;
384template<
unsigned N,
bool RESIZABLE = false>
433 bool operator== (const
prange &) const;
618 virtual tree type ()
const override;
624 void set_nan (
tree type,
bool sign);
626 virtual void set_varying (
tree type)
override;
627 virtual void set_undefined ()
override;
628 virtual bool union_ (
const vrange &)
override;
629 virtual bool intersect (
const vrange &)
override;
631 virtual bool singleton_p (
tree *result =
NULL)
const override;
635 virtual bool zero_p ()
const override;
636 virtual bool nonzero_p ()
const override;
637 virtual void set_nonzero (
tree type)
override;
638 virtual void set_zero (
tree type)
override;
639 virtual void set_nonnegative (
tree type)
override;
640 virtual bool fits_p (
const vrange &)
const override;
646 virtual tree lbound ()
const override;
647 virtual tree ubound ()
const override;
650 void update_nan (
bool sign);
674 virtual bool contains_p (
tree cst)
const override;
679 bool normalize_kind ();
680 bool union_nans (
const frange &);
681 bool intersect_nans (
const frange &);
746 const T &derived =
static_cast<const T &
> (v);
747 return is_a <T> (
const_cast<T &
> (derived));
755 return static_cast <T &
> (v);
763 return static_cast <const T &
> (v);
810 for (
unsigned i = 0;
i < n; ++
i)
816template<
unsigned N,
bool RESIZABLE>
868 operator const vrange &()
const;
869 void dump (FILE *)
const;
882 {
return m_vrange->singleton_p (result); }
892 {
return m_vrange->update_bitmask (bm); }
897 void init (
const vrange &);
1027 *
this = *
r.m_vrange;
1176template<
unsigned N,
bool RESIZABLE>
1183template<
unsigned N,
bool RESIZABLE>
1190template<
unsigned N,
bool RESIZABLE>
1197template<
unsigned N,
bool RESIZABLE>
1204template<
unsigned N,
bool RESIZABLE>
1212template<
unsigned N,
bool RESIZABLE>
1219template<
unsigned N,
bool RESIZABLE>
1341 if (
r.undefined_p ())
1345 return r.contains_p (zero);
1524 if (
r.undefined_p ())
1652 set (min, max, kind);
1758 buf,
sizeof (buf),
false);
Definition value-range.h:601
tree m_type
Definition value-range.h:685
void update_nan(tree)=delete
void set(tree type, const REAL_VALUE_TYPE &, const REAL_VALUE_TYPE &, value_range_kind=VR_RANGE)
Definition value-range.cc:1227
void update_nan()
Definition value-range.h:1714
void clear_nan()
Definition value-range.h:1740
bool known_isfinite() const
Definition value-range.h:1855
bool known_isdenormal_or_zero() const
Definition value-range.h:1883
bool maybe_isinf() const
Definition value-range.h:1898
bool m_neg_nan
Definition value-range.h:689
bool known_isnormal() const
Definition value-range.h:1867
bool nan_signbit_p(bool &signbit) const
Definition value-range.h:1987
virtual void set_varying(tree type) override
Definition value-range.h:1663
bool m_pos_nan
Definition value-range.h:688
bool known_isnan() const
Definition value-range.h:1944
void flush_denormals_to_zero()
Definition value-range.cc:1047
virtual void set_undefined() override
Definition value-range.h:1683
bool maybe_isnan() const
Definition value-range.h:1922
bool normalize_kind()
Definition value-range.cc:1250
virtual void verify_range() const override
Definition value-range.cc:1574
unsigned char m_num_ranges
Definition value-range.h:687
bool known_isinf() const
Definition value-range.h:1910
frange_pair m_pairs[MAX_PAIRS]
Definition value-range.h:686
const REAL_VALUE_TYPE & upper_bound() const
Definition value-range.h:700
unsigned num_pairs() const
Definition value-range.h:670
void set_nan(tree type)
Definition value-range.h:1837
friend class vrange_printer
Definition value-range.h:603
frange()
Definition value-range.h:1615
const REAL_VALUE_TYPE & lower_bound() const
Definition value-range.h:693
friend class frange_storage
Definition value-range.h:602
bool signbit_p(bool &signbit) const
Definition value-range.h:1953
bool contains_p(const REAL_VALUE_TYPE &) const
Definition value-range.cc:1480
static bool supports_p(const_tree type)
Definition value-range.h:611
virtual tree type() const override
Definition value-range.h:1656
static const unsigned int MAX_PAIRS
Definition value-range.h:669
nan_state get_nan_state() const
Definition value-range.h:725
Definition value-range.h:386
wide_int m_ranges[N *2]
Definition value-range.h:399
int_range()
Definition value-range.h:1178
int_range(tree type, const wide_int &, const wide_int &, value_range_kind=VR_RANGE)
Definition value-range.h:1205
int_range(tree type)
Definition value-range.h:1198
int_range(const irange &)
Definition value-range.h:1213
int_range(const int_range &)
Definition value-range.h:1184
int_range & operator=(const int_range &)
Definition value-range.h:1221
~int_range() final override
Definition value-range.h:818
Definition value-range.h:150
irange_bitmask(unsigned prec)
Definition value-range.h:153
void dump(FILE *) const
Definition value-range.cc:395
bool range_from_mask(irange &r, tree type) const
Definition value-range.cc:65
void verify_mask() const
Definition value-range.cc:2960
void set_nonzero_bits(const wide_int &bits)
Definition value-range.h:225
unsigned get_precision() const
Definition value-range.h:207
bool member_p(const wide_int &val) const
Definition value-range.h:236
void set_unknown(unsigned prec)
Definition value-range.h:181
bool unknown_p() const
Definition value-range.h:192
void union_(const irange_bitmask &src)
Definition value-range.h:257
bool operator==(const irange_bitmask &src) const
Definition value-range.h:247
wide_int get_nonzero_bits() const
Definition value-range.h:218
wide_int mask() const
Definition value-range.h:158
bool operator!=(const irange_bitmask &src) const
Definition value-range.h:165
bool intersect(const irange_bitmask &src)
Definition value-range.h:268
irange_bitmask()
Definition value-range.h:152
wide_int m_mask
Definition value-range.h:177
wide_int m_value
Definition value-range.h:176
wide_int value() const
Definition value-range.h:157
Definition value-range.h:289
friend class irange_storage
Definition value-range.h:290
void invert()
Definition value-range.cc:2591
bool union_bitmask(const irange &r)
Definition value-range.cc:2919
virtual bool nonzero_p() const override
Definition value-range.h:1129
virtual bool zero_p() const override
Definition value-range.h:1121
bool m_resizable
Definition value-range.h:369
virtual bool supports_type_p(const_tree type) const override
Definition value-range.cc:508
virtual void set_nonzero(tree type) override
Definition value-range.h:1288
unsigned num_pairs() const
Definition value-range.h:1074
unsigned char m_max_ranges
Definition value-range.h:370
virtual bool union_(const vrange &) override
Definition value-range.cc:2148
virtual void set_nonnegative(tree type) override
Definition value-range.cc:522
bool snap(const wide_int &, const wide_int &, wide_int &, wide_int &, bool &)
Definition value-range.cc:2698
void maybe_resize(int needed)
Definition value-range.h:800
bool union_append(const irange &r)
Definition value-range.cc:2110
virtual void set_varying(tree type) override
Definition value-range.h:1235
virtual tree lbound() const override
Definition value-range.cc:2948
bool intersect_bitmask(const irange &r)
Definition value-range.cc:2887
tree m_type
Definition value-range.h:371
virtual bool contains_p(tree cst) const override
Definition value-range.h:1145
virtual bool intersect(const vrange &) override
Definition value-range.cc:2338
bool nonnegative_p() const
Definition value-range.cc:496
virtual irange_bitmask get_bitmask() const override
Definition value-range.cc:2828
wide_int * m_base
Definition value-range.h:374
static const int HARD_MAX_RANGES
Definition value-range.h:356
bool operator==(const irange &) const
Definition value-range.cc:1952
virtual bool fits_p(const vrange &r) const override
Definition value-range.cc:516
void set(tree type, const wide_int &, const wide_int &, value_range_kind=VR_RANGE)
Definition value-range.cc:1828
unsigned char m_num_ranges
Definition value-range.h:368
virtual void accept(const vrange_visitor &v) const override
Definition value-range.cc:148
bool irange_single_pair_union(const irange &r)
Definition value-range.cc:2043
virtual bool singleton_p(tree *result=NULL) const override
Definition value-range.cc:1989
static bool supports_p(const_tree type)
Definition value-range.h:1139
wide_int upper_bound() const
Definition value-range.h:1278
wide_int lower_bound(unsigned=0) const
Definition value-range.h:1257
irange_bitmask m_bitmask
Definition value-range.h:372
virtual void set_undefined() override
Definition value-range.h:1228
virtual tree ubound() const override
Definition value-range.cc:2954
bool nonpositive_p() const
Definition value-range.cc:502
irange & operator=(const irange &)
Definition value-range.cc:1707
friend class vrange_printer
Definition value-range.h:291
virtual void set_zero(tree type) override
Definition value-range.h:1314
virtual void update_bitmask(const class irange_bitmask &) override
Definition value-range.cc:2805
bool contains_p(const wide_int &) const
Definition value-range.cc:2018
bool set_range_from_bitmask()
Definition value-range.cc:2788
bool irange_contains_p(const irange &) const
Definition value-range.cc:2287
bool varying_compatible_p() const
Definition value-range.h:1087
virtual tree type() const override
Definition value-range.h:1080
void normalize_kind()
Definition value-range.h:1323
bool snap_subranges()
Definition value-range.cc:2749
wide_int upper_bound(unsigned) const
Definition value-range.h:1268
bool operator!=(const irange &r) const
Definition value-range.h:332
irange(wide_int *, unsigned nranges, bool resizable)
Definition value-range.h:1165
virtual void verify_range() const override
Definition value-range.cc:1905
Definition value-range.h:539
bool neg_p() const
Definition value-range.h:582
bool m_neg_nan
Definition value-range.h:547
bool pos_p() const
Definition value-range.h:574
bool m_pos_nan
Definition value-range.h:546
nan_state(bool)
Definition value-range.h:554
Definition value-range.h:403
bool pt_equal_p(const class prange &p) const
Definition value-range.h:1550
bool pt_inverted_p(const prange &r) const
Definition value-range.h:1560
virtual bool supports_type_p(const_tree type) const final override
Definition value-range.h:1398
bool m_points_to_p
Definition value-range.h:492
wide_int m_min
Definition value-range.h:486
virtual bool intersect(const vrange &v) final override
Definition value-range.cc:774
virtual void set_nonnegative(tree type) final override
Definition value-range.cc:637
void invert()
Definition value-range.cc:885
prange()
Definition value-range.h:1363
virtual void verify_range() const final override
Definition value-range.cc:923
virtual tree lbound() const final override
Definition value-range.cc:716
tree pt_base() const
Definition value-range.cc:581
wide_int upper_bound() const
Definition value-range.h:1486
irange_bitmask get_bitmask() const final override
Definition value-range.h:1500
wide_int m_max
Definition value-range.h:487
virtual bool contains_p(tree cst) const final override
Definition value-range.h:1453
tree m_type
Definition value-range.h:485
bool pt_invariant_p(const prange &r) const
Definition value-range.h:1594
bool pt_unknown_p() const
Definition value-range.h:1544
bool varying_compatible_p() const
Definition value-range.h:1493
virtual void set_varying(tree type) final override
Definition value-range.h:1411
void set_pt_unknown()
Definition value-range.h:1537
tree m_pt
Definition value-range.h:491
static bool supports_p(const_tree type)
Definition value-range.h:1392
virtual void set_zero(tree type) final override
Definition value-range.h:1439
void pt_size(irange &) const
Definition value-range.cc:614
wide_int lower_bound() const
Definition value-range.h:1479
virtual bool fits_p(const vrange &v) const final override
Definition value-range.h:1506
virtual bool zero_p() const final override
Definition value-range.h:1459
void set_pt(const prange &r)
Definition value-range.h:1515
virtual void set_undefined() final override
Definition value-range.h:1404
bool pt_invariant_away_p(const prange &r) const
Definition value-range.h:1603
void update_bitmask(const irange_bitmask &) final override
Definition value-range.cc:951
virtual void set_nonzero(tree type) final override
Definition value-range.h:1425
virtual bool nonzero_p() const final override
Definition value-range.h:1466
friend class vrange_printer
Definition value-range.h:405
friend class prange_storage
Definition value-range.h:404
virtual bool singleton_p(tree *result=NULL) const final override
Definition value-range.cc:704
virtual tree ubound() const final override
Definition value-range.cc:722
tree pt_invariant() const
Definition value-range.h:1578
void pt_offset(irange &) const
Definition value-range.cc:596
bool pt_invert()
Definition value-range.h:1567
virtual tree type() const final override
Definition value-range.h:1472
virtual void set(tree, tree, value_range_kind=VR_RANGE) final override
Definition value-range.cc:645
virtual bool union_(const vrange &v) final override
Definition value-range.cc:728
irange_bitmask m_bitmask
Definition value-range.h:488
tree pt_invariant_away() const
Definition value-range.h:1586
Definition pretty-print.h:241
Definition value-range.h:501
unsupported_range & operator=(const unsupported_range &r)
Definition value-range.cc:324
unsupported_range(const unsupported_range &src)
Definition value-range.h:508
unsupported_range()
Definition value-range.h:503
Definition value-range.h:854
void verify_range() const
Definition value-range.h:894
void set_zero(tree type)
Definition value-range.h:883
~value_range()
Definition value-range.h:956
bool undefined_p() const
Definition value-range.h:875
bool contains_p(tree cst) const
Definition value-range.h:880
static bool supports_type_p(const_tree type)
Definition value-range.h:1058
void accept(const vrange_visitor &v) const
Definition value-range.h:893
bool nonzero_p() const
Definition value-range.h:886
bool varying_p() const
Definition value-range.h:874
vrange * m_vrange
Definition value-range.h:899
tree type()
Definition value-range.h:873
irange_bitmask get_bitmask() const
Definition value-range.h:890
tree ubound() const
Definition value-range.h:889
value_range()
Definition value-range.h:914
void print(pretty_printer *) const
Definition value-range.cc:163
bool intersect(const vrange &r)
Definition value-range.h:879
void update_bitmask(const class irange_bitmask &bm)
Definition value-range.h:891
bool union_(const vrange &r)
Definition value-range.h:878
void set_nonzero(tree type)
Definition value-range.h:884
void set_undefined()
Definition value-range.h:877
bool zero_p() const
Definition value-range.h:887
bool operator!=(const value_range &r) const
Definition value-range.h:1038
void set_range_class(tree type)
Definition value-range.h:967
bool singleton_p(tree *result=NULL) const
Definition value-range.h:881
tree lbound() const
Definition value-range.h:888
void set_varying(tree type)
Definition value-range.h:876
vrange & operator=(const vrange &)
Definition value-range.h:1014
union value_range::buffer_type m_buffer
bool operator==(const value_range &r) const
Definition value-range.h:1032
void init(tree type)
Definition value-range.h:979
Definition value-range.h:831
virtual void visit(const unsupported_range &) const
Definition value-range.h:836
virtual void visit(const irange &) const
Definition value-range.h:833
virtual void visit(const frange &) const
Definition value-range.h:835
virtual void visit(const prange &) const
Definition value-range.h:834
Definition value-range.h:88
virtual void verify_range() const
Definition value-range.h:124
friend class value_range
Definition value-range.h:90
virtual irange_bitmask get_bitmask() const
Definition value-range.cc:202
vrange(enum value_range_discriminator d)
Definition value-range.h:126
enum value_range_kind m_kind
Definition value-range.h:127
virtual bool singleton_p(tree *result=NULL) const =0
bool operator!=(const vrange &r) const
Definition value-range.h:122
virtual bool supports_type_p(const_tree type) const =0
virtual void set_zero(tree type)=0
virtual bool union_(const vrange &)=0
virtual ~vrange()
Definition value-range.h:110
virtual bool nonzero_p() const =0
friend class range_op_handler
Definition value-range.h:92
virtual bool zero_p() const =0
virtual void set(tree, tree, value_range_kind=VR_RANGE)=0
virtual void set_varying(tree type)=0
bool undefined_p() const
Definition value-range.h:1115
enum value_range_discriminator m_discriminator
Definition value-range.h:128
virtual void set_undefined()=0
virtual bool intersect(const vrange &)=0
virtual void set_nonzero(tree type)=0
virtual void update_bitmask(const class irange_bitmask &)
Definition value-range.cc:197
virtual tree ubound() const =0
friend bool is_a(vrange &)
Definition value-range.h:735
void set_nonzero_bits(const wide_int &bits)
Definition value-range.cc:2866
virtual void set_nonnegative(tree type)=0
virtual void accept(const class vrange_visitor &v) const =0
virtual bool contains_p(tree cst) const =0
vrange & operator=(const vrange &)
Definition value-range.cc:351
virtual tree lbound() const =0
virtual tree type() const =0
void dump(FILE *) const
Definition value-range.cc:384
friend void streamer_write_vrange(struct output_block *, const vrange &)
Definition data-streamer-out.cc:408
wide_int get_nonzero_bits() const
Definition value-range.cc:2876
virtual bool fits_p(const vrange &r) const =0
bool varying_p() const
Definition value-range.h:1109
bool operator==(const vrange &) const
Definition value-range.cc:370
const union tree_node * const_tree
Definition coretypes.h:98
union tree_node * tree
Definition coretypes.h:97
static bool operator!=(cfa_reg &cfa, rtx reg)
Definition dwarf2cfi.cc:1174
static bool operator==(cfa_reg &cfa, rtx reg)
Definition dwarf2cfi.cc:1164
REAL_VALUE_TYPE dconstninf
Definition emit-rtl.cc:113
REAL_VALUE_TYPE dconstinf
Definition emit-rtl.cc:112
void final(rtx_insn *first, FILE *file, int optimize_p)
Definition final.cc:2009
static type_p type(options_p *optsp, bool nested)
Definition gengtype-parse.cc:883
static struct token T
Definition gengtype-parse.cc:45
tree_code
Definition genmatch.cc:1002
#define N
Definition gensupport.cc:202
Definition fold-const.cc:4268
void add_vrange(const vrange &v, inchash::hash &hstate, unsigned int)
Definition value-range.cc:421
wide_int min_value(machine_mode, signop)
Definition rtl.h:2375
hwi_with_prec minus_one(unsigned int)
Definition wide-int.h:2011
hwi_with_prec zero(unsigned int)
Definition wide-int.h:2018
BINARY_FUNCTION bit_and(const T1 &, const T2 &)
wide_int max_value(machine_mode, signop)
Definition rtl.h:2383
tree_to_wide_ref to_wide(const_tree)
Definition tree.h:6664
hwi_with_prec one(unsigned int)
Definition wide-int.h:2025
poly_int< N, C > r
Definition poly-int.h:774
i
Definition poly-int.h:776
static bool maybe_isnan(const frange &op1, const frange &op2)
Definition range-op-float.cc:239
static bool zero_p(const REAL_VALUE_TYPE &lb, const REAL_VALUE_TYPE &ub)
Definition range-op-float.cc:2277
int real_from_string(REAL_VALUE_TYPE *r, const char *str)
Definition real.cc:2015
bool HONOR_NANS(machine_mode m)
Definition real.cc:5541
REAL_VALUE_TYPE real_value_negate(const REAL_VALUE_TYPE *op0)
Definition real.cc:1119
bool real_isneg(const REAL_VALUE_TYPE *r)
Definition real.cc:1284
bool real_isinf(const REAL_VALUE_TYPE *r)
Definition real.cc:1246
static bool real_isdenormal(const REAL_VALUE_TYPE *r)
Definition real.cc:124
bool real_identical(const REAL_VALUE_TYPE *a, const REAL_VALUE_TYPE *b)
Definition real.cc:1316
bool HONOR_INFINITIES(machine_mode m)
Definition real.cc:5582
bool real_iszero(const REAL_VALUE_TYPE *r)
Definition real.cc:1292
void get_max_float(const struct real_format *fmt, char *buf, size_t len, bool norm_max)
Definition real.cc:5459
#define REAL_MODE_FORMAT(MODE)
Definition real.h:183
#define REAL_VALUE_TYPE
Definition real.h:68
signop
Definition signop.h:28
@ UNSIGNED
Definition signop.h:30
Definition value-range.h:590
REAL_VALUE_TYPE min
Definition value-range.h:591
REAL_VALUE_TYPE max
Definition value-range.h:592
Definition lto-streamer.h:745
Definition gengtype.h:218
Definition gengtype.h:252
#define NULL
Definition system.h:50
#define gcc_unreachable()
Definition system.h:847
#define true
Definition system.h:893
#define gcc_checking_assert(EXPR)
Definition system.h:827
tree build_zero_cst(tree type)
Definition tree.cc:2781
#define DECIMAL_FLOAT_TYPE_P(TYPE)
Definition tree.h:693
#define TYPE_PRECISION(NODE)
Definition tree.h:2440
#define SCALAR_FLOAT_TYPE_P(TYPE)
Definition tree.h:661
#define TREE_REAL_CST_PTR(NODE)
Definition tree.h:1185
#define TYPE_UNSIGNED(NODE)
Definition tree.h:980
#define TYPE_MODE(NODE)
Definition tree.h:2449
#define TYPE_SIGN(NODE)
Definition tree.h:983
#define POINTER_TYPE_P(TYPE)
Definition tree.h:713
#define TYPE_P(NODE)
Definition tree.h:227
#define TREE_TYPE(NODE)
Definition tree.h:513
#define INTEGRAL_TYPE_P(TYPE)
Definition tree.h:614
#define error_mark_node
Definition tree.h:4616
#define NULL_TREE
Definition tree.h:318
unsupported_range unsupported
Definition value-range.h:903
buffer_type()
Definition value-range.h:905
prange pointers
Definition value-range.h:904
~buffer_type()
Definition value-range.h:906
frange floats
Definition value-range.h:902
int_range_max ints
Definition value-range.h:901
T & as_a(vrange &v)
Definition value-range.h:752
REAL_VALUE_TYPE frange_val_max(const_tree type)
Definition value-range.h:1788
bool range_includes_zero_p(const vrange &vr)
Definition value-range.h:1151
wide_int irange_val_max(const_tree type)
Definition value-range.h:1356
value_range_kind
Definition value-range.h:29
@ VR_ANTI_RANGE
Definition value-range.h:37
@ VR_RANGE
Definition value-range.h:35
@ VR_LAST
Definition value-range.h:41
@ VR_NAN
Definition value-range.h:39
@ VR_VARYING
Definition value-range.h:33
@ VR_UNDEFINED
Definition value-range.h:31
void dump_value_range(FILE *, const vrange *)
Definition value-range.cc:2967
bool is_a< prange >(vrange &v)
Definition value-range.h:777
bool is_a< unsupported_range >(vrange &v)
Definition value-range.h:791
value_range_discriminator
Definition value-range.h:47
@ VR_UNKNOWN
Definition value-range.h:55
@ VR_IRANGE
Definition value-range.h:49
@ VR_PRANGE
Definition value-range.h:51
@ VR_FRANGE
Definition value-range.h:53
REAL_VALUE_TYPE real_min_representable(const_tree type)
Definition value-range.h:1767
void frange_arithmetic(enum tree_code, tree, REAL_VALUE_TYPE &, const REAL_VALUE_TYPE &, const REAL_VALUE_TYPE &, const REAL_VALUE_TYPE &)
Definition range-op-float.cc:331
int_range< 3, true > int_range_max
Definition value-range.h:828
value_range_kind get_legacy_range(const vrange &, tree &min, tree &max)
Definition value-range.cc:1810
bool is_a< frange >(vrange &v)
Definition value-range.h:784
void frange_nextafter(enum machine_mode, REAL_VALUE_TYPE &, const REAL_VALUE_TYPE &)
Definition range-op-float.cc:298
REAL_VALUE_TYPE real_max_representable(const_tree type)
Definition value-range.h:1753
wide_int irange_val_min(const_tree type)
Definition value-range.h:1349
bool range_compatible_p(tree type1, tree type2)
Definition value-range.h:2008
bool frange_val_is_min(const REAL_VALUE_TYPE &r, const_tree type)
Definition value-range.h:1799
bool contains_zero_p(const irange &r)
Definition value-range.h:1339
bool frange_val_is_max(const REAL_VALUE_TYPE &r, const_tree type)
Definition value-range.h:1808
bool vrp_operand_equal_p(const_tree, const_tree)
Definition value-range.cc:2988
REAL_VALUE_TYPE frange_val_min(const_tree type)
Definition value-range.h:1777
bool is_a< irange >(vrange &v)
Definition value-range.h:770
generic_wide_int< wide_int_storage > wide_int
Definition wide-int.h:343