Trait

de.fosd.typechef.typesystem.linker

CInferInterface

Related Doc: package linker

Permalink

trait CInferInterface extends CTypeSystem with InterfaceWriter

first attempt to infer the interface of a C file for linker checks

listens to events of the type system to determine defined and called functions

Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. CInferInterface
  2. InterfaceWriter
  3. CTypeSystem
  4. CBuiltIn
  5. CExprTyping
  6. CTypeEnv
  7. CDeclTyping
  8. CDeclUseInterface
  9. CTypeSystemInterface
  10. CEnv
  11. CTypes
  12. COptionProvider
  13. AnyRef
  14. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Type Members

  1. type EnumEnv = Map[String, (FeatureExpr, Id)]

    Permalink

    Enum Environment: Just a set of names that are valid enums.

    Enum Environment: Just a set of names that are valid enums. No need to remember fields etc, because they are integers anyway and no further checking is done in C

    Definition Classes
    CEnv
  2. class Env extends AnyRef

    Permalink
    Attributes
    protected
    Definition Classes
    CEnv
  3. type LabelEnv = Map[String, FeatureExpr]

    Permalink

    label environment: stores which labels are reachable from a goto.

    label environment: stores which labels are reachable from a goto.

    the environment is filled upon function entry for the entire function and just stores under which condition a label is defined

    Definition Classes
    CEnv
  4. type PtrEnv = Set[String]

    Permalink
    Definition Classes
    CTypes
  5. class StructEnv extends AnyRef

    Permalink
    Definition Classes
    CEnv
  6. case class StructTag(isComplete: Boolean, fields: ConditionalTypeMap, scope: Int, id: Option[Id] = None) extends Product with Serializable

    Permalink

    for struct and union ConditionalTypeMap represents for the fields of the struct

    for struct and union ConditionalTypeMap represents for the fields of the struct

    structs do not need to be defined, but they can be complete (with fields) or incomplete

    we store whether a structure with this name is complete (FeatureExpr). a redeclaration in an inner scope may reduce completeness again

    we do not distinguish between alternative structures. fields are merged in one ConditionalTypeMap entry, but by construction they cannot overlap if the structure declarations do not overlap variant-wise

    the structEnv maps a tag name to a conditional tuple (isComplete, fields, scope)

    Definition Classes
    CEnv
  7. case class VAnyInt() extends VValue with Product with Serializable

    Permalink
    Definition Classes
    CTypeSystem
  8. case class VInt(v: Int) extends VValue with Product with Serializable

    Permalink
    Definition Classes
    CTypeSystem
  9. case class VUnknown() extends VValue with Product with Serializable

    Permalink
    Definition Classes
    CTypeSystem
  10. sealed trait VValue extends AnyRef

    Permalink
    Definition Classes
    CTypeSystem
  11. type VarTypingContext = ConditionalVarEnv

    Permalink

    *** Variable-Typing context (collects all top-level and local declarations) variables with local scope overwrite variables with global scope

    *** Variable-Typing context (collects all top-level and local declarations) variables with local scope overwrite variables with global scope

    Definition Classes
    CEnv

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. object EmptyEnv extends Env

    Permalink
    Definition Classes
    CEnv
  5. val HexNull: Regex

    Permalink
    Definition Classes
    CExprTyping
  6. def addAnonStructUse(id: Id, fields: ConditionalTypeMap): Unit

    Permalink
    Definition Classes
    CDeclUseInterface
  7. def addDecl(current: Any, featureExpr: FeatureExpr, env: Env, isDefinition: Boolean = true): Unit

    Permalink
    Definition Classes
    CDeclUseInterface
  8. def addDefinition(definition: AST, env: Env, feature: FeatureExpr = FeatureExprFactory.True, isFunctionDeclarator: Boolean = false): Unit

    Permalink
    Definition Classes
    CDeclUseInterface
  9. def addEnumDeclarationToEnv(specifiers: List[Opt[Specifier]], featureExpr: FeatureExpr, env: Env, isHeadless: Boolean): EnumEnv

    Permalink
    Definition Classes
    CTypeEnv
  10. def addEnumUse(entry: AST, env: Env, feature: FeatureExpr): Unit

    Permalink
    Definition Classes
    CDeclUseInterface
  11. def addEnv(ast: AST, env: Env): Unit

    Permalink

    invoked before every external decl, statement and expression with the environment of that node

    invoked before every external decl, statement and expression with the environment of that node

    for example to debug the environment

    mixed in from CEnvCache

    Attributes
    protected
    Definition Classes
    CTypeSystemInterface
  12. def addJumpStatements(compoundStatement: CompoundStatement): Unit

    Permalink
    Definition Classes
    CDeclUseInterface
  13. def addOldStyleParameters(oldStyleParameters: List[Opt[OldParameterDeclaration]], declarator: Declarator, expr: FeatureExpr, env: Env): Unit

    Permalink
    Definition Classes
    CDeclUseInterface
  14. def addStructDeclUse(entry: Id, env: Env, isUnion: Boolean, feature: FeatureExpr): Unit

    Permalink
    Definition Classes
    CDeclUseInterface
  15. def addStructDeclarationToEnv(specifier: Specifier, featureExpr: FeatureExpr, initEnv: Env, declareIncompleteTypes: Boolean): Env

    Permalink
    Definition Classes
    CTypeEnv
  16. def addStructDeclarationToEnv(specifiers: List[Opt[Specifier]], featureExpr: FeatureExpr, initEnv: Env, declareIncompleteTypes: Boolean): Env

    Permalink
    Definition Classes
    CTypeEnv
  17. def addStructDeclarationToEnv(e: StructDeclaration, featureExpr: FeatureExpr, env: Env): Env

    Permalink
    Definition Classes
    CTypeEnvCDeclTyping
  18. def addStructDeclarationToEnv(e: Declaration, featureExpr: FeatureExpr, env: Env): Env

    Permalink

    * Structs

    * Structs

    Definition Classes
    CTypeEnv
  19. def addStructDefinition(definition: AST, env: Env, feature: FeatureExpr): Unit

    Permalink
    Definition Classes
    CDeclUseInterface
  20. def addStructRedeclaration(env: Env, declaration: Id, feature: FeatureExpr, isUnion: Boolean): Unit

    Permalink
    Definition Classes
    CDeclUseInterface
  21. def addStructUse(entry: AST, featureExpr: FeatureExpr, env: Env, structName: String, isUnion: Boolean): Unit

    Permalink
    Definition Classes
    CDeclUseInterface
  22. def addTypeUse(entry: AST, env: Env, feature: FeatureExpr): Unit

    Permalink
    Definition Classes
    CDeclUseInterface
  23. def addTypenameUse(typename: TypeName, offsetDesignators: List[Opt[OffsetofMemberDesignator]], env: Env): Unit

    Permalink

    helper function for CDeclUse

    helper function for CDeclUse

    Definition Classes
    CExprTyping
  24. def addUse(entry: AST, feature: FeatureExpr, env: Env): Unit

    Permalink
    Definition Classes
    CDeclUseInterface
  25. def arrayType(t: CType): Boolean

    Permalink
    Definition Classes
    CTypes
  26. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  27. def assertTypeSystemConstraint(condition: Boolean, featureExpr: FeatureExpr, msg: String, where: AST): Boolean

    Permalink
    Attributes
    protected
    Definition Classes
    CTypeSystemInterface
  28. def checkEnumInitializer(initializer: Expr, fexpr: FeatureExpr, env: Env): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    CTypeSystemCDeclTyping
  29. def checkStructCompleteness(ctype: CType, expr: FeatureExpr, env: Env, where: AST, checkedStructs: List[String] = Nil): Unit

    Permalink

    ensure that the type is complete in the given environment

    ensure that the type is complete in the given environment

    used for example when declaring or dereferencing a variable

    Attributes
    protected
    Definition Classes
    CDeclTyping
  30. def checkStructCompletenessC(ctype: Conditional[CType], expr: FeatureExpr, env: Env, where: AST, checkedStructs: List[String] = Nil): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    CDeclTyping
  31. def checkStructRedeclaration(name: String, isUnion: Boolean, featureExpr: FeatureExpr, scope: Int, env: Env, where: AST): Unit

    Permalink
    Definition Classes
    CTypeEnv
  32. def checkTypeDeclaratorExtension(declExt: DeclaratorExtension, expr: FeatureExpr, env: Env): Unit

    Permalink
    Definition Classes
    CTypeSystem
  33. def checkTypeDeclaratorExtensions(declExts: List[Opt[DeclaratorExtension]], expr: FeatureExpr, env: Env): Unit

    Permalink
    Definition Classes
    CTypeSystem
  34. def checkTypeParam(declaration: ParameterDeclaration, expr: FeatureExpr, env: Env): Unit

    Permalink
    Definition Classes
    CTypeSystem
  35. def checkTypePointers(pointers: List[Opt[Pointer]], expr: FeatureExpr, env: Env): Unit

    Permalink
    Definition Classes
    CTypeSystem
  36. def checkTypeStructDecl(decl: StructDecl, expr: FeatureExpr, env: Env): Unit

    Permalink
    Definition Classes
    CTypeSystem
  37. def checkTypeStructDeclaration(declaration: StructDeclaration, expr: FeatureExpr, env: Env): Unit

    Permalink
    Definition Classes
    CTypeSystem
  38. def checkVoidParameter(ctype: Conditional[CType], ctx: FeatureExpr, decl: AST): Conditional[Unit]

    Permalink
    Attributes
    protected
    Definition Classes
    CDeclTyping
  39. def checkVoidVariable(ctype: Conditional[CType], f: FeatureExpr, decl: AST): Conditional[Unit]

    Permalink
    Attributes
    protected
    Definition Classes
    CDeclTyping
  40. def checkingExternal(externalDef: ExternalDef): Unit

    Permalink

    invoked before checking an external declaration (for example used for progress reports)

    invoked before checking an external declaration (for example used for progress reports)

    Attributes
    protected
    Definition Classes
    CTypeSystemInterface
  41. def clearDeclUseMap(): Unit

    Permalink
    Definition Classes
    CDeclUseInterface
  42. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  43. def coerce(expectedType: CType, foundType: CType): Option[String]

    Permalink

    determines whether types are compatible in assignements etc

    determines whether types are compatible in assignements etc

    for "a=b;" with a:type1 and b:type2

    returns None if there is an error, Some("") if it passes and Some(msg) if there is a warning

    Definition Classes
    CTypes
  44. def constructType(specifiers: List[Opt[Specifier]], featureExpr: FeatureExpr, env: Env, locationForErrorMsg: AST): Conditional[CType]

    Permalink
    Definition Classes
    CDeclTyping
  45. def containsIgnore(aType: AType): Boolean

    Permalink
    Definition Classes
    CTypeSystem
  46. def containsIgnore(cType: CType): Boolean

    Permalink
    Definition Classes
    CTypeSystem
  47. def converse(a: CType, b: CType): CType

    Permalink

    ansi c conversion rules of two arithmetic types (if called on other types, it just returns the first type; hence the pattern if cocerce(x,y) return converse(x,y) should yield the default behavior )

    ansi c conversion rules of two arithmetic types (if called on other types, it just returns the first type; hence the pattern if cocerce(x,y) return converse(x,y) should yield the default behavior )

    default is int. if either operand has a higher priority, it is preferred over int

    according to specification: http://techpubs.sgi.com/library/manuals/0000/007-0701-150/pdf/007-0701-150.pdf

    Definition Classes
    CTypes
  48. def debugInterface(interface: CInterface, file: File): Unit

    Permalink
    Definition Classes
    InterfaceWriter
  49. def declType(specs: List[Opt[Specifier]], decl: Declarator, attributes: List[Opt[AttributeSpecifier]], featureExpr: FeatureExpr, env: Env, oldStyleParameterTypes: ConditionalTypeMap = null): Conditional[CType]

    Permalink

    oldStyleParameterTypes

    only used when resolving a function

    Definition Classes
    CDeclTyping
  50. def enumDeclarations(specs: List[Opt[Specifier]], featureExpr: FeatureExpr, d: AST, env: Env): List[(String, FeatureExpr, AST, Conditional[CType], DeclarationKind, Conditional[Linkage])]

    Permalink

    define all fields from enum type specifiers as int values

    define all fields from enum type specifiers as int values

    enum is always interpreted as definition, not declaration. it conflicts with other definitions and other declarations.

    important: this recurses into structures!

    Attributes
    protected
    Definition Classes
    CDeclTyping
  51. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  52. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  53. def executeOp(op: String, ca: Conditional[VValue], cb: Conditional[VValue]): Conditional[VValue]

    Permalink
    Definition Classes
    CTypeSystem
  54. var exports: List[CSignature]

    Permalink
  55. var featureNames: Set[String]

    Permalink
  56. def filterDeadSpecifiers[T](l: List[Opt[T]], ctx: FeatureExpr): List[Opt[T]]

    Permalink

    filtering is a workaround for a parsing problem (see open test) that can produce False AST-subtrees in some combinations.

    filtering is a workaround for a parsing problem (see open test) that can produce False AST-subtrees in some combinations.

    remove when problem is fixed

    Attributes
    protected
    Definition Classes
    CDeclTyping
  57. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  58. def findAttributes(a: Attribute, ctx: FeatureExpr): Seq[(FeatureExpr, AtomicAttribute)]

    Permalink
  59. def findAttributes(a: AttributeSequence, ctx: FeatureExpr): Seq[(FeatureExpr, AtomicAttribute)]

    Permalink
  60. def findAttributes(a: GnuAttributeSpecifier, ctx: FeatureExpr): Seq[(FeatureExpr, AtomicAttribute)]

    Permalink
  61. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  62. def getDeclarationType(specifiers: List[Opt[Specifier]], decl: Declarator, featureExpr: FeatureExpr, env: Env): Conditional[CType]

    Permalink
    Attributes
    protected
    Definition Classes
    CDeclTyping
  63. def getDeclaratorType(decl: Declarator, returnType: Conditional[CType], featureExpr: FeatureExpr, env: Env, oldStyleParameterTypes: ConditionalTypeMap = null): Conditional[CType]

    Permalink
    Attributes
    protected
    Definition Classes
    CDeclTyping
  64. def getDeclaredVariables(decl: Declaration, featureExpr: FeatureExpr, env: Env, checkInitializer: (Expr, Conditional[CType], FeatureExpr, Env) ⇒ Unit = noInitCheck): (Env, List[(String, FeatureExpr, AST, Conditional[CType], DeclarationKind, Conditional[Linkage])])

    Permalink

    get a list of all declared variables from a declaration.

    get a list of all declared variables from a declaration. also checks that declarations are wellformed (e.g., structs are complete)

    Definition Classes
    CDeclTyping
  65. def getExprType(expr: Expr, featureExpr: FeatureExpr, env: Env): Conditional[CType]

    Permalink

    types an expression in an environment, returns a new environment for all subsequent tokens (eg in a sequence)

    types an expression in an environment, returns a new environment for all subsequent tokens (eg in a sequence)

    Definition Classes
    CExprTypingCDeclTyping
  66. def getExprTypeRec(expr: Expr, featureExpr: FeatureExpr, env: Env, recurse: Boolean = false): Conditional[CType]

    Permalink
    Definition Classes
    CExprTyping
  67. def getExternCondition(specifiers: List[Opt[Specifier]]): FeatureExpr

    Permalink
    Attributes
    protected
    Definition Classes
    CDeclTyping
  68. def getExtraFlags(functionDef: FunctionDef, ctx: FeatureExpr): Set[CFlag]

    Permalink

    try to recognize attribute((weak)) attribute as a flag.

    try to recognize attribute((weak)) attribute as a flag.

    the recognition is conservative and does ignore conditional attribute declarations (so a conditionally weak method is always recognized as weak, which may prevent us from detecting some problems, but which will not produce false positives)

  69. def getFunctionType(specifiers: List[Opt[Specifier]], declarator: Declarator, oldStyleParameters: ConditionalTypeMap, featureExpr: FeatureExpr, env: Env): Conditional[CType]

    Permalink
    Definition Classes
    CDeclTyping
  70. def getInferredInterface(fm: FeatureExpr = FeatureExprFactory.True, strictness: Strictness = LINK_STRICT): CInterface

    Permalink
  71. def getIsExtern(list: List[Opt[Specifier]]): FeatureExpr

    Permalink

    under which condition is modifier extern defined?

    under which condition is modifier extern defined?

    Definition Classes
    CDeclTyping
  72. def getLinkage(symbol: String, isFunctionDef: Boolean, specifiers: List[Opt[Specifier]], fexpr: FeatureExpr, env: Env, where: AST): Conditional[Linkage]

    Permalink

    linkage depends on previous identifiers in scope, on the scope (file level or not) and the specifiers

    linkage depends on previous identifiers in scope, on the scope (file level or not) and the specifiers

    see http://publications.gbdirect.co.uk/c_book/chapter8/declarations_and_definitions.html

    Attributes
    protected
    Definition Classes
    CDeclTyping
  73. def getOldStyleParameters(oldStyleParameters: List[Opt[OldParameterDeclaration]], featureExpr: FeatureExpr, env: Env): ConditionalTypeMap

    Permalink
    Attributes
    protected
    Definition Classes
    CDeclTyping
  74. def getSpecifierCondition(specifiers: List[Opt[Specifier]], specifier: Specifier): FeatureExpr

    Permalink
    Attributes
    protected
    Definition Classes
    CDeclTyping
  75. def getStaticCondition(specifiers: List[Opt[Specifier]]): FeatureExpr

    Permalink
    Attributes
    protected
    Definition Classes
    CDeclTyping
  76. def getStmtType(stmt: Statement, featureExpr: FeatureExpr, env: Env): (Conditional[CType], Env)

    Permalink

    returns a type and a changed environment for subsequent statements

    returns a type and a changed environment for subsequent statements

    most statements do not have types; type information extracted from sparse (evaluate.c)

    Definition Classes
    CTypeSystemCExprTyping
  77. def getTypenameType(typename: TypeName, featureExpr: FeatureExpr, env: Env): Conditional[CType]

    Permalink
    Definition Classes
    CDeclTyping
  78. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  79. var imports: List[CSignature]

    Permalink
  80. def inferInterface(ast: TranslationUnit, fm: FeatureExpr = FeatureExprFactory.True): CInterface

    Permalink
  81. def init(): Unit

    Permalink
    Definition Classes
    CDeclUseInterface
  82. val initBuiltinTypedevEnv: Seq[(String, FeatureExpr, (AST, Conditional[CType]))]

    Permalink
    Definition Classes
    CBuiltIn
  83. lazy val initBuiltinVarEnv: Seq[(String, FeatureExpr, AST, Conditional[CType], DeclarationKind, Int, Linkage)]

    Permalink
    Definition Classes
    CBuiltIn
  84. lazy val initialEnv: Env

    Permalink
    Definition Classes
    CBuiltIn
  85. def interfaceFromXML(node: Node): CInterface

    Permalink
    Definition Classes
    InterfaceWriter
  86. def interfaceToXML(int: CInterface): Elem

    Permalink
    Definition Classes
    InterfaceWriter
  87. def isAnonymousStruct(t: CType): Boolean

    Permalink
    Definition Classes
    CTypes
  88. def isArithmetic(t: CType): Boolean

    Permalink
    Definition Classes
    CTypes
  89. def isArray(t: CType): Boolean

    Permalink
    Definition Classes
    CTypes
  90. def isCharSignCoercion(a: AType, b: AType): Boolean

    Permalink

    are both types char but with different signage?

    are both types char but with different signage?

    Attributes
    protected
    Definition Classes
    CTypes
  91. def isCompound(t: CType): Boolean

    Permalink
    Definition Classes
    CTypes
  92. def isFloatingPoint(t: CType): Boolean

    Permalink
    Definition Classes
    CTypes
  93. def isForcedCoercion(expectedType: AType, foundType: AType): Boolean

    Permalink

    we can report as a warning if both types are number, but they are not the same width or signed

    we can report as a warning if both types are number, but they are not the same width or signed

    Definition Classes
    CTypes
  94. def isFunction(t: CType): Boolean

    Permalink
    Definition Classes
    CTypes
  95. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  96. def isIntegral(t: CType): Boolean

    Permalink
    Definition Classes
    CTypes
  97. def isPointer(t: CType): Boolean

    Permalink
    Definition Classes
    CTypes
  98. def isScalar(t: CType): Boolean

    Permalink
    Definition Classes
    CTypes
  99. def isStruct(t: CType): Boolean

    Permalink
    Definition Classes
    CTypes
  100. def isTypedef(specs: List[Opt[Specifier]]): Boolean

    Permalink
    Definition Classes
    CDeclTyping
  101. def isVoid(t: CType): Boolean

    Permalink
    Definition Classes
    CTypes
  102. def isZero(t: CType): Boolean

    Permalink
    Definition Classes
    CTypes
  103. def issueTypeError(severity: Severity, condition: FeatureExpr, msg: String, where: AST, severityExtra: String = ""): Unit

    Permalink

    error reporting for type errors

    error reporting for type errors

    Attributes
    protected
    Definition Classes
    CTypeSystemInterface
  104. def markSecurityRelevantFunctions(funname: String, ctype: Conditional[CType]): Conditional[CType]

    Permalink

    hardcoding of functions for which parameters are considered security relevant parameters of these functions are checked for integer overflows

    hardcoding of functions for which parameters are considered security relevant parameters of these functions are checked for integer overflows

    Definition Classes
    CExprTyping
  105. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  106. def normalize(t: AType): AType

    Permalink
    Attributes
    protected
    Definition Classes
    CTypes
  107. def normalize(t: CType): CType

    Permalink

    normalize types for internal comparison in coerce (do not return this to the outside)

    normalize types for internal comparison in coerce (do not return this to the outside)

    * function -> pointer to function

    * pointer to pointer to function -> pointer to function

    * remove any CObj within the type

    * regard arrays as pointers

    * pointer to ignore equals ignore

    * CVoid in function parameters is removed

    Attributes
    protected
    Definition Classes
    CTypes
  108. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  109. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  110. def opts: ICTypeSysOptions

    Permalink
    Attributes
    protected
    Definition Classes
    COptionProvider
  111. final def parameterTypes(decl: Declarator, featureExpr: FeatureExpr, env: Env, oldStyleParam: ConditionalTypeMap): List[(String, FeatureExpr, AST, Conditional[CType])]

    Permalink

    get the parameters from the innermost declarator.

    get the parameters from the innermost declarator. all outer (nested) declarators describe only arrays or parameters of the return type, if the function returns a function

    Attributes
    protected
    Definition Classes
    CTypeEnv
  112. def parseStructMembers(members: List[Opt[StructDeclaration]], featureExpr: FeatureExpr, initialEnv: Env): ConditionalTypeMap

    Permalink
    Definition Classes
    CDeclTyping
  113. def promote(x: CType): CType

    Permalink

    promotion is what happens internally during conversion

    promotion is what happens internally during conversion

    Definition Classes
    CTypes
  114. def readInterface(file: File): CInterface

    Permalink
    Definition Classes
    InterfaceWriter
  115. def recognizeTypedefs(decl: Declaration, featureExpr: FeatureExpr, env: Env): Seq[(String, FeatureExpr, (AST, Conditional[CType]))]

    Permalink
    Attributes
    protected
    Definition Classes
    CDeclTyping
  116. final def reportTypeError(featureExpr: FeatureExpr, txt: String, where: AST, severity: Severity = Severity.OtherError, severityExtra: String = ""): CUnknown

    Permalink
    Attributes
    protected
    Definition Classes
    CTypeSystemInterface
  117. def signatureToXML(sig: CSignature): Elem

    Permalink
    Definition Classes
    InterfaceWriter
  118. def sizeofType(env: Env, x: AST, featureExpr: FeatureExpr): Conditional[CType]

    Permalink

    sizeof() has type Any->size_t.

    sizeof() has type Any->size_t. Type size_t is defined in individual header files (e.g. stddef.h) of the system though and may not be defined in all cases. here we look up the type of size_t and return an int in case it fails

    Definition Classes
    CExprTyping
  119. var staticFunctions: List[CSignature]

    Permalink
  120. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  121. implicit def toCType(x: CLong): AType

    Permalink
    Definition Classes
    CTypes
  122. implicit def toCType(x: CShort): AType

    Permalink
    Definition Classes
    CTypes
  123. implicit def toCType(x: CChar): AType

    Permalink
    Definition Classes
    CTypes
  124. implicit def toCType(x: CInt): AType

    Permalink
    Definition Classes
    CTypes
  125. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  126. def typecheckTranslationUnit(tunit: TranslationUnit, featureModel: FeatureExpr = FeatureExprFactory.True): Unit

    Permalink
    Definition Classes
    CTypeSystem
  127. def typedExpr(expr: Expr, ctypes: Conditional[CType], featureExpr: FeatureExpr, env: Env): Unit

    Permalink

    all function declarations without definitions are imports if they are referenced at least once

    all function declarations without definitions are imports if they are referenced at least once

    Attributes
    protected
    Definition Classes
    CInferInterfaceCTypeSystemInterface
  128. def typedFunction(fun: FunctionDef, funType: Conditional[CType], featureExpr: FeatureExpr): Unit

    Permalink

    all nonstatic function definitions are considered as exports

    all nonstatic function definitions are considered as exports

    actually the behavior of "extern inline" is slightly complicated, see also http://stackoverflow.com/questions/216510/extern-inline "extern inline" means neither static nor exported

    Attributes
    protected
    Definition Classes
    CInferInterfaceCTypeSystemInterface
  129. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  130. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  131. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  132. def wellformed(structEnv: StructEnv, ptrEnv: PtrEnv, atype: AType): Boolean

    Permalink
    Definition Classes
    CTypeEnv
  133. def wellformed(structEnv: StructEnv, ptrEnv: PtrEnv, atype: Conditional[AType]): Boolean

    Permalink
    Definition Classes
    CTypeEnv
  134. def wellformedC(structEnv: StructEnv, ptrEnv: PtrEnv, ctype: Conditional[CType]): Boolean

    Permalink
    Definition Classes
    CTypeEnv
  135. def wider(t1: CType, t2: CType): CType

    Permalink

    returns the wider of two types for automatic widening

    returns the wider of two types for automatic widening

    Definition Classes
    CExprTyping
  136. def writeInterface(interface: CInterface, file: File): Unit

    Permalink
    Definition Classes
    InterfaceWriter

Inherited from InterfaceWriter

Inherited from CTypeSystem

Inherited from CBuiltIn

Inherited from CExprTyping

Inherited from CTypeEnv

Inherited from CDeclTyping

Inherited from CDeclUseInterface

Inherited from CTypeSystemInterface

Inherited from CEnv

Inherited from CTypes

Inherited from COptionProvider

Inherited from AnyRef

Inherited from Any

Ungrouped