[LLVMbugs] [Bug 19994] New: No error for use of local const variable in local class with -std=c++03 -pedantic-errors
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Tue Jun 10 08:12:33 PDT 2014
http://llvm.org/bugs/show_bug.cgi?id=19994
Bug ID: 19994
Summary: No error for use of local const variable in local
class with -std=c++03 -pedantic-errors
Product: clang
Version: trunk
Hardware: Other
OS: Linux
Status: NEW
Severity: normal
Priority: P
Component: C++
Assignee: unassignedclangbugs at nondot.org
Reporter: hstong at ca.ibm.com
CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
Classification: Unclassified
Clang should probably produce a diagnostic for the source code below under
C++03 modes.
C++03 subclause 9.8 [class.local] paragraph 1:
Declarations in a local class can use only type names, static variables, extern
variables and functions, and enumerators from the enclosing scope.
C++03 subclause 3.2 [basic.def.odr] paragraph 2:
An object or non-overloaded function is used if its name appears in a
potentially-evaluated expression.
The expression in the return statement in X::f() is a potentially-evaluated
expression.
### SOURCE:> cat localVarUse.cc
int foo() {
const int n = 42;
struct X {
int f() { return n; }
} x;
return x.f();
}
Return: 0x00:0
### COMPILER INVOCATION AND OUTPUT:> clang++ localVarUse.cc -std=c++03
-pedantic-errors -Wall -Wextra -c
Return: 0x00:0
### EXPECTED:
localVarUse.cc:4:24: error: reference to local variable 'n' declared in
enclosing function 'foo'
int f() { return n; }
^
localVarUse.cc:2:14: note: 'n' declared here
const int n = 42;
^
1 error generated.
Return: 0x01:1
### VERSION INFO:> clang++ -v
clang version 3.5.0
Target: powerpc64-unknown-linux-gnu
Thread model: posix
Found candidate GCC installation: /usr/lib/gcc/ppc64-redhat-linux/4.4.4
Found candidate GCC installation: /usr/lib/gcc/ppc64-redhat-linux/4.4.6
Selected GCC installation: /usr/lib/gcc/ppc64-redhat-linux/4.4.6
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
Return: 0x00:0
--
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/20140610/bdcf45a7/attachment.html>
More information about the llvm-bugs
mailing list