@@ -97,13 +97,14 @@ impl<'a> ArchiveBuilder<'a> for LlvmArchiveBuilder<'a> {
97
97
98
98
/// Combine the provided files, rlibs, and native libraries into a single
99
99
/// `Archive`.
100
- fn build ( mut self ) {
100
+ fn build ( mut self ) -> bool {
101
101
let kind = self . llvm_archive_kind ( ) . unwrap_or_else ( |kind| {
102
102
self . sess . fatal ( & format ! ( "Don't know how to build archive of type: {}" , kind) )
103
103
} ) ;
104
104
105
- if let Err ( e) = self . build_with_llvm ( kind) {
106
- self . sess . fatal ( & format ! ( "failed to build archive: {}" , e) ) ;
105
+ match self . build_with_llvm ( kind) {
106
+ Ok ( any_members) => any_members,
107
+ Err ( e) => self . sess . fatal ( & format ! ( "failed to build archive: {}" , e) ) ,
107
108
}
108
109
}
109
110
@@ -270,7 +271,7 @@ impl<'a> LlvmArchiveBuilder<'a> {
270
271
kind. parse ( ) . map_err ( |_| kind)
271
272
}
272
273
273
- fn build_with_llvm ( & mut self , kind : ArchiveKind ) -> io:: Result < ( ) > {
274
+ fn build_with_llvm ( & mut self , kind : ArchiveKind ) -> io:: Result < bool > {
274
275
let mut additions = mem:: take ( & mut self . additions ) ;
275
276
let mut strings = Vec :: new ( ) ;
276
277
let mut members = Vec :: new ( ) ;
@@ -353,7 +354,7 @@ impl<'a> LlvmArchiveBuilder<'a> {
353
354
} ;
354
355
Err ( io:: Error :: new ( io:: ErrorKind :: Other , msg) )
355
356
} else {
356
- Ok ( ( ) )
357
+ Ok ( !members . is_empty ( ) )
357
358
} ;
358
359
for member in members {
359
360
llvm:: LLVMRustArchiveMemberFree ( member) ;
0 commit comments