Skip to content
  1. May 01, 2011
    • Chandler Carruth's avatar
      More cleanup of the type traits implementation. · 8e172c60
      Chandler Carruth authored
      1) Moved the completeness checking routine above the evaluation routine
         so the reader sees that we do in fact check for complete types when
         necessary.
      2) Remove the FIXME comment about not doing this.
      3) Make the arguments to the evaluate function agree in order with those
         to the completeness checking function.
      4) Completely specify the enumerators for the completeness checking
         function rather than relying on a default.
      5) Remove a check for the Borland language to only require complete
         types in a few places. Borland's own documentation doesn't agree with
         this: some of the previously unspecified traits *do* require
         a complete type, some don't.
      6) Correctly split the traits which do not require complete types from
         those that do, clarifying comments and citations to the standard or
         other documentation where relevant.
      
      llvm-svn: 130641
      8e172c60
    • Chandler Carruth's avatar
      Order the type traits according to the standard's listing of unary type · d2479eaa
      Chandler Carruth authored
      traits where possible. For the rest, group them and add some
      documentation regarding their origins.
      
      No functionality change intended.
      
      llvm-svn: 130639
      d2479eaa
    • Chandler Carruth's avatar
      Begin cleaning up type trait expression implementations and settling on · 100f3a97
      Chandler Carruth authored
      a single pattern for implementing each.
      
      llvm-svn: 130638
      100f3a97
    • Francois Pichet's avatar
      Add a triple to this test, otherwise it fails under MSVC because wchar_t is... · af538d9e
      Francois Pichet authored
      Add a triple to this test, otherwise it fails under MSVC because wchar_t is unsigned with the i686-pc-win32 triple.
      
      llvm-svn: 130636
      af538d9e
    • John McCall's avatar
      Improve the documentation for the two ObjCDeclQualifiers so that I · ca87290f
      John McCall authored
      stop considering whether I can compress them. :)
      
      llvm-svn: 130633
      ca87290f
    • John McCall's avatar
      Compress some bits. Only matters for MSVC, or if we ever · beaa11ca
      John McCall authored
      devirtualize Decl (because bits can't get laid out in base
      classes if the base is POD).
      
      llvm-svn: 130632
      beaa11ca
    • Chandler Carruth's avatar
      Switch the interface name for both TemplateTypeParmType and · dde65ea8
      Chandler Carruth authored
      SubstTemplateTypeParmType to be 'getIdentifier' instead of 'getName' as
      it returns an identifier. This makes them more consistent with the
      NamedDecl interface.
      
      Also, switch back to using this interface to acquire the indentifier in
      TypePrinter.cpp. I missed this in r130628.
      
      llvm-svn: 130629
      dde65ea8
    • Chandler Carruth's avatar
      Re-applies the patch first applied way back in r106099, with · 0883632a
      Chandler Carruth authored
      accompanying fixes to make it work today.
      
      The core of this patch is to provide a link from a TemplateTypeParmType
      back to the TemplateTypeParmDecl node which declared it. This in turn
      provides much more precise information about the type, where it came
      from, and how it functions for AST consumers.
      
      To make the patch work almost a year after its first attempt, it needed
      serialization support, and it now retains the old getName() interface.
      Finally, it requires us to not attempt to instantiate the type in an
      unsupported friend decl -- specifically those coming from template
      friend decls but which refer to a specific type through a dependent
      name.
      
      A cleaner representation of the last item would be to build
      FriendTemplateDecl nodes for these, storing their template parameters
      etc, and to perform proper instantation of them like any other template
      declaration. They can still be flagged as unsupported for the purpose of
      access checking, etc.
      
      This passed an asserts-enabled bootstrap for me, and the reduced test
      case mentioned in the original review thread no longer causes issues,
      likely fixed at somewhere amidst the 24k revisions that have elapsed.
      
      llvm-svn: 130628
      0883632a
    • Rafael Espindola's avatar
      Revert the previous patch while I figure out how to make llvm-gcc · 37981e60
      Rafael Espindola authored
      less agressive about disabling cfi on linux :-(
      
      llvm-svn: 130627
      37981e60
    • Rafael Espindola's avatar
      Update for cfi. · 1f6936b6
      Rafael Espindola authored
      llvm-svn: 130624
      1f6936b6
  2. Apr 30, 2011
Loading