Skip to content
Snippets Groups Projects
  1. Jun 23, 2017
  2. Jun 19, 2017
  3. Jun 16, 2017
  4. Jun 15, 2017
  5. Jun 13, 2017
  6. Jun 10, 2017
  7. Jun 09, 2017
  8. Jun 06, 2017
  9. Jun 05, 2017
    • Javed Absar's avatar
      Add support for #pragma clang section · 7c787101
      Javed Absar authored
      This patch provides a means to specify section-names for global variables, 
      functions and static variables, using #pragma directives. 
      This feature is only defined to work sensibly for ELF targets.
      One can specify section names as:
      #pragma clang section bss="myBSS" data="myData" rodata="myRodata" text="myText"
      One can "unspecify" a section name with empty string e.g.
      #pragma clang section bss="" data="" text="" rodata=""
      
      Reviewers: Roger Ferrer, Jonathan Roelofs, Reid Kleckner
      Differential Revision: https://reviews.llvm.org/D33412
      
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@304705 91177308-0d34-0410-b5e6-96231b3b80d8
      7c787101
  10. Jun 02, 2017
    • Richard Smith's avatar
      Support lazy stat'ing of files referenced by module maps. · 146ecad7
      Richard Smith authored
      This patch adds support for a `header` declaration in a module map to specify
      certain `stat` information (currently, size and mtime) about that header file.
      This has two purposes:
      
      - It removes the need to eagerly `stat` every file referenced by a module map.
        Instead, we track a list of unresolved header files with each size / mtime
        (actually, for simplicity, we track submodules with such headers), and when
        attempting to look up a header file based on a `FileEntry`, we check if there
        are any unresolved header directives with that `FileEntry`'s size / mtime and
        perform deferred `stat`s if so.
      
      - It permits a preprocessed module to be compiled without the original files
        being present on disk. The only reason we used to need those files was to get
        the `stat` information in order to do header -> module lookups when using the
        module. If we're provided with the `stat` information in the preprocessed
        module, we can avoid requiring the files to exist.
      
      Unlike most `header` directives, if a `header` directive with `stat`
      information has no corresponding on-disk file the enclosing module is *not*
      marked unavailable (so that behavior is consistent regardless of whether we've
      resolved a header directive, and so that preprocessed modules don't get marked
      unavailable). We could actually do this for all `header` directives: the only
      reason we mark the module unavailable if headers are missing is to give a
      diagnostic slightly earlier (rather than waiting until we actually try to build
      the module / load and validate its .pcm file).
      
      Differential Revision: https://reviews.llvm.org/D33703
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@304515 91177308-0d34-0410-b5e6-96231b3b80d8
      146ecad7
  11. Jun 01, 2017
  12. May 31, 2017
  13. May 28, 2017
  14. May 27, 2017
  15. May 09, 2017
  16. May 08, 2017
  17. May 07, 2017
  18. May 06, 2017
  19. May 05, 2017
  20. May 02, 2017
  21. May 01, 2017
  22. Apr 24, 2017
  23. Apr 20, 2017
  24. Apr 19, 2017
  25. Apr 18, 2017
  26. Apr 14, 2017
    • Vedant Kumar's avatar
      [docs] UBSan: Mention that print_stacktrace=1 is unsupported on Darwin · 17b8d036
      Vedant Kumar authored
      Printing out stack traces along with UBSan diagnostics is unsupported on
      Darwin. That's because it isn't possible to use the fast unwinder or the
      slow unwinder.
      
      Apparently, it's inappropriate to use the fast unwinder for UBSan
      issues. I'm not exactly sure why (see the comment in ubsan_diag.cc).
      Forcing use of the fast unwinder produces decent results, AFAICT.
      
      Darwin also does not appear to have a slow unwinder suitable for use
      with the sanitizers. Apparently that's because of PR20800 [1][2]. But
      that bug has been fixed. I'm not sure if there is anything preventing
      use of the slow unwinder now.
      
      Currently, passing UBSAN_OPTIONS=print_stacktrace=1 does nothing on
      Darwin. This isn't good, but it might be a while before we can fix the
      situation, so we should at least document it.
      
      [1] https://github.com/google/sanitizers/issues/137
      "We can't use the slow unwinder on OSX now, because Clang produces
      incorrect unwind info for the ASan runtime functions on OSX
      (http://llvm.org/PR20800)."
      
      [2] https://bugs.llvm.org/show_bug.cgi?id=20800
      Bug 20800 - Invalid compact unwind info generated for a function without
      frame pointers on OSX
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@300295 91177308-0d34-0410-b5e6-96231b3b80d8
      17b8d036
Loading