LLVMLinkage.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 27 Jan 2016 14:20:58 +0000
changeset 54 a288aced3dd1
parent 14 c7dea3fcc5a7
permissions -rw-r--r--
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9 In LLVM 3.9 some parameters to these functions were dropped. The DIBuilder interface has been changed to reflect these changes (i.e., C functions no longer require dropped argument). The LLVM C Extensions library can still be compiled against LLVM 3.8 (via #ifdef), but the API will be different. Also, the Smalltallks bindings will make use of LLVM 3.9 interface. That said, LLVM C API Extensions library may still be used by *other* projects on top of LLVM 3.8, though Smalltalk bindings require LLVM 3.9 from now on.

"
    Copyright (C) 2015-now Jan Vrany

    This code is not an open-source (yet). You may use this code
    for your own experiments and projects, given that:

    * all modification to the code will be sent to the
      original author for inclusion in future releases
    * this is not used in any commercial software

    This license is provisional and may (will) change in
    a future.
"
"{ Package: 'jv:llvm_s' }"

"{ NameSpace: Smalltalk }"

SharedPool subclass:#LLVMLinkage
	instanceVariableNames:''
	classVariableNames:'LLVMExternalLinkage LLVMAvailableExternallyLinkage
		LLVMLinkOnceAnyLinkage LLVMLinkOnceODRLinkage
		LLVMLinkOnceODRAutoHideLinkage LLVMWeakAnyLinkage
		LLVMWeakODRLinkage LLVMAppendingLinkage LLVMInternalLinkage
		LLVMPrivateLinkage LLVMDLLImportLinkage LLVMDLLExportLinkage
		LLVMExternalWeakLinkage LLVMGhostLinkage LLVMCommonLinkage
		LLVMLinkerPrivateLinkage LLVMLinkerPrivateWeakLinkage'
	poolDictionaries:''
	category:'LLVM-S-Core-Constants'
!

!LLVMLinkage class methodsFor:'documentation'!

copyright
"
    Copyright (C) 2015-now Jan Vrany

    This code is not an open-source (yet). You may use this code
    for your own experiments and projects, given that:

    * all modification to the code will be sent to the
      original author for inclusion in future releases
    * this is not used in any commercial software

    This license is provisional and may (will) change in
    a future.
"
! !

!LLVMLinkage class methodsFor:'initialization'!

initialize

    LLVMExternalLinkage := 0.
    LLVMAvailableExternallyLinkage := 1.
    LLVMLinkOnceAnyLinkage := 2.
    LLVMLinkOnceODRLinkage := 3.
    LLVMLinkOnceODRAutoHideLinkage := 4.
    LLVMWeakAnyLinkage := 5.
    LLVMWeakODRLinkage := 6.
    LLVMAppendingLinkage := 7.
    LLVMInternalLinkage := 8.
    LLVMPrivateLinkage := 9.
    LLVMDLLImportLinkage := 10.
    LLVMDLLExportLinkage := 11.
    LLVMExternalWeakLinkage := 12.
    LLVMGhostLinkage := 13.
    LLVMCommonLinkage := 14.
    LLVMLinkerPrivateLinkage := 15.
    LLVMLinkerPrivateWeakLinkage := 16.
! !

!LLVMLinkage class methodsFor:'constants'!

LLVMAppendingLinkage

    ^LLVMAppendingLinkage
!

LLVMAvailableExternallyLinkage

    ^LLVMAvailableExternallyLinkage
!

LLVMCommonLinkage

    ^LLVMCommonLinkage
!

LLVMDLLExportLinkage

    ^LLVMDLLExportLinkage
!

LLVMDLLImportLinkage

    ^LLVMDLLImportLinkage
!

LLVMExternalLinkage

    ^LLVMExternalLinkage
!

LLVMExternalWeakLinkage

    ^LLVMExternalWeakLinkage
!

LLVMGhostLinkage

    ^LLVMGhostLinkage
!

LLVMInternalLinkage

    ^LLVMInternalLinkage
!

LLVMLinkOnceAnyLinkage

    ^LLVMLinkOnceAnyLinkage
!

LLVMLinkOnceODRAutoHideLinkage

    ^LLVMLinkOnceODRAutoHideLinkage
!

LLVMLinkOnceODRLinkage

    ^LLVMLinkOnceODRLinkage
!

LLVMLinkerPrivateLinkage

    ^LLVMLinkerPrivateLinkage
!

LLVMLinkerPrivateWeakLinkage

    ^LLVMLinkerPrivateWeakLinkage
!

LLVMPrivateLinkage

    ^LLVMPrivateLinkage
!

LLVMWeakAnyLinkage

    ^LLVMWeakAnyLinkage
!

LLVMWeakODRLinkage

    ^LLVMWeakODRLinkage
! !


LLVMLinkage initialize!