Author: rsmith Date: Wed Apr 19 16:15:45 2017 New Revision: 300762 URL: http://llvm.org/viewvc/llvm-project?rev=300762&view=rev Log: Fix assertion failure in codegen on non-template deduction guide.
Added: cfe/trunk/test/CodeGenCXX/cxx1z-class-deduction.cpp Modified: cfe/trunk/lib/CodeGen/CodeGenModule.cpp Modified: cfe/trunk/lib/CodeGen/CodeGenModule.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenModule.cpp?rev=300762&r1=300761&r2=300762&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CodeGenModule.cpp (original) +++ cfe/trunk/lib/CodeGen/CodeGenModule.cpp Wed Apr 19 16:15:45 2017 @@ -3794,6 +3794,10 @@ void CodeGenModule::EmitTopLevelDecl(Dec AddDeferredUnusedCoverageMapping(D); break; + case Decl::CXXDeductionGuide: + // Function-like, but does not result in code emission. + break; + case Decl::Var: case Decl::Decomposition: // Skip variable templates Added: cfe/trunk/test/CodeGenCXX/cxx1z-class-deduction.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/cxx1z-class-deduction.cpp?rev=300762&view=auto ============================================================================== --- cfe/trunk/test/CodeGenCXX/cxx1z-class-deduction.cpp (added) +++ cfe/trunk/test/CodeGenCXX/cxx1z-class-deduction.cpp Wed Apr 19 16:15:45 2017 @@ -0,0 +1,21 @@ +// RUN: %clang_cc1 -std=c++1z %s -emit-llvm -o - | FileCheck %s + +template<typename T> struct A { + A(T = 0); + A(void*); +}; + +template<typename T> A(T*) -> A<long>; +A() -> A<int>; + +// CHECK-LABEL: @_Z1fPi( +void f(int *p) { + // CHECK: @_ZN1AIiEC + A a{}; + + // CHECK: @_ZN1AIlEC + A b = p; + + // CHECK: @_ZN1AIxEC + A c = 123LL; +} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits