Skip to content
Snippets Groups Projects
  1. Mar 23, 2016
    • George Burgess IV's avatar
      [Sema] Allow implicit conversions of &overloaded_fn in C. · 9aa1acdc
      George Burgess IV authored
      Also includes a minor ``enable_if`` docs update.
      
      Currently, our address-of overload machinery will only allow implicit
      conversions of overloaded functions to void* in C. For example:
      
      ```
      void f(int) __attribute__((overloadable));
      void f(double) __attribute__((overloadable, enable_if(0, "")));
      
      void *fp = f; // OK. This is C and the target is void*.
      void (*fp2)(void) = f; // Error. This is C, but the target isn't void*.
      ```
      
      This patch makes the assignment of `fp2` select the `f(int)` overload,
      rather than emitting an error (N.B. you'll still get a warning about the
      `fp2` assignment if you use -Wincompatible-pointer-types).
      
      Differential Revision: http://reviews.llvm.org/D13704
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@264132 91177308-0d34-0410-b5e6-96231b3b80d8
      9aa1acdc
  2. Mar 22, 2016
  3. Mar 21, 2016
  4. Mar 20, 2016
    • Simon Pilgrim's avatar
      Fixed -Wdocumentation warning · 059da914
      Simon Pilgrim authored
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@263908 91177308-0d34-0410-b5e6-96231b3b80d8
      059da914
    • Richard Smith's avatar
    • Bruno Cardoso Lopes's avatar
      Reapply [2] [VFS] Add 'overlay-relative' field to YAML files · 86240eff
      Bruno Cardoso Lopes authored
      This reapplies r261552 and r263748. Fixed testcase to reapply.
      
      The VFS overlay mapping between virtual paths and real paths is done through
      the 'external-contents' entries in YAML files, which contains hardcoded paths
      to the real files.
      
      When a module compilation crashes, headers are dumped into <name>.cache/vfs
      directory and are mapped via the <name>.cache/vfs/vfs.yaml. The script
      generated for reproduction uses -ivfsoverlay pointing to file to gather the
      mapping between virtual paths and files inside <name>.cache/vfs. Currently, we
      are only capable of reproducing such crashes in the same machine as they
      happen, because of the hardcoded paths in 'external-contents'.
      
      To be able to reproduce a crash in another machine, this patch introduces a new
      option in the VFS yaml file called 'overlay-relative'. When it's equal to
      'true' it means that the provided path to the YAML file through the
      -ivfsoverlay option should also be used to prefix the final path for every
      'external-contents'.
      
      Example, given the invocation snippet "... -ivfsoverlay
      <name>.cache/vfs/vfs.yaml" and the following entry in the yaml file:
      
      "overlay-relative": "true",
      "roots": [
      ...
        "type": "directory",
        "name": "/usr/include",
        "contents": [
          {
            "type": "file",
            "name": "stdio.h",
            "external-contents": "/usr/include/stdio.h"
          },
      ...
      
      Here, a file manager request for virtual "/usr/include/stdio.h", that will map
      into real path "/<absolute_path_to>/<name>.cache/vfs/usr/include/stdio.h.
      
      This is a useful feature for debugging module crashes in machines other than
      the one where the error happened.
      
      Differential Revision: http://reviews.llvm.org/D17457
      
      rdar://problem/24499339
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@263893 91177308-0d34-0410-b5e6-96231b3b80d8
      86240eff
  5. Mar 19, 2016
  6. Mar 18, 2016
  7. Mar 17, 2016
  8. Mar 16, 2016
  9. Mar 15, 2016
  10. Mar 14, 2016
Loading