]> granicus.if.org Git - clang/commit
[modules] Defer merging deduced return types.
authorRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 3 Aug 2018 01:00:01 +0000 (01:00 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 3 Aug 2018 01:00:01 +0000 (01:00 +0000)
commit22d36eedd43d53bfc3a55acca8b2a54578a993ed
treeb9ac2e48930a0a7a668cde222aca0f5880dc9cf8
parentbdd41df411fb9cd693bd21520c1e37ee4f3b71bc
[modules] Defer merging deduced return types.

We can't read a deduced return type until we are sure that the types referred
to by it are not in the middle of being loaded. So defer all reading of such
deduced return types until the end of the recursive deserialization step.

Also, when we load a function type that has a deduced return type, update all
other redeclarations of the function to have that deduced return type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@338798 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Serialization/ASTReader.h
lib/Serialization/ASTReader.cpp
lib/Serialization/ASTReaderDecl.cpp
test/Modules/merge-deduced-return.cpp
test/Modules/merge-lambdas.cpp