[llvm-bugs] [Bug 42212] New: Clang accepts invalid code
via llvm-bugs
llvm-bugs at lists.llvm.org
Sun Jun 9 16:18:53 PDT 2019
https://bugs.llvm.org/show_bug.cgi?id=42212
Bug ID: 42212
Summary: Clang accepts invalid code
Product: clang
Version: trunk
Hardware: PC
OS: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: C++
Assignee: unassignedclangbugs at nondot.org
Reporter: zhonghao at pku.org.cn
CC: blitzrakete at gmail.com, dgregor at apple.com,
erik.pilkington at gmail.com, llvm-bugs at lists.llvm.org,
richard-llvm at metafoo.co.uk
My clang is 9.0.0, and the code is:
void f() {
union {
typeof
(
(
{
unsigned long __ptr;
(int *)(0);
}
)
)
__val;
};
}
clang accepts the code, but icc, gcc and msvc all reject it.
msvc:
<source>(5): error C2059: syntax error: '('
<source>(6): error C2143: syntax error: missing ')' before '{'
<source>(6): error C4430: missing type specifier - int assumed. Note: C++ does
not support default-int
<source>(9): warning C4183: 'typeof': missing return type; assumed to be a
member function returning 'int'
<source>(10): error C2059: syntax error: ')'
<source>(11): error C2059: syntax error: ')'
<source>(12): error C2238: unexpected token(s) preceding ';'
<source>(13): error C2627: 'typeof': member function not allowed in anonymous
union
Compiler returned: 2
icc:
<source>(7): internal error: bad pointer
unsigned long __ptr;
^
compilation aborted for <source> (code 4)
Compiler returned: 4
gcc:
x86-64 gcc (trunk) (Editor #1, Compiler #1) C++
x86-64 gcc (trunk)
1
<Compilation failed>
No Results
x86-64 gcc (trunk)
- cached
#1 with x86-64 gcc (trunk)
<source>: In function 'void f()':
<source>:5:2: error: statement-expressions are not allowed outside functions
nor in template-argument lists
5 | (
| ^
Compiler returned: 1
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20190609/61ebbe2e/attachment-0001.html>
More information about the llvm-bugs
mailing list