---
title: RTL库函数
description: "作为Fortran语言的前端，Flang内部包含有RTL(run time library)库函数例程清单，RTL库函数清单所含的函数为运行阶段内嵌套库函数，毕昇编译器会将这些函数加入“bs_”前缀。在用户层面使用Fortran语言进行编码时，应避免调用同名函数，以防止函数重定义的出现。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevps/compilation/ug-bisheng/kunpengbisheng_06_0065.html
sourcePath: /source/zh/kunpengdevps/compilation/ug-bisheng/kunpengbisheng_06_0065.html
indexId: 06cd804c3d280192a484bcec2c67a540a59650b4db5a33702376315c3a8a619f74
---
# RTL库函数

作为Fortran语言的前端，Flang内部包含有RTL(run time library)库函数例程清单，RTL库函数清单所含的函数为运行阶段内嵌套库函数，毕昇编译器会将这些函数加入“bs_”前缀。在用户层面使用Fortran语言进行编码时，应避免调用同名函数，以防止函数重定义的出现。

#### 接口举例

```
FtnRteRtn ftnRteRtns[] = { 
    {"f90io_aux_init", "", false, ""}, 
    {"f90io_backspace", "", false, ""}, 
    {"f90io_begin", "", false, ""}, 
    // ...
}
```


#### 使用举例

这些运行时函数，命名以特殊的"bs_f90"为前缀，错误的使用案例如下：

```
INTEGER FUNCTION bs_f90io_sc_i_ldw(i, j) 
    IMPLICIT NONE 
    INTEGER, INTENT(in):: i 
    INTEGER, INTENT(in):: j 
    print *, i,j
END FUNCTION bs_f90io_sc_i_ldw
```

该用例使用Fortran语言‘print’的上述RTL里的运行时库函数bs_f90io_sc_cf_ldw，导致编译时出现如下错误：

```
F90-W-0155-bs_f90io_sc_i_ldw - PURE subprograms may not contain external I/O statements (f90io_sc_i_ldw.f90: 5) 
  0 inform,   1 warnings,   0 severes, 0 fatal for bs_f90io_sc_i_ldw 
F90-S-0000-Internal compiler error. gen_funcret: illegal dtype, sym       0  (f90io_sc_i_ldw.f90: 7) 
F90-S-0000-Internal compiler error. get_llvm_name: bad stype for       0  (f90io_sc_i_ldw.f90: 7) 
...... 
F90-S-0000-Internal compiler error. get_llvm_name: bad stype for       0  (f90io_sc_i_ldw.f90: 7) 
F90-F-0000-Internal compiler error. make_lltype_from_sptr(), no incoming arguments       0  (f90io_sc_i_ldw.f90: 7)
```
