https://llvm.org/bugs/show_bug.cgi?id=28667
Bug ID: 28667 Summary: Invalid subexpression in sizeof fails to remove candidate Product: clang Version: trunk Hardware: All OS: All Status: NEW Keywords: accepts-invalid, compile-fail, miscompilation Severity: normal Priority: P Component: C++11 Assignee: unassignedclangb...@nondot.org Reporter: hst...@ca.ibm.com CC: dgre...@apple.com, llvm-bugs@lists.llvm.org Classification: Unclassified In the following case, Clang fails to detect an error in the subexpression of the sizeof during substitution of the template arguments into the signature of the function in question. Online compiler: http://melpon.org/wandbox/permlink/by24bjnKIvVPecSH ### SOURCE (<stdin>): struct A { A(int); }; template <typename T> void foo(void *, char (*)[sizeof(0, A(T()))]) { } template <typename T> void foo(int, ...); int main(void) { foo<decltype(nullptr)>(0, 0); } ### COMPILER INVOCATION: clang++ -cc1 -fsyntax-only -x c++ -std=c++11 - ### EXPECTED OUTPUT: (clean compile) ### ACTUAL OUTPUT: <stdin>:6:18: error: call to 'foo' is ambiguous int main(void) { foo<decltype(nullptr)>(0, 0); } ^~~~~~~~~~~~~~~~~~~~~~ <stdin>:3:28: note: candidate function [with T = nullptr_t] template <typename T> void foo(void *, char (*)[sizeof(0, A(T()))]) { } ^ <stdin>:4:28: note: candidate function [with T = nullptr_t] template <typename T> void foo(int, ...); ^ 1 error generated. ### COMPILER VERSION INFO (clang++ -v): clang version 4.0.0 (trunk 276290) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /usr/local/llvm-head/bin Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.6 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.6.3 Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.6 Candidate multilib: .;@m64 Candidate multilib: 32;@m32 Selected multilib: .;@m64 -- You are receiving this mail because: You are on the CC list for the bug.
_______________________________________________ llvm-bugs mailing list llvm-bugs@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs