brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 35a5d55 Raw
48 lines · plain
1! Test -skip-external-rtti-definition option2 3!RUN: rm -rf %t && mkdir -p %t4!RUN: %flang_fc1 -fsyntax-only -DSTEP=1 -J%t %s5!RUN: %flang_fc1 -emit-llvm -J%t  %s -o - | FileCheck %s -check-prefix=LINKONCE6!RUN: %flang_fc1 -emit-llvm -J%t -mllvm -skip-external-rtti-definition %s -o - | FileCheck %s -check-prefix=EXTERNAL7 8#if STEP == 19module module_external_type_definition10 type t111 end type12end module13#else14 15module module_same_unit_type_definition16 type t217 end type18end module19 20subroutine test21  use module_external_type_definition22  use module_same_unit_type_definition23  interface24  subroutine needs_descriptor(x)25    class(*) :: x26  end subroutine27  end interface28  type(t1) :: x129  type(t2) :: x230  call needs_descriptor(x1)31  call needs_descriptor(x2)32end subroutine33 34#endif35 36! LINKONCE-DAG: @_QMmodule_external_type_definitionEXnXt1 = linkonce_odr constant [2 x i8] c"t1"37! LINKONCE-DAG: @_QMmodule_external_type_definitionEXdtXt1 = linkonce_odr constant {{.*}} {38! LINKONCE-DAG: @_QMmodule_same_unit_type_definitionEXnXt2 = linkonce_odr constant [2 x i8] c"t2"39! LINKONCE-DAG: @_QMmodule_same_unit_type_definitionEXdtXt2 = linkonce_odr constant {{.*}} {40 41! EXTERNAL-NOT: @_QMmodule_external_type_definitionEXnXt142! EXTERNAL: @_QMmodule_same_unit_type_definitionEXnXt2 = constant [2 x i8] c"t2"43! EXTERNAL-NOT: @_QMmodule_external_type_definitionEXnXt144! EXTERNAL: @_QMmodule_same_unit_type_definitionEXdtXt2 = constant {{.*}} {45! EXTERNAL-NOT: @_QMmodule_external_type_definitionEXnXt146! EXTERNAL: @_QMmodule_external_type_definitionEXdtXt1 =  external constant ptr47! EXTERNAL-NOT: @_QMmodule_external_type_definitionEXnXt148