We might have an instantiation around, and the exception spec type
is only available if we have deserialized it. Force deserialization
which will update the EST. We certainly know that we will not
CodeGen and uninstantiated decl.
This patch fixes an assertion in codegen:
"CGCleanup.h:584: void clang::CodeGen::EHScopeStack::popTerminate(): Assertion `!empty() && "popping exception stack when not empty"' failed.
Aborted (core dumped)"
It is minimally reproducible by:
cat repro.C
template <typename T>
struct Template {
Template() {}
private:
T m[1];
};
std::vector<Template<int> > use;
//std::vector<float>f;
template class Template<std::vector<float> >;
void repro() {}
on fedora-30 with build config:
cmake -DCMAKE_BUILD_TYPE="Debug" -DCMAKE_CXX_FLAGS="-UNDEBUG"
-DCMAKE_CXX_STANDARD="14" -DCMAKE_INSTALL_PREFIX="../install"
-DLLVM_BUILD_TYPE="Debug" -Dalien="Off" -Darrow="Off" -Dasimage="On"
-Dbuiltin_afterimage="On" -Dbuiltin_cfitsio="Off" -Dbuiltin_davix="On"
-Dbuiltin_fftw3="Off" -Dbuiltin_freetype="Off" -Dbuiltin_ftgl="On"
-Dbuiltin_gl2ps="On" -Dbuiltin_glew="On" -Dbuiltin_gsl="Off" -Dbuiltin_lz4="On"
-Dbuiltin_lzma="On" -Dbuiltin_openssl="Off" -Dbuiltin_pcre="On"
-Dbuiltin_tbb="On" -Dbuiltin_unuran="On" -Dbuiltin_vc="On" -Dbuiltin_vdt="On"
-Dbuiltin_veccore="On" -Dbuiltin_xrootd="On" -Dbuiltin_xxhash="On"
-Dbuiltin_zlib="On" -Dbuiltin_zstd="Off" -Dccache="ON" -Dcefweb="Off"
-Dclad="On" -Dcocoa="Off" -Dcuda="Off" -Dcudnn="Off" -Ddataframe="On"
-Ddavix="On" -Ddcache="Off" -Ddev="Off" -Dfail-on-missing="On" -Dfcgi="Off"
-Dfftw3="On" -Dfitsio="On" -Dfortran="On" -Dgdml="On" -Dgfal="Off"
-Dgsl_shared="Off" -Dgviz="Off" -Dhttp="On" -Dimt="On" -Dlibcxx="Off"
-Dmathmore="On" -Dmemstat="Off" -Dminuit2="On" -Dmlp="On" -Dmonalisa="Off"
-Dmpi="Off" -Dmysql="On" -Dodbc="Off" -Dopengl="On" -Doracle="Off" -Dpgsql="On"
-Dpyroot="On" -Dpythia6="Off" -Dpythia6_nolink="Off" -Dpythia8="On"
-Dqt5web="Off" -Dr="Off" -Droofit="On" -Droottest="ON" -Dshadowpw="On"
-Dsoversion="On" -Dspectrum="On" -Dsqlite="On" -Dssl="On" -Dtesting="ON"
-Dtmva="On" -Dtmva-cpu="On" -Dtmva-gpu="Off" -Dtmva-pymva="On" -Dtmva-rmva="Off"
-Dunuran="On" -Dvc="On" -Dvdt="On" -Dveccore="On" -Dvecgeom="Off" -Dvmc="On"
-Dwin_broken_tests="Off" -Dx11="On" -Dxml="On" -Dxrootd="On"
/build/workspace/root-pullrequests-build-vvasilev/root -G Ninja