@@ -22,9 +22,8 @@ use middle::lang_items::ExchangeFreeFnLangItem;
2222use middle:: subst;
2323use middle:: subst:: { Subst , Substs } ;
2424use middle:: ty:: { self , Ty } ;
25- use trans:: adt:: GetDtorType ; // for tcx.dtor_type()
2625use trans:: adt;
27- use trans:: attributes ;
26+ use trans:: adt :: GetDtorType ; // for tcx.dtor_type()
2827use trans:: base:: * ;
2928use trans:: build:: * ;
3029use trans:: callee;
@@ -44,7 +43,6 @@ use trans::type_::Type;
4443use arena:: TypedArena ;
4544use libc:: c_uint;
4645use syntax:: ast;
47- use syntax:: attr:: InlineAttr ;
4846
4947pub fn trans_exchange_free_dyn < ' blk , ' tcx > ( cx : Block < ' blk , ' tcx > ,
5048 v : ValueRef ,
@@ -252,25 +250,6 @@ fn get_drop_glue_core<'a, 'tcx>(ccx: &CrateContext<'a, 'tcx>,
252250
253251 update_linkage ( ccx, llfn, None , OriginalTranslation ) ;
254252
255- // FIXME: Currently LLVM has a bug where if an SSA value is created in one
256- // landing pad and then used in another it will abort during
257- // compilation. The compiler never actually generates nested landing
258- // pads, but this often arises when destructors are inlined into
259- // other functions. To prevent this inlining from happening (and thus
260- // preventing the LLVM abort) we mark all drop glue as inline(never)
261- // on MSVC.
262- //
263- // For more information about the bug, see:
264- //
265- // https://llvm.org/bugs/show_bug.cgi?id=23884
266- //
267- // This is clearly not the ideal solution to the problem (due to the
268- // perf hits), so this should be removed once the upstream bug is
269- // fixed.
270- if ccx. sess ( ) . target . target . options . is_like_msvc {
271- attributes:: inline ( llfn, InlineAttr :: Never ) ;
272- }
273-
274253 ccx. stats ( ) . n_glues_created . set ( ccx. stats ( ) . n_glues_created . get ( ) + 1 ) ;
275254 // All glue functions take values passed *by alias*; this is a
276255 // requirement since in many contexts glue is invoked indirectly and
0 commit comments