- LLVM 22 support (#59)
BitsInit::known_bits_to_int()(LLVM 22 only)- Direct typed value accessors on
Record:int_value,str_value,bit_value,def_value,dag_value,bits_init_value,list_init_value,list_of_defs_value,list_of_ints_value,list_of_strings_value,optional_str_value,optional_def_value,is_value_unset - Record identity/metadata:
is_class,def_init,id,name_init,has_direct_super_class - RecordRecTy accessors:
num_type_classes,type_class,type_is_subclass_of - RecordValue metadata:
is_template_arg,is_nonconcrete_ok,bits_width,list_element_type DagInit::arg_nofor named argument lookupRecordKeeper::input_filenameandRecordKeeper::global- LLVM 21 test matrix in CI
- Default LLVM version is now 22
- Fix soundness bugs and iterator memory leaks (#50)
tableGenRecordGetFirstValuenow returnsnullptrfor empty records, preventing UB when iterating a record with no fieldsRecordValueIter::next()no longer callstableGenRecordValNextwith a null pointer after the iterator is exhaustedNamedRecordIter::clone()no longer segfaults when called on an exhausted iteratorGetNextClass/GetNextDefnow correctly free the heap-allocated iterator object when the end is reached- Memory leak in
TableGenParser::parse()on failed file inclusion fixed viastd::unique_ptr - Replace panicking
From<BitInit> for bool,From<BitsInit> for Vec<bool>, andFrom<IntInit> for i64withTryFromimpls that return errors instead of panicking on variable references or C API failures
- Strip
-D_FORTIFY_SOURCEfrom llvm-config flags inbuild.rs(#49) - Fix
DagIterstopping early on unnamed dag arguments (#48) - Add
From<BitsInit> for Vec<Option<bool>>(#47) - Fix UB in
BitsInit::bit()when bit is aVarBitInit(#46) - Fix llvm-config static link detection and exit status handling (#45)
RecordIternow implementsExactSizeIteratorandsize_hint()(#50)
- Revert invalid-to-string conversion (#41)
- Conversion from
Invalidinit toString(#40)
- Map
codetype correctly (#38)
- LLVM 21 support (#31)