@@ -1111,6 +1111,10 @@ pub struct TargetOptions {
11111111 /// unwinders.
11121112 pub requires_uwtable : bool ,
11131113
1114+ /// Whether or not to emit `uwtable` attributes on functions if `-C force-unwind-tables`
1115+ /// is not specified and `uwtable` is not required on this target.
1116+ pub default_uwtable : bool ,
1117+
11141118 /// Whether or not SIMD types are passed by reference in the Rust ABI,
11151119 /// typically required if a target can be compiled with a mixed set of
11161120 /// target features. This is `true` by default, and `false` for targets like
@@ -1248,6 +1252,7 @@ impl Default for TargetOptions {
12481252 default_hidden_visibility : false ,
12491253 emit_debug_gdb_scripts : true ,
12501254 requires_uwtable : false ,
1255+ default_uwtable : false ,
12511256 simd_types_indirect : true ,
12521257 limit_rdylib_exports : true ,
12531258 override_export_symbols : None ,
@@ -1711,6 +1716,7 @@ impl Target {
17111716 key ! ( default_hidden_visibility, bool ) ;
17121717 key ! ( emit_debug_gdb_scripts, bool ) ;
17131718 key ! ( requires_uwtable, bool ) ;
1719+ key ! ( default_uwtable, bool ) ;
17141720 key ! ( simd_types_indirect, bool ) ;
17151721 key ! ( limit_rdylib_exports, bool ) ;
17161722 key ! ( override_export_symbols, opt_list) ;
@@ -1947,6 +1953,7 @@ impl ToJson for Target {
19471953 target_option_val ! ( default_hidden_visibility) ;
19481954 target_option_val ! ( emit_debug_gdb_scripts) ;
19491955 target_option_val ! ( requires_uwtable) ;
1956+ target_option_val ! ( default_uwtable) ;
19501957 target_option_val ! ( simd_types_indirect) ;
19511958 target_option_val ! ( limit_rdylib_exports) ;
19521959 target_option_val ! ( override_export_symbols) ;
0 commit comments