<html>
    <head>
      <base href="https://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 --- - Segmentation fault"
   href="https://llvm.org/bugs/show_bug.cgi?id=28561">28561</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Segmentation fault
          </td>
        </tr>

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

        <tr>
          <th>Version</th>
          <td>3.8
          </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>C++14
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>pipping@exherbo.org
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>This was originally meant as a reduction of <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - Assertion 'Pack expansion without unexpanded packs?' failed"
   href="show_bug.cgi?id=28087">bug #28087</a>. Instead of an assertion
failure, I now get a segfault (with 3.8.1). The (invalid!) code:

<<SNIP
template <class K, int ROWS, int COLS> class FieldMatrix;
template <class GridType, class TrialLocalFE, class AnsatzLocalFE, typename T>
class LocalOperatorAssembler {
}
template <class GridType, class TrialLocalFE, class AnsatzLocalFE,
          class Contraction, class MB = Dune::FieldMatrix<double, 1, 1>,
class SecondOrderOperatorAssembler
    : public LocalOperatorAssembler<GridType, TrialLocalFE, AnsatzLocalFE, MB>
{
  SecondOrderOperatorAssembler(const Contraction &contraction, bool
isSymmetric,
                               FunctionTypes... functions)
      : contraction_(contraction), isSymmetric_(isSymmetric),
        coefficientQuadKey_(coefficientQuadKey), functions_(functions...) {
  }
    double const nu = 0.23;
<<SNAP

and the output:

secondorderassemblertest-57319f.ii:4:2: error: expected ';' after class
}
 ^
 ;
secondorderassemblertest-57319f.ii:6:41: error: use of undeclared identifier
'Dune'
          class Contraction, class MB = Dune::FieldMatrix<double, 1, 1>,
                                        ^
secondorderassemblertest-57319f.ii:10:32: error: unknown type name
'FunctionTypes'
                               FunctionTypes... functions)
                               ^
secondorderassemblertest-57319f.ii:10:45: error: type 'int' of function
parameter pack does not contain any unexpanded parameter packs
                               FunctionTypes... functions)
                               ~~~~~~~~~~~~~^~~~~~~~~~~~~
secondorderassemblertest-57319f.ii:14:28: error: expected '}'
    double const nu = 0.23;
                           ^
