89 lines · plain
1;; Check that an error is emitted for local linkage symbols with DLL storage class.2 3; RUN: rm -rf %t && split-file %s %t4 5; RUN: not llvm-as %t/internal_function_dllexport.ll -o /dev/null 2>&1 | FileCheck %s6; RUN: not llvm-as %t/internal_variable_dllexport.ll -o /dev/null 2>&1 | FileCheck %s7; RUN: not llvm-as %t/internal_alias_dllexport.ll -o /dev/null 2>&1 | FileCheck %s8 9; RUN: not llvm-as %t/private_function_dllexport.ll -o /dev/null 2>&1 | FileCheck %s10; RUN: not llvm-as %t/private_variable_dllexport.ll -o /dev/null 2>&1 | FileCheck %s11; RUN: not llvm-as %t/private_alias_dllexport.ll -o /dev/null 2>&1 | FileCheck %s12 13; RUN: not llvm-as %t/internal_function_dllimport.ll -o /dev/null 2>&1 | FileCheck %s14; RUN: not llvm-as %t/internal_variable_dllimport.ll -o /dev/null 2>&1 | FileCheck %s15; RUN: not llvm-as %t/internal_alias_dllimport.ll -o /dev/null 2>&1 | FileCheck %s16 17; RUN: not llvm-as %t/private_function_dllimport.ll -o /dev/null 2>&1 | FileCheck %s18; RUN: not llvm-as %t/private_variable_dllimport.ll -o /dev/null 2>&1 | FileCheck %s19; RUN: not llvm-as %t/private_alias_dllimport.ll -o /dev/null 2>&1 | FileCheck %s20 21 22; CHECK: symbol with local linkage cannot have a DLL storage class23 24 25;--- internal_function_dllexport.ll26 27define internal dllexport void @function() {28entry:29 ret void30}31 32;--- internal_variable_dllexport.ll33 34@var = internal dllexport global i32 035 36;--- internal_alias_dllexport.ll37 38@global = global i32 039@alias = internal dllexport alias i32, ptr @global40 41;--- private_function_dllexport.ll42 43define private dllexport void @function() {44entry:45 ret void46}47 48;--- private_variable_dllexport.ll49 50@var = private dllexport global i32 051 52;--- private_alias_dllexport.ll53 54@global = global i32 055@alias = private dllexport alias i32, ptr @global56 57 58;--- internal_function_dllimport.ll59 60define internal dllimport void @function() {61entry:62 ret void63}64 65;--- internal_variable_dllimport.ll66 67@var = internal dllimport global i32 068 69;--- internal_alias_dllimport.ll70 71@global = global i32 072@alias = internal dllimport alias i32, ptr @global73 74;--- private_function_dllimport.ll75 76define private dllimport void @function() {77entry:78 ret void79}80 81;--- private_variable_dllimport.ll82 83@var = private dllimport global i32 084 85;--- private_alias_dllimport.ll86 87@global = global i32 088@alias = private dllimport alias i32, ptr @global89