Skip to content
Snippets Groups Projects
  1. Oct 03, 2014
    • Dan Liew's avatar
      [sphinx clean up] Fix warning introduced by r218957 · 0999b0d8
      Dan Liew authored
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@218983 91177308-0d34-0410-b5e6-96231b3b80d8
      0999b0d8
    • Hal Finkel's avatar
      Add an implementation of C11's stdatomic.h · 39f1f1f1
      Hal Finkel authored
      Adds a Clang-specific implementation of C11's stdatomic.h header. On systems,
      such as FreeBSD, where a stdatomic.h header is already provided, we defer to
      that header instead (using our __has_include_next technology). Otherwise, we
      provide an implementation in terms of our __c11_atomic_* intrinsics (that were
      created for this purpose).
      
      C11 7.1.4p1 requires function declarations for atomic_thread_fence,
      atomic_signal_fence, atomic_flag_test_and_set,
      atomic_flag_test_and_set_explicit, and atomic_flag_clear, and requires that
      they have external linkage. Accordingly, we provide these declarations, but if
      a user elides the shadowing macros and uses them, then they must have a libc
      (or similar) that actually provides definitions.
      
      atomic_flag is implemented using _Bool as the underlying type. This is
      consistent with the implementation provided by FreeBSD and also GCC 4.9 (at
      least when __GCC_ATOMIC_TEST_AND_SET_TRUEVAL == 1).
      
      Patch by Richard Smith (rebased and slightly edited by me -- Richard said I
      should drive at this point).
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@218957 91177308-0d34-0410-b5e6-96231b3b80d8
      39f1f1f1
  2. Oct 01, 2014
    • Richard Smith's avatar
      Enable both C and C++ modules with -fmodules, by switching -fcxx-modules to · ce4ac7ba
      Richard Smith authored
      being on by default. -fno-cxx-modules can still be used to enable C modules but
      not C++ modules, but C++ modules is not significantly less stable than C
      modules any more.
      
      Also remove some of the scare words from the modules documentation. We're
      certainly not going to remove modules support (though we might change the
      interface), and it works well enough to bootstrap and build lots of
      non-trivial code.
      
      Note that this does not represent a commitment to the current interface nor
      implementation, and we still intend to follow whatever direction the C and C++
      committees take regarding modules support.
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@218717 91177308-0d34-0410-b5e6-96231b3b80d8
      ce4ac7ba
  3. Sep 29, 2014
  4. Sep 25, 2014
  5. Sep 18, 2014
    • Nico Weber's avatar
      Change -Wbind-to-temporary-copy from an ExtWarn to an Extension. · 3bdb38bf
      Nico Weber authored
      The reasoning is that this construct is accepted by all compilers and valid in
      C++11, so it doesn't seem like a useful warning to have enabled by default.
      Building with -pedantic, -Wbind-to-temporary-copy, or -Wc++98-compat still
      shows the warning.
      
      The motivation is that I built re2, and this was the only warning that was
      emitted during the build. Both changing re2 to fix the warning and detecting
      clang and suppressing the warning in re2's build seem inferior than just giving
      the compiler a good default for this warning.
      
      Also move the cxx98compat version of this warning to CXX98CompatPedantic, and
      update tests accordingly.
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@218008 91177308-0d34-0410-b5e6-96231b3b80d8
      3bdb38bf
  6. Sep 16, 2014
  7. Sep 15, 2014
  8. Sep 10, 2014
  9. Sep 08, 2014
    • Alexey Samsonov's avatar
      Implement nonnull-attribute sanitizer · 565e4df1
      Alexey Samsonov authored
      Summary:
      This patch implements a new UBSan check, which verifies
      that function arguments declared to be nonnull with __attribute__((nonnull))
      are actually nonnull in runtime.
      
      To implement this check, we pass FunctionDecl to CodeGenFunction::EmitCallArgs
      (where applicable) and if function declaration has nonnull attribute specified
      for a certain formal parameter, we compare the corresponding RValue to null as
      soon as it's calculated.
      
      Test Plan: regression test suite
      
      Reviewers: rsmith
      
      Reviewed By: rsmith
      
      Subscribers: cfe-commits, rnk
      
      Differential Revision: http://reviews.llvm.org/D5082
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217389 91177308-0d34-0410-b5e6-96231b3b80d8
      565e4df1
    • Hal Finkel's avatar
      Add __builtin_assume and __builtin_assume_aligned using @llvm.assume. · 687b32ee
      Hal Finkel authored
      This makes use of the recently-added @llvm.assume intrinsic to implement a
      __builtin_assume(bool) intrinsic (to provide additional information to the
      optimizer). This hooks up __assume in MS-compatibility mode to mirror
      __builtin_assume (the semantics have been intentionally kept compatible), and
      implements GCC's __builtin_assume_aligned as assume((p - o) & mask == 0). LLVM
      now contains special logic to deal with assumptions of this form.
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217349 91177308-0d34-0410-b5e6-96231b3b80d8
      687b32ee
  10. Sep 04, 2014
  11. Sep 03, 2014
  12. Sep 02, 2014
  13. Aug 29, 2014
  14. Aug 26, 2014
  15. Aug 25, 2014
  16. Aug 22, 2014
  17. Aug 16, 2014
  18. Aug 15, 2014
  19. Aug 13, 2014
  20. Aug 12, 2014
  21. Aug 06, 2014
  22. Aug 05, 2014
  23. Aug 04, 2014
  24. Jul 29, 2014
  25. Jul 24, 2014
  26. Jul 23, 2014
Loading