Created on 2008-02-15.00:00:00 last changed 141 months ago
[Voted into WP at August, 2010 meeting.]
Proposed resolution (March, 2010):
Add a new bullet following 6.3 [basic.def.odr] paragraph 5, second bullet:
...Given such an entity named D defined in more than one translation unit, then
each definition of D shall consist of the same sequence of tokens; and
in each definition of D, corresponding names, looked up according to 6.5 [basic.lookup], shall refer to an entity defined within the definition of D, or shall refer to the same entity, after overload resolution (12.2 [over.match]) and after matching of partial template specialization (13.10.4 [temp.over]), except that a name can refer to a const object with internal or no linkage if the object has the same literal type in all definitions of D, and the object is initialized with a constant expression (7.7 [expr.const]), and the value (but not the address) of the object is used, and the object has the same value in all definitions of D; and
in each definition of D, corresponding entities shall have the same language linkage; and
...
I thought this case would result in undefined behavior according to 6.3 [basic.def.odr]:
// t.h:
struct A { void (*p)(); };
// t1.cpp:
#include "t.h" // A::p is a pointer to C++ func
// t2.cpp:
extern "C" {
#include "t.h" // A::p is a pointer to C func
}
...but I don't see how any of the bullets in the list in paragraph 5 apply.
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2014-03-03 00:00:00 | admin | set | status: fdis -> c++11 |
| 2011-04-10 00:00:00 | admin | set | status: wp -> fdis |
| 2010-11-29 00:00:00 | admin | set | status: dr -> wp |
| 2010-08-23 00:00:00 | admin | set | messages: + msg2905 |
| 2010-08-23 00:00:00 | admin | set | status: ready -> dr |
| 2010-03-29 00:00:00 | admin | set | status: review -> ready |
| 2010-02-16 00:00:00 | admin | set | messages: + msg2521 |
| 2010-02-16 00:00:00 | admin | set | status: drafting -> review |
| 2008-06-29 00:00:00 | admin | set | status: open -> drafting |
| 2008-02-15 00:00:00 | admin | create | |