Skip to content
Snippets Groups Projects
  1. Feb 07, 2016
  2. Feb 06, 2016
  3. Feb 05, 2016
  4. Feb 04, 2016
  5. Feb 03, 2016
    • Quentin Colombet's avatar
      Reapply r259624, it is likely not the commit causing the bot failures. · 806d823f
      Quentin Colombet authored
      Original message:
      Make CF constant string decl visible to name lookup to fix module errors
      
      The return type of the __builtin___*StringMakeConstantString functions
      is a pointer to a struct, so we need that struct to be visible to name
      lookup so that we will correctly merge multiple declarations of that
      type if they come from different modules.
      
      Incidentally, to make this visible to name lookup we need to rename the
      type to __NSConstantString, since the real NSConstantString is an
      Objective-C interface type.  This shouldn't affect anyone outside the
      compiler since users of the constant string builtins cast the result
      immediately to CFStringRef.
      
      Since this struct type is otherwise implicitly created by the AST
      context and cannot access namelookup, we make this a predefined type
      and initialize it in Sema.
      
      Note: this issue of builtins that refer to types not visible to name
      lookup technically also affects other builtins (e.g. objc_msgSendSuper),
      but in all other cases the builtin is a library builtin and the issue
      goes away if you include the library that defines the types it uses,
      unlike for these constant string builtins.
      
      rdar://problem/24425801
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@259721 91177308-0d34-0410-b5e6-96231b3b80d8
      806d823f
    • Evgeniy Stepanov's avatar
      [cfi] Safe handling of unaddressable vtable pointers (clang). · 388a0544
      Evgeniy Stepanov authored
      Avoid crashing when printing diagnostics for vtable-related CFI
      errors. In diagnostic mode, the frontend does an additional check of
      the vtable pointer against the set of all known vtable addresses and
      lets the runtime handler know if it is safe to inspect the vtable.
      
      http://reviews.llvm.org/D16823
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@259716 91177308-0d34-0410-b5e6-96231b3b80d8
      388a0544
Loading