<html>
    <head>
      <base href="http://llvm.org/bugs/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - 'merged an unknown kind of redeclarable template'"
   href="http://llvm.org/bugs/show_bug.cgi?id=20475">20475</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>'merged an unknown kind of redeclarable template'
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>clang
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Modules
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedclangbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>biancacristinacristescu@gmail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>dgregor@apple.com, llvmbugs@cs.uiuc.edu
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>The files for the reproducer are:
$ cat module_Unuran.map 
module libMathCore {
  header "Math/IParamFunction.h"
  export *
}

module libUnuran {
  header "TUnuran.h"
  header "TUnuranMultiContDist.h"
  export *
}
--------------------------------------------------------------------------------
$ cat Math/IParamFunction.h
namespace std 
{
  template<typename...>
    struct __and_;

  // Primary template.
  /// Define a member typedef @c type only if a boolean constant is true.
  template<bool, typename _Tp = void>
    struct enable_if 
    { };

  template<typename... _Cond>
    using _Require = typename enable_if<__and_<_Cond...>::value>::type;

} // namespace std
-------------------------------------------------------------------------------
$ cat TUnuran.h 
namespace std 
{
  template<typename...>
    struct __and_;

  // Primary template.
  /// Define a member typedef @c type only if a boolean constant is true.
  template<bool, typename _Tp = void>
    struct enable_if 
    { };

  template<typename... _Cond>
    using _Require = typename enable_if<__and_<_Cond...>::value>::type;

} // namespace std
-------------------------------------------------------------------------------
$ cat TUnuranMultiContDist.h 
#include "Math/IParamFunction.h"
-------------------------------------------------------------------------------

The command to reproduce is:
'/home/cristina/llvm-proj/inst-deb/bin/clang -cc1 -triple
x86_64-unknown-linux-gnu -E -disable-free -mrelocation-model static
-mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases
-munwind-tables -fuse-init-array -target-cpu x86-64 -target-linker-version
2.23.52.20130913 -v -resource-dir
/home/cristina/llvm-proj/inst-deb/bin/../lib/clang/3.5.0 -internal-isystem
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8 -internal-isystem
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/x86_64-linux-gnu
-internal-isystem
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/backward
-internal-isystem
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/x86_64-linux-gnu/c++/4.8
-internal-isystem /usr/local/include -internal-isystem
/home/cristina/llvm-proj/inst-deb/bin/../lib/clang/3.5.0/include
-internal-externc-isystem /usr/include/x86_64-linux-gnu
-internal-externc-isystem /include -internal-externc-isystem /usr/include
-std=c++11 -fdeprecated-macro -fdebug-compilation-dir
/home/cristina/llvm-sources/clang-tiered-pcm-reproducer -ferror-limit 19
-fmessage-length 0 -mstackrealign -fobjc-runtime=gcc -fcxx-exceptions
-fexceptions -fdiagnostics-show-option -x c++ -fcolor-diagnostics -x c++
-std=c++11 -I/home/cristina/root/objOptimizations/include
-Imath/unuran/src/unuran-1.8.0-root/src -fmodules -fno-modules-global-index
-fdisable-module-hash -fmodule-maps -emit-module
/home/cristina/root/objOptimizations/include/module_Unuran.map
-fmodules-cache-path=/home/cristina/llvm-sources/clang-tiered-pcm-reproducer/pcm
-fmodule-name=libUnuran'

The stacktrace is:
End of search list.
merged an unknown kind of redeclarable template
UNREACHABLE executed at
/home/cristina/llvm-proj/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp:2046!
0  clang           0x0000000003e2b74e llvm::sys::PrintStackTrace(_IO_FILE*) +
46
1  clang           0x0000000003e2ba1b
2  clang           0x0000000003e2ceda
3  libpthread.so.0 0x00007f6acd728bb0
4  libc.so.6       0x00007f6acc965f77 gsignal + 55
5  libc.so.6       0x00007f6acc9695e8 abort + 328
6  clang           0x0000000003e0e7d6
7  clang           0x0000000000c024be
clang::ASTDeclReader::mergeTemplatePattern(clang::RedeclarableTemplateDecl*,
clang::RedeclarableTemplateDecl*, unsigned int) + 590
8  clang           0x0000000000c18101 void
clang::ASTDeclReader::mergeRedeclarable<clang::RedeclarableTemplateDecl>(clang::Redeclarable<clang::RedeclarableTemplateDecl>*,
clang::RedeclarableTemplateDecl*, clang::ASTDeclReader::RedeclarableResult&,
unsigned int) + 353
9  clang           0x0000000000bff353 void
clang::ASTDeclReader::mergeRedeclarable<clang::RedeclarableTemplateDecl>(clang::Redeclarable<clang::RedeclarableTemplateDecl>*,
clang::ASTDeclReader::RedeclarableResult&, unsigned int) + 227
10 clang           0x0000000000bfef35
clang::ASTDeclReader::VisitRedeclarableTemplateDecl(clang::RedeclarableTemplateDecl*)
+ 629
11 clang           0x0000000000c01f3c
clang::ASTDeclReader::VisitTypeAliasTemplateDecl(clang::TypeAliasTemplateDecl*)
+ 44
12 clang           0x0000000000bdf871
13 clang           0x0000000000bdf40a clang::ASTDeclReader::Visit(clang::Decl*)
+ 42
14 clang           0x0000000000c0c7b8 clang::ASTReader::ReadDeclRecord(unsigned
int) + 3128
15 clang           0x0000000000b7cf08 clang::ASTReader::GetDecl(unsigned int) +
184
16 clang           0x0000000000bcc800
17 clang           0x0000000000bd2ac3
18 clang           0x0000000000b8c2c6
19 clang           0x0000000000ceae6e
clang::serialization::ModuleManager::visit(bool
(*)(clang::serialization::ModuleFile&, void*), void*,
llvm::SmallPtrSet<clang::serialization::ModuleFile*, 4u>*) + 1582
20 clang           0x0000000000b8b79c
clang::ASTReader::FindExternalVisibleDeclsByName(clang::DeclContext const*,
clang::DeclarationName) + 1020
21 clang           0x0000000000b8c427 non-virtual thunk to
clang::ASTReader::FindExternalVisibleDeclsByName(clang::DeclContext const*,
clang::DeclarationName) + 55
22 clang           0x000000000237d87b
clang::DeclContext::lookup(clang::DeclarationName) + 555
23 clang           0x0000000000c68243
24 clang           0x0000000000c67e1d
clang::ASTWriter::GenerateNameLookupTable(clang::DeclContext const*,
llvm::SmallVectorImpl<char>&) + 397
25 clang           0x0000000000c6880a
clang::ASTWriter::WriteDeclContextVisibleBlock(clang::ASTContext&,
clang::DeclContext*) + 298
26 clang           0x0000000000cc1925
clang::ASTWriter::WriteDecl(clang::ASTContext&, clang::Decl*) + 501
27 clang           0x0000000000c7ae16
clang::ASTWriter::WriteASTCore(clang::Sema&, llvm::StringRef, std::string
const&, clang::Module*) + 8262
28 clang           0x0000000000c78da2 clang::ASTWriter::WriteAST(clang::Sema&,
std::string const&, clang::Module*, llvm::StringRef, bool) + 242
29 clang           0x0000000000cde04f
clang::PCHGenerator::HandleTranslationUnit(clang::ASTContext&) + 287
30 clang           0x0000000000fe9d19 clang::ParseAST(clang::Sema&, bool, bool)
+ 793
31 clang           0x00000000009b9c2e clang::ASTFrontendAction::ExecuteAction()
+ 334
32 clang           0x00000000009b9488 clang::FrontendAction::Execute() + 120
33 clang           0x0000000000978ae1
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 785
34 clang           0x000000000092f34e
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1038
35 clang           0x0000000000917fae cc1_main(char const**, char const**, char
const*, void*) + 702
36 clang           0x0000000000927a17 main + 807
37 libc.so.6       0x00007f6acc950de5 __libc_start_main + 245
38 clang           0x0000000000917c24
Stack dump:
0.    Program arguments: /home/cristina/llvm-proj/inst-deb/bin/clang -cc1
-triple x86_64-unknown-linux-gnu -E -disable-free -mrelocation-model static
-mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases
-munwind-tables -fuse-init-array -target-cpu x86-64 -target-linker-version
2.23.52.20130913 -v -resource-dir
/home/cristina/llvm-proj/inst-deb/bin/../lib/clang/3.5.0 -internal-isystem
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8 -internal-isystem
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/x86_64-linux-gnu
-internal-isystem
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/backward
-internal-isystem
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/x86_64-linux-gnu/c++/4.8
-internal-isystem /usr/local/include -internal-isystem
/home/cristina/llvm-proj/inst-deb/bin/../lib/clang/3.5.0/include
-internal-externc-isystem /usr/include/x86_64-linux-gnu
-internal-externc-isystem /include -internal-externc-isystem /usr/include
-std=c++11 -fdeprecated-macro -fdebug-compilation-dir
/home/cristina/llvm-sources/clang-tiered-pcm-reproducer -ferror-limit 19
-fmessage-length 0 -mstackrealign -fobjc-runtime=gcc -fcxx-exceptions
-fexceptions -fdiagnostics-show-option -x c++ -fcolor-diagnostics -x c++
-std=c++11 -I/home/cristina/root/objOptimizations/include
-Imath/unuran/src/unuran-1.8.0-root/src -fmodules -fno-modules-global-index
-fdisable-module-hash -fmodule-maps -emit-module
/home/cristina/root/objOptimizations/include/module_Unuran.map
-fmodules-cache-path=/home/cristina/llvm-sources/clang-tiered-pcm-reproducer/pcm
-fmodule-name=libUnuran 
1.    <eof> parser at end of file</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>