HomePhabricator

Add ability to turn off -fpch-instantiate-templates in clang-cl
e84852be644dUnpublished

Authored by shivanshu3 on Oct 6 2020, 7:12 AM.

Unpublished Commit ยท Learn More

Not On Permanent Ref: This commit is not an ancestor of any permanent ref.

Description

Add ability to turn off -fpch-instantiate-templates in clang-cl

A lot of our code building with clang-cl.exe using Clang 11 was failing with
the following 2 type of errors:

  1. explicit specialization of 'foo' after instantiation
  2. no matching function for call to 'bar'

Note that we also use -fdelayed-template-parsing in our builds.

I tried pretty hard to get a small repro for these failures, but couldn't. So
there is some subtle edge case in the -fpch-instantiate-templates feature
introduced by this change: https://reviews.llvm.org/D69585

When I tried turning this off using -fno-pch-instantiate-templates, builds
would silently fail with the same error without any indication that
-fno-pch-instantiate-templates was being ignored by the compiler. Then I
realized this "no" option wasn't actually working when I ran Clang under a
debugger.

Differential revision: https://reviews.llvm.org/D88680

(cherry picked from commit 66e4f07198761bbb4dcd55235024c1081ed15c75)

Details

Committed
hansOct 7 2020, 3:03 AM
Parents
rG121babae56e9: [SelectionDAG] Don't remove unused negated constant immediately
Branches
Unknown
Tags
Unknown

Event Timeline