SuccessChanges

Summary

  1. [ObjC] Diagnose implicit type coercion from ObjC 'Class' to object (details)
  2. [lld][test] Fix use of escape character in an lld test on Windows (details)
  3. Fix an inverted condition in test. (details)
  4. [lit] Create derived classes for serial/parallel test runs (details)
  5. [lit] Synthesize artificial deadline (details)
  6. [lit] Move computation of deadline up into base class (details)
  7. [lld][test] Speculative fix for lld+windows failures (details)
  8. [Sanitizers] Add support for RISC-V 64-bit (details)
Commit ccc4d83cda16bea1d9dfd0967dc7d2cfb24b8e75 by jyknight
[ObjC] Diagnose implicit type coercion from ObjC 'Class' to object
pointer types.
For example, in Objective-C mode, the initialization of 'x' in:
```
@implementation MyType
+ (void)someClassMethod {
   MyType *x = self;
}
@end
``` is correctly diagnosed with an incompatible-pointer-types warning,
but in Objective-C++ mode, it is not diagnosed at all -- even though
incompatible pointer conversions generally become an error in C++.
This patch fixes that oversight, allowing implicit conversions involving
Class only to/from unqualified-id, and between qualified and unqualified
Class, where the protocols are compatible.
Note that this does change some behaviors in Objective-C, as well, as
shown by the modified tests.
Of particular note is that assignment from from 'Class<MyProtocol>' to
'id<MyProtocol>' now warns. (Despite appearances, those are not
compatible types. 'Class<MyProtocol>' is not expected to have instance
methods defined by 'MyProtocol', while 'id<MyProtocol>' is.)
Differential Revision: https://reviews.llvm.org/D67983
llvm-svn: 375125
The file was modifiedclang/test/SemaObjC/comptypes-1.m
The file was modifiedclang/test/SemaObjCXX/comptypes-7.mm
The file was modifiedclang/test/SemaObjCXX/class-method-self.mm
The file was modifiedclang/test/SemaObjCXX/comptypes-1.mm
The file was modifiedclang/lib/AST/ASTContext.cpp
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/test/SemaObjCXX/instancetype.mm
Commit 1b6c3ca1267218b31c230815e1cc0b56aa89ddd2 by rupprecht
[lld][test] Fix use of escape character in an lld test on Windows
Summary: Glob support was improved to accept `\` as an escape character
in r375051, but reverted as r375052 due to a failure in this test on
Windows.
The reason this failure seems Windows specific is because the path
separator `\` is currently being relied on to be interpreted literally
instead of as an escape character. Per documentation on linker input
section wildcard patterns, this seems to be a bug in lld accepting `\`
as a literal instead of an escape character.
For example:
``` SECTIONS{ .foo :{ /path/to/foo.o(.foo) }} # OK: standard UNIX path
SECTIONS{ .foo :{ C:/path/to/foo.o(.foo) }} # OK: windows accepts
slashes in either direction SECTIONS{ .foo :{ C:\\path\\to\\foo.o(.foo)
}} # OK: escape character used to match a literal \ SECTIONS{ .foo :{
C:\path\to\foo.o(.foo) }} # BAD: this actually matches the path
C:pathtofoo.o(.foo)
```
This avoids the problem in the test by using `%/T` in place of `%T` to
normalize the path separator to `/`, which windows should also accept.
This patch just fixes the test, and glob support will be be relanded
separately.
For a sample buildbot error, see:
http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/11578/steps/stage%201%20check/logs/stdio
Reviewers: evgeny777, ruiu, MaskRay, espindola
Reviewed By: ruiu, MaskRay
Subscribers: emaste, arichardson, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69074
llvm-svn: 375126
The file was modifiedlld/test/ELF/linkerscript/filename-spec.s
Commit d06a2f3ad681fc9e2126b39f1110a82cd7870356 by Adrian Prantl
Fix an inverted condition in test.
llvm-svn: 375127
The file was modifiedlldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
Commit d25c766aa255662a91465662fef02ef8b5990bba by jlettner
[lit] Create derived classes for serial/parallel test runs
The hope is that with a little OO we can nicely factor out the
differences.
llvm-svn: 375128
The file was modifiedllvm/utils/lit/lit/main.py
The file was modifiedllvm/utils/lit/lit/run.py
Commit aa05e0e9729fe7236c8961c27092b780face8a85 by jlettner
[lit] Synthesize artificial deadline
We always want to use a deadline when calling `result.await`.  Let's
synthesize an artificial deadline (positive infinity) to simplify code
and do less busy waiting.
llvm-svn: 375129
The file was modifiedllvm/utils/lit/lit/run.py
Commit a660dc590a5e8dafa1ba6ed56447ede151d17bd9 by jlettner
[lit] Move computation of deadline up into base class
llvm-svn: 375130
The file was modifiedllvm/utils/lit/lit/run.py
Commit ce88cdf0964db63326ae0754fd1d2e39e1ccd4f3 by rupprecht
[lld][test] Speculative fix for lld+windows failures
This updates some more places using `%T` to use `%/T` for path
normalization.
If this does not work, this and r375126 should be reverted together.
llvm-svn: 375131
The file was modifiedlld/test/ELF/linkerscript/filename-spec.s
Commit 00bbe990c5d4472d5413479a539b3d6edbb3ca7a by selliott
[Sanitizers] Add support for RISC-V 64-bit
Summary: This has been tested with gcc trunk on openSUSE Tumbleweed on
the HiFive Unleashed.
Patch by Andreas Schwab (schwab)
Reviewers: luismarques
Reviewed By: luismarques
Subscribers: mhorne, emaste, luismarques, asb, mgorny, fedor.sergeev,
simoncook, kito-cheng, shiva0217, rogfer01, rkruppe, lenary, s.egerton,
#sanitizers, llvm-commits
Tags: #llvm, #sanitizers
Differential Revision: https://reviews.llvm.org/D66870
llvm-svn: 375132
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform_limits_linux.cpp
The file was modifiedcompiler-rt/cmake/config-ix.cmake