SuccessChanges

Summary

  1. [Sema] Split of versions of -Wimplicit-{float,int}-conversion for Objective-C BOOL Also, add a diagnostic group, -Wobjc-signed-char-bool, to control all these related diagnostics. rdar://51954400 Differential revision: https://reviews.llvm.org/D67559
  2. [PGO] Don't use comdat groups for counters & data on COFF For COFF, a comdat group is really a symbol marked IMAGE_COMDAT_SELECT_ANY and zero or more other symbols marked IMAGE_COMDAT_SELECT_ASSOCIATIVE. Typically the associative symbols in the group are not external and are not referenced by other TUs, they are things like debug info, C++ dynamic initializers, or other section registration schemes. The Visual C++ linker reports a duplicate symbol error for symbols marked IMAGE_COMDAT_SELECT_ASSOCIATIVE even if they would be discarded after handling the leader symbol. Fixes coverage-inline.cpp in check-profile after r372020.
  3. Reland "[docs][Bugpoint]Add notes about multiple crashes" Fix the warning. Bugpoint.rst:124:Mismatch: both interpreted text role prefix and reference suffix. Note that the line no here is wrong and misleading, the problem is in line 128, not 124.
  4. Create UsersManual section entitled 'Controlling Floating Point Behavior' Create a new section for documenting the floating point options. Move all the floating point options into this section, and add new entries for the floating point options that exist but weren't previously described in the UsersManual. Patch By: mibintc Differential Revision: https://reviews.llvm.org/D67517
  5. Fix buildbots. MSVC doesn't correctly capture constexpr in lambdas, and other builds warn if you do, others will error out if you do. Avoid lambdas.
  6. Ignore exception specifier mismatch when merging redeclarations Exception specifiers are now part of the function type in C++17. Normally, it is illegal to redeclare the same function or specialize a template with a different exception specifier, but under -fms-compatibility, we accept it with a warning. Without this change, the function types would not match due to the exception specifier, and clang would claim that the types were "incompatible". Now we emit the warning and merge the redeclaration as we would in C++14 and earlier. Fixes PR42842, which is about compiling _com_ptr_t in C++17. Based on a patch by Alex Fusco <alexfusco@google.com>! Differential Revision: https://reviews.llvm.org/D67590
  7. [AArch64][GlobalISel] Support -tailcallopt This adds support for `-tailcallopt` tail calls to CallLowering. This piggy-backs off the changes from D67577, since doing it without a bit of refactoring gets extremely ugly. Support is basically ported from AArch64ISelLowering. The main difference here is that tail calls in `-tailcallopt` change the ABI, so there's some extra bookkeeping for the stack. Show that we are correctly lowering these by updating tail-call.ll. Also show that we don't do anything strange in general by updating fastcc-reserved.ll, which passes `-tailcallopt`, but doesn't emit any tail calls. Differential Revision: https://reviews.llvm.org/D67580
Revision 372183 by epilk:
[Sema] Split of versions of -Wimplicit-{float,int}-conversion for Objective-C BOOL

Also, add a diagnostic group, -Wobjc-signed-char-bool, to control all these
related diagnostics.

rdar://51954400

Differential revision: https://reviews.llvm.org/D67559
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticGroups.td (diff)clang.src/include/clang/Basic/DiagnosticGroups.td
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (diff)clang.src/include/clang/Basic/DiagnosticSemaKinds.td
The file was modified/cfe/trunk/lib/AST/Expr.cpp (diff)clang.src/lib/AST/Expr.cpp
The file was modified/cfe/trunk/lib/Sema/SemaChecking.cpp (diff)clang.src/lib/Sema/SemaChecking.cpp
The file was modified/cfe/trunk/test/Sema/objc-bool-constant-conversion-fixit.m (diff)clang.src/test/Sema/objc-bool-constant-conversion-fixit.m
The file was added/cfe/trunk/test/SemaObjC/signed-char-bool-conversion.mclang.src/test/SemaObjC/signed-char-bool-conversion.m
Revision 372182 by rnk:
[PGO] Don't use comdat groups for counters & data on COFF

