public  function cct_new(directory, arguments, file) result(cct)  
    
    Override default initializer (GCC 15 bug)
    Arguments
        
    
      
        | Type | Intent | Optional | Attributes |  | Name |  | 
    
        
            | character(len=*), | intent(in) |  |  | :: | directory |  | 
        
            | character(len=*), | intent(in), | optional |  | :: | arguments(:) |  | 
        
            | character(len=*), | intent(in) |  |  | :: | file |  | 
    
  
      
      
    
        
      Variables
      
    
      
        | Type | Visibility | Attributes |  | Name |  | Initial |  | 
    
        
            | integer, | public |  | :: | i |  |  |  | 
        
            | integer, | public |  | :: | n |  |  |  | 
    
  
    
    
    
    
    
    
    
    
    Source Code
        type(compile_command_t) function cct_new(directory,arguments,file) result(cct)
        character(len=*), intent(in) :: directory,file
        character(len=*), optional, intent(in) :: arguments(:)
        
        integer :: i,n
        
        cct%directory = string_t(trim(directory))
        cct%file = string_t(trim(file))
        
        if (present(arguments)) then 
           n = size(arguments)
        else
           n = 0
        endif
        allocate(cct%arguments(n))
        do i=1,n
            cct%arguments(i) = string_t(trim(arguments(i)))
        end do
        
    end function cct_new