secondorderassemblertest-57319f.ii:8:80: note: to match this '{'
    : public LocalOperatorAssembler<GridType, TrialLocalFE, AnsatzLocalFE, MB>
{
                                                                              
^
secondorderassemblertest-57319f.ii:11:9: error: member initializer
'contraction_' does not name a non-static data member or base class
      : contraction_(contraction), isSymmetric_(isSymmetric),
        ^~~~~~~~~~~~~~~~~~~~~~~~~
secondorderassemblertest-57319f.ii:11:36: error: member initializer
'isSymmetric_' does not name a non-static data member or base class
      : contraction_(contraction), isSymmetric_(isSymmetric),
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~
secondorderassemblertest-57319f.ii:12:29: error: use of undeclared identifier
'coefficientQuadKey'
        coefficientQuadKey_(coefficientQuadKey), functions_(functions...) {
                            ^
#0 0x0000000001c03725 llvm::sys::PrintStackTrace(llvm::raw_ostream&)
(PATH/bin/clang-3.8+0x1c03725)
#1 0x0000000001c016e6 llvm::sys::RunSignalHandlers()
(PATH/bin/clang-3.8+0x1c016e6)
#2 0x0000000001c01904 SignalHandler(int) (PATH/bin/clang-3.8+0x1c01904)
#3 0x00007fe9bd4458d0 __restore_rt
(/lib/x86_64-linux-gnu/libpthread.so.0+0xf8d0)
#4 0x0000000002fbd1a0 clang::TagType::getDecl() const
(PATH/bin/clang-3.8+0x2fbd1a0)
#5 0x00000000028320c0
clang::Sema::MarkBaseAndMemberDestructorsReferenced(clang::SourceLocation,
clang::CXXRecordDecl*) (PATH/bin/clang-3.8+0x28320c0)
#6 0x0000000002842cba
clang::Sema::SetCtorInitializers(clang::CXXConstructorDecl*, bool,
llvm::ArrayRef<clang::CXXCtorInitializer*>) (PATH/bin/clang-3.8+0x2842cba)
#7 0x00000000028438e9 clang::Sema::ActOnMemInitializers(clang::Decl*,
clang::SourceLocation, llvm::ArrayRef<clang::CXXCtorInitializer*>, bool)
(PATH/bin/clang-3.8+0x28438e9)
#8 0x00000000025879dc clang::Parser::ParseConstructorInitializer(clang::Decl*)
(PATH/bin/clang-3.8+0x25879dc)
#9 0x0000000002561b50
clang::Parser::ParseLexedMethodDef(clang::Parser::LexedMethod&)
(PATH/bin/clang-3.8+0x2561b50)
#10 0x000000000256171e
clang::Parser::ParseLexedMethodDefs(clang::Parser::ParsingClass&)
(PATH/bin/clang-3.8+0x256171e)
#11 0x00000000025906a9
clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation,
clang::SourceLocation, clang::Parser::ParsedAttributesWithRange&, unsigned int,
clang::Decl*) (PATH/bin/clang-3.8+0x25906a9)
#12 0x0000000002591389
clang::Parser::ParseClassSpecifier(clang::tok::TokenKind,
clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo
const&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext,
clang::Parser::ParsedAttributesWithRange&) (PATH/bin/clang-3.8+0x2591389)
#13 0x0000000002574fb8
clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&,
clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier,
clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*)
(PATH/bin/clang-3.8+0x2574fb8)
#14 0x00000000025ddf61 clang::Parser::ParseNonTypeTemplateParameter(unsigned
int, unsigned int) (PATH/bin/clang-3.8+0x25ddf61)
#15 0x00000000025e0045 clang::Parser::ParseTemplateParameterList(unsigned int,
llvm::SmallVectorImpl<clang::Decl*>&) (PATH/bin/clang-3.8+0x25e0045)
#16 0x00000000025e022c clang::Parser::ParseTemplateParameters(unsigned int,
llvm::SmallVectorImpl<clang::Decl*>&, clang::SourceLocation&,
clang::SourceLocation&) (PATH/bin/clang-3.8+0x25e022c)
#17 0x00000000025e1ffd
clang::Parser::ParseTemplateDeclarationOrSpecialization(unsigned int,
clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*)
(PATH/bin/clang-3.8+0x25e1ffd)
#18 0x00000000025e243a
clang::Parser::ParseDeclarationStartingWithTemplate(unsigned int,
clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*)
(PATH/bin/clang-3.8+0x25e243a)
#19 0x000000000257eb74 clang::Parser::ParseDeclaration(unsigned int,
clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&)
(PATH/bin/clang-3.8+0x257eb74)
#20 0x000000000255ee02
clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*) (PATH/bin/clang-3.8+0x255ee02)
#21 0x000000000255f580
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&)
(PATH/bin/clang-3.8+0x255f580)
#22 0x000000000255764b clang::ParseAST(clang::Sema&, bool, bool)
(PATH/bin/clang-3.8+0x255764b)
#23 0x000000000227204b clang::CodeGenAction::ExecuteAction()
(PATH/bin/clang-3.8+0x227204b)
#24 0x0000000001fd97c6 clang::FrontendAction::Execute()
(PATH/bin/clang-3.8+0x1fd97c6)
#25 0x0000000001fb2eb6
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
(PATH/bin/clang-3.8+0x1fb2eb6)
#26 0x000000000205fe53
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
(PATH/bin/clang-3.8+0x205fe53)
#27 0x0000000000aa40b8 cc1_main(llvm::ArrayRef<char const*>, char const*,
void*) (PATH/bin/clang-3.8+0xaa40b8)
#28 0x0000000000a634a7 main (PATH/bin/clang-3.8+0xa634a7)
#29 0x00007fe9bc66fb45 __libc_start_main
/build/glibc-uPj9cH/glibc-2.19/csu/libc-start.c:321:0
#30 0x0000000000aa02b4 _start (PATH/bin/clang-3.8+0xaa02b4)
Stack dump:
0.    Program arguments: PATH/bin/clang-3.8 -cc1 -triple
x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -main-file-name
secondorderassemblertest-57319f.ii -mrelocation-model static -mthread-model
posix -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases
-munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info
-debugger-tuning=gdb -resource-dir PATH/bin/../lib/clang/3.8.1 -std=c++14
-fdeprecated-macro -fdebug-compilation-dir /home/mi/pipping -ferror-limit 19
-fmessage-length 181 -fobjc-runtime=gcc -fcxx-exceptions -fexceptions
-fdiagnostics-show-option -fcolor-diagnostics -o
/tmp/secondorderassemblertest-57319f-d9cdf7.o -x c++-cpp-output
secondorderassemblertest-57319f.ii 
1.    secondorderassemblertest-57319f.ii:12:75: current parser token '{'
2.    secondorderassemblertest-57319f.ii:7:1: parsing struct/union/class body
'SecondOrderOperatorAssembler'
clang-3.8: error: unable to execute command: Segmentation fault
clang-3.8: error: clang frontend command failed due to signal (use -v to see
invocation)
clang version 3.8.1 (tags/RELEASE_381/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: PATH/bin
clang-3.8: note: diagnostic msg: PLEASE submit a bug report to
<a href="http://llvm.org/bugs/">http://llvm.org/bugs/</a> and include the crash backtrace, preprocessed source, and
associated run script.
clang-3.8: note: diagnostic msg: Error generating preprocessed source(s) - no
preprocessable inputs.</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>