Skip to content

Commit fc07035

Browse files
committed
Fix #1149 segfault on fpm install
1 parent 6908108 commit fc07035

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

src/fpm/cmd/install.f90

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -101,30 +101,32 @@ subroutine install_info(unit, verbose, targets, ntargets)
101101
integer, intent(out) :: ntargets
102102

103103
integer :: ii
104-
type(string_t), allocatable :: install_target(:), temp(:)
104+
type(string_t), allocatable :: install_target(:), apps(:), tests(:)
105105
type(build_target_ptr), allocatable :: libs(:)
106106

107-
allocate(install_target(0))
108-
109107
call filter_library_targets(targets, libs)
110-
install_target = [install_target, (string_t(libs(ii)%ptr%output_file),ii=1,size(libs))]
111-
112-
call filter_executable_targets(targets, FPM_SCOPE_APP, temp)
113-
install_target = [install_target, temp]
114-
115-
call filter_executable_targets(targets, FPM_SCOPE_TEST, temp)
116-
install_target = [install_target, temp]
108+
call filter_executable_targets(targets, FPM_SCOPE_APP, apps)
109+
call filter_executable_targets(targets, FPM_SCOPE_TEST, tests)
117110

118-
ntargets = size(install_target)
111+
ntargets = size(libs) + size(apps) + size(tests)
112+
allocate(install_target(ntargets))
113+
114+
do ii = 1, size(libs)
115+
install_target(ii) = string_t(libs(ii)%ptr%output_file)
116+
end do
117+
do ii = 1, size(apps)
118+
install_target(size(libs) + ii) = string_t(apps(ii)%s)
119+
end do
120+
do ii = 1, size(tests)
121+
install_target(size(libs) + size(apps) + ii) = string_t(tests(ii)%s)
122+
end do
119123

120124
if (verbose) then
121-
122125
write(unit, '("#", *(1x, g0))') &
123126
"total number of installable targets:", ntargets
124127
do ii = 1, ntargets
125128
write(unit, '("-", *(1x, g0))') install_target(ii)%s
126129
end do
127-
128130
endif
129131

130132
end subroutine install_info

0 commit comments

Comments
 (0)