http://llvm.org/bugs/show_bug.cgi?id=18275
Bug ID: 18275
Summary: Incorrect const qualifier behavior in definition
Product: clang
Version: trunk
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P
Component: C++
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected], [email protected]
Classification: Unclassified
The declaration of A::f has a const. The definition doesn't.
template <typename T>
struct A
{
void f(const int);
};
template <typename T>
void A<T>::f(int x)
{
x = 0;
}
void f()
{
A<float> a;
a.f(0);
}
Clang produces an error:
test.cpp:10:7: error: read-only variable is not assignable
x = 0;
~ ^
test.cpp:26:7: note: in instantiation of member function 'A<float>::f'
requested here
a.f(0);
^
This doesn't seem to be a correct behavior. It only happens for template
classes. In exact the same situation with a regular class everything compiles
well.
struct B
{
void f(const int);
};
void B::f(int x)
{
x = 0;
}
void f()
{
B b;
b.f(0);
}
GCC compiles both examples without an error.
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs