Skip to content
  1. Apr 01, 2009
  2. Mar 21, 2009
  3. Mar 17, 2009
  4. Mar 10, 2009
  5. Mar 08, 2009
  6. Mar 07, 2009
  7. Feb 27, 2009
    • Douglas Gregor's avatar
      Create a new TypeNodes.def file that enumerates all of the types, · deaad8cc
      Douglas Gregor authored
      giving them rough classifications (normal types, never-canonical
      types, always-dependent types, abstract type representations) and
      making it far easier to make sure that we've hit all of the cases when
      decoding types. 
      
      Switched some switch() statements on the type class over to using this
      mechanism, and filtering out those things we don't care about. For
      example, CodeGen should never see always-dependent or non-canonical
      types, while debug info generation should never see always-dependent
      types. More switch() statements on the type class need to be moved 
      over to using this approach, so that we'll get warnings when we add a
      new type then fail to account for it somewhere in the compiler.
      
      As part of this, some types have been renamed:
      
        TypeOfExpr -> TypeOfExprType
        FunctionTypeProto -> FunctionProtoType
        FunctionTypeNoProto -> FunctionNoProtoType
      
      There shouldn't be any functionality change...
      
      llvm-svn: 65591
      deaad8cc
  8. Feb 24, 2009
    • Douglas Gregor's avatar
      Improve merging of function declarations. Specifically: · e62c0a45
      Douglas Gregor authored
        - When we are declaring a function in local scope, we can merge with
          a visible declaration from an outer scope if that declaration
          refers to an entity with linkage. This behavior now works in C++
          and properly ignores entities without linkage.
        - Diagnose the use of "static" on a function declaration in local
          scope.
        - Diagnose the declaration of a static function after a non-static
          declaration of the same function.
        - Propagate the storage specifier to a function declaration from a
          prior declaration (PR3425)
        - Don't name-mangle "main"
      
      llvm-svn: 65360
      e62c0a45
  9. Feb 21, 2009
  10. Feb 19, 2009
  11. Feb 13, 2009
    • Douglas Gregor's avatar
      Add mangling for variadic functions and conversion functions · adb02014
      Douglas Gregor authored
      llvm-svn: 64425
      adb02014
    • Douglas Gregor's avatar
      Add basic support for C++ name mangling according to the Itanium C++ · 5fec5b04
      Douglas Gregor authored
      ABI to the CodeGen library. Since C++ code-generation is so
      incomplete, we can't exercise much of this mangling code. However, a
      few smoke tests show that it's doing the same thing as GCC. When C++
      codegen matures, we'll extend the ABI tester to verify name-mangling
      as well, and complete the implementation here.
      
      At this point, the major client of name mangling is in the uses of the
      new "overloadable" attribute in C, which allows overloading. Any
      "overloadable" function in C (or in an extern "C" block in C++) will
      be mangled the same way that the corresponding C++ function would be
      mangled.
      
      llvm-svn: 64413
      5fec5b04
Loading