реклама на сайте
подробности

 
 
> 4.41A не различает одинаковые символы из разных namespace, баг?
vet
сообщение Nov 15 2007, 13:14
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



Тестовый пример:
Цитата(n1.cpp)
Код
namespace n1 {
  int flags;
}

Цитата(n2.cpp)
Код
namespace n2 {
  int flags;
}

Цитата(main.cpp)
Код
namespace n1 {
extern int flags;
}
namespace n2 {
extern int flags;
}

volatile int a;

int main()
{
  a = n1::flags;
  a = n2::flags;
  return 0;
}

Что видим в листинге (взят тулчейн для AVR, с ARM то же самое):
Цитата(main.s90)
Код
`?<Name n1 0>`      SYMBOL "n1"
flags               SYMBOL "flags", `?<Name n1 0>`

        EXTERN flags
...
        RSEG CODE:CODE:NOROOT(1)
//   13 int main()
main:
//   14 {
//   15   a = n1::flags;
        LDI     R30, LOW(flags)
        LDI     R31, (flags) >> 8
        LD      R16, Z
        LDD     R17, Z+1
        LDI     R30, LOW(a)
        LDI     R31, (a) >> 8
        ST      Z, R16
        STD     Z+1, R17
//   16   a = n2::flags;
        LDI     R30, LOW(flags)
        LDI     R31, (flags) >> 8
        LD      R16, Z
        LDD     R17, Z+1
        LDI     R30, LOW(a)
        LDI     R31, (a) >> 8
        ST      Z, R16
        STD     Z+1, R17
//   17   return 0;
        LDI     R16, 0
        LDI     R17, 0
        RET
//   18 }


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 04:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01354 секунд с 7
ELECTRONIX ©2004-2016