Section courante

A propos

Section administrative du site

invoke

Appeler
LLVM

Syntaxe

result = invoke [cconv] [ret attrs] [addrspace(num)] [ty|fnty fnptrval(functionargs) [fn attrs] [operand bundles] to label normallabel unwind label exceptionlabel

Paramètres

Nom Description
cconv Ce paramètre permet d'indiquer la convention d'appel, spécifie la manière dont les paramètres sont passés et comment les valeurs de retour sont récupérées. Par exemple, ccc, fastcc,...
attrs Ce paramètre permet d'indiquer les attributs de la fonction de retour, par exemple noalias, readonly,...
num Ce paramètre permet d'indiquer l'espace d'adressage, utilisé pour les pointeurs dans des contextes de mémoire non standard (comme addrspace(1) pour une mémoire partagée ou différente).
fnptrval Ce paramètre permet d'indiquer un pointeur vers la fonction étant appelée, soit un nom de fonction (par exemple, @myfunc), soit un pointeur vers une fonction (par exemple, %funcptr).
functionargs Ce paramètre permet d'indiquer la liste des paramètres passés à la fonction appelée. Ces paramètres sont passés dans un ordre spécifique selon la convention d'appel.
attrs Ce paramètre permet d'indiquer les attributs supplémentaires pour la fonction appelée, comme noinline, readonly,...
operand bundles Ces paramètres supplémentaires permettent de regrouper des opérandes pour des fonctions spécifiques (utilisé par des architectures et des optimisations particulières).
normallabel Ce paramètre permet d'indiquer l'étiquette vers lequel le contrôle sera transféré si l'appel de fonction se termine normalement (c'est-à-dire sans exceptions).
exceptionlabel Ce paramètre permet d'indiquer l'étiquette vers lequel le contrôle sera transféré en cas d'exception. Cette étiquette permet de gérer les exceptions, en nettoyant la pile et en prenant des mesures appropriées.

Description

Cette instruction permet d'appeler le transfert du contrôle vers une fonction spécifiée, avec possibilité de transfert du flux de contrôle vers l'étiquette normal ou exception.



Dernière mise à jour : Jeudi, le 13 juin 2019