For COFF, a comdat group is really a symbol marked
IMAGE_COMDAT_SELECT_ANY and zero or more other symbols marked
IMAGE_COMDAT_SELECT_ASSOCIATIVE. Typically the associative symbols in
the group are not external and are not referenced by other TUs, they are
things like debug info, C++ dynamic initializers, or other section
registration schemes. The Visual C++ linker reports a duplicate symbol
error for symbols marked IMAGE_COMDAT_SELECT_ASSOCIATIVE even if they
would be discarded after handling the leader symbol.

Fixes coverage-inline.cpp in check-profile after r372020.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Instrumentation/InstrProfiling.cpp (diff)llvm.src/lib/Transforms/Instrumentation/InstrProfiling.cpp
The file was modified/llvm/trunk/test/Instrumentation/InstrProfiling/PR23499.ll (diff)llvm.src/test/Instrumentation/InstrProfiling/PR23499.ll
The file was modified/llvm/trunk/test/Instrumentation/InstrProfiling/comdat.ll (diff)llvm.src/test/Instrumentation/InstrProfiling/comdat.ll
The file was modified/llvm/trunk/test/Instrumentation/InstrProfiling/linkage.ll (diff)llvm.src/test/Instrumentation/InstrProfiling/linkage.ll
Revision 372181 by jsji:
Reland "[docs][Bugpoint]Add notes about multiple crashes"

Fix the warning.
Bugpoint.rst:124:Mismatch: both interpreted text role prefix and
reference suffix.

Note that the line no here is wrong and misleading,
the problem is in line 128, not 124.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/Bugpoint.rst (diff)llvm.src/docs/Bugpoint.rst
Revision 372180 by erichkeane:
Create UsersManual section entitled 'Controlling Floating Point
Behavior'

Create a new section for documenting the floating point options. Move
all the floating point options into this section, and add new entries
for the floating point options that exist but weren't previously
  described in the UsersManual.

Patch By: mibintc
Differential Revision: https://reviews.llvm.org/D67517
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/docs/UsersManual.rst (diff)clang.src/docs/UsersManual.rst
Revision 372179 by gclayton:
Fix buildbots.

MSVC doesn't correctly capture constexpr in lambdas, and other builds warn if you do, others will error out if you do. Avoid lambdas.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/unittests/DebugInfo/GSYM/GSYMTest.cpp (diff)llvm.src/unittests/DebugInfo/GSYM/GSYMTest.cpp
Revision 372178 by rnk:
Ignore exception specifier mismatch when merging redeclarations

Exception specifiers are now part of the function type in C++17.
Normally, it is illegal to redeclare the same function or specialize a
template with a different exception specifier, but under
-fms-compatibility, we accept it with a warning. Without this change,
the function types would not match due to the exception specifier, and
clang would claim that the types were "incompatible". Now we emit the
warning and merge the redeclaration as we would in C++14 and earlier.

Fixes PR42842, which is about compiling _com_ptr_t in C++17.

Based on a patch by Alex Fusco <alexfusco@google.com>!

Differential Revision: https://reviews.llvm.org/D67590
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/SemaDecl.cpp (diff)clang.src/lib/Sema/SemaDecl.cpp
The file was modified/cfe/trunk/test/SemaCXX/ms-exception-spec.cpp (diff)clang.src/test/SemaCXX/ms-exception-spec.cpp
Revision 372177 by paquette:
[AArch64][GlobalISel] Support -tailcallopt

This adds support for `-tailcallopt` tail calls to CallLowering. This
piggy-backs off the changes from D67577, since doing it without a bit of
refactoring gets extremely ugly.

Support is basically ported from AArch64ISelLowering. The main difference here
is that tail calls in `-tailcallopt` change the ABI, so there's some extra
bookkeeping for the stack.

Show that we are correctly lowering these by updating tail-call.ll.

Also show that we don't do anything strange in general by updating
fastcc-reserved.ll, which passes `-tailcallopt`, but doesn't emit any tail
calls.

Differential Revision: https://reviews.llvm.org/D67580
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64CallLowering.cpp (diff)llvm.src/lib/Target/AArch64/AArch64CallLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/AArch64/fastcc-reserved.ll (diff)llvm.src/test/CodeGen/AArch64/fastcc-reserved.ll
The file was modified/llvm/trunk/test/CodeGen/AArch64/tail-call.ll (diff)llvm.src/test/CodeGen/AArch64/tail-call.ll