Title
Inheriting linkage from a previous declaration
Status
open
Section
6.6 [basic.link]
Submitter
Vlad Serebrennikov

Created on 2024-09-12.00:00:00 last changed 1 month ago

Messages

Date: 2024-09-12.00:00:00

(From submission #609.)

Consider the following example from 6.6 [basic.link] paragraph 6:

  static void f();   // #1
  void q() {
    extern void f(); // #2, internal linkage
  }

#1 has internal linkage per 6.6 [basic.link] bullet 3.1. However, it is unclear why #2 would also get internal linkage. At issue is the phrasing in 6.6 [basic.link] paragraph 4:

... The name of an entity that belongs to a namespace scope that has not been given internal linkage above and that is the name of ...

How does the name matching for "has been given" work here, considering that functions may be overloaded, i.e. different entities may have the same name? The notion of names (as opposed to entities) having linkage is questionable to start with.

History
Date User Action Args
2024-09-12 00:00:00admincreate