Mantis Bugtracker

Relationship Graph View Issue ] Dependency Graph ]
related to child of duplicate of

Viewing Issue Simple Details
ID Category Severity Reproducibility Date Submitted Last Update
0006682 major always 2008-03-29 15:46 2009-09-01 09:53
Reporter Gustavo J. A. M. Carneiro View Status public  
Assigned To Brad King
Priority normal Resolution fixed  
Status closed      
Summary 0006682: Quote vs bracket include behaviour not correct
Description Trying to parse a project include file everything.h, layout is like this:

everything.h:

#include "string.h"

string.h:

#include <string>

class StringXXX {... };

The test case is attached.

g++ (4.2) compiles this fine, but gccxml gives errors or, in a larger project tree, skips the string.h header altogether.
Additional Information gccxml errors:

In file included from /usr/include/c++/4.2/cstring:52,
                 from /usr/include/c++/4.2/bits/char_traits.h:45,
                 from /usr/include/c++/4.2/string:47,
                 from string.h:2,
                 from everything.h:2:
string.h:6: error: field 'm_string' has incomplete type
In file included from /usr/include/c++/4.2/bits/char_traits.h:45,
                 from /usr/include/c++/4.2/string:47,
                 from string.h:2,
                 from everything.h:2:
/usr/include/c++/4.2/cstring:80: error: '::memcpy' has not been declared
/usr/include/c++/4.2/cstring:81: error: '::memmove' has not been declared
/usr/include/c++/4.2/cstring:82: error: '::strcpy' has not been declared
/usr/include/c++/4.2/cstring:83: error: '::strncpy' has not been declared
/usr/include/c++/4.2/cstring:84: error: '::strcat' has not been declared
/usr/include/c++/4.2/cstring:85: error: '::strncat' has not been declared
/usr/include/c++/4.2/cstring:86: error: '::memcmp' has not been declared
/usr/include/c++/4.2/cstring:87: error: '::strcmp' has not been declared
/usr/include/c++/4.2/cstring:88: error: '::strcoll' has not been declared
/usr/include/c++/4.2/cstring:89: error: '::strncmp' has not been declared
/usr/include/c++/4.2/cstring:90: error: '::strxfrm' has not been declared
/usr/include/c++/4.2/cstring:91: error: '::strcspn' has not been declared
/usr/include/c++/4.2/cstring:92: error: '::strspn' has not been declared
/usr/include/c++/4.2/cstring:93: error: '::strtok' has not been declared
/usr/include/c++/4.2/cstring:94: error: '::memset' has not been declared
/usr/include/c++/4.2/cstring:95: error: '::strerror' has not been declared
/usr/include/c++/4.2/cstring:96: error: '::strlen' has not been declared
/usr/include/c++/4.2/cstring:98: error: '::memchr' has not been declared
/usr/include/c++/4.2/cstring: In function 'void* std::memchr(void*, int, size_t)':
/usr/include/c++/4.2/cstring:102: error: invalid conversion from 'const void*' to 'void*'
/usr/include/c++/4.2/cstring:102: error: initializing argument 1 of 'void* std::memchr(void*, int, size_t)'
/usr/include/c++/4.2/cstring: At global scope:
/usr/include/c++/4.2/cstring:104: error: '::strchr' has not been declared
/usr/include/c++/4.2/cstring:110: error: '::strpbrk' has not been declared
/usr/include/c++/4.2/cstring:116: error: '::strrchr' has not been declared
/usr/include/c++/4.2/cstring:122: error: '::strstr' has not been declared
In file included from /usr/include/c++/4.2/bits/char_traits.h:46,
                 from /usr/include/c++/4.2/string:47,
                 from string.h:2,
                 from everything.h:2:
/usr/include/c++/4.2/bits/stl_algobase.h: In static member function 'static _Tp* std::__copy<true, std::random_access_iterator_tag>::copy(const _Tp*, const _Tp*, _Tp*)':
/usr/include/c++/4.2/bits/stl_algobase.h:298: error: 'memmove' is not a member of 'std'
/usr/include/c++/4.2/bits/stl_algobase.h: In static member function 'static _Tp* std::__copy_backward<true, std::random_access_iterator_tag>::__copy_b(const _Tp*, const _Tp*, _Tp*)':
/usr/include/c++/4.2/bits/stl_algobase.h:446: error: 'memmove' is not a member of 'std'
/usr/include/c++/4.2/bits/stl_algobase.h: In function 'void std::fill(unsigned char*, unsigned char*, const unsigned char&)':
/usr/include/c++/4.2/bits/stl_algobase.h:600: error: 'memset' is not a member of 'std'
/usr/include/c++/4.2/bits/stl_algobase.h: In function 'void std::fill(signed char*, signed char*, const signed char&)':
/usr/include/c++/4.2/bits/stl_algobase.h:608: error: 'memset' is not a member of 'std'
/usr/include/c++/4.2/bits/stl_algobase.h: In function 'void std::fill(char*, char*, const char&)':
/usr/include/c++/4.2/bits/stl_algobase.h:616: error: 'memset' is not a member of 'std'
/usr/include/c++/4.2/bits/stl_algobase.h: In function 'bool std::lexicographical_compare(const unsigned char*, const unsigned char*, const unsigned char*, const unsigned char*)':
/usr/include/c++/4.2/bits/stl_algobase.h:908: error: 'memcmp' is not a member of 'std'
In file included from /usr/include/c++/4.2/string:47,
                 from string.h:2,
                 from everything.h:2:
/usr/include/c++/4.2/bits/char_traits.h: In static member function 'static typename __gnu_cxx::char_traits<_CharT>::char_type* __gnu_cxx::char_traits<_CharT>::move(_CharT*, const _CharT*, size_t)':
/usr/include/c++/4.2/bits/char_traits.h:186: error: 'memmove' is not a member of 'std'
/usr/include/c++/4.2/bits/char_traits.h: In static member function 'static int std::char_traits<char>::compare(const char*, const char*, size_t)':
/usr/include/c++/4.2/bits/char_traits.h:254: error: 'memcmp' was not declared in this scope
/usr/include/c++/4.2/bits/char_traits.h: In static member function 'static size_t std::char_traits<char>::length(const char*)':
/usr/include/c++/4.2/bits/char_traits.h:258: error: 'strlen' was not declared in this scope
/usr/include/c++/4.2/bits/char_traits.h: In static member function 'static const char* std::char_traits<char>::find(const char*, size_t, const char&)':
/usr/include/c++/4.2/bits/char_traits.h:262: error: invalid conversion from 'const void*' to 'void*'
/usr/include/c++/4.2/bits/char_traits.h:262: error: initializing argument 1 of 'void* std::memchr(void*, int, size_t)'
/usr/include/c++/4.2/bits/char_traits.h: In static member function 'static char* std::char_traits<char>::move(char*, const char*, size_t)':
/usr/include/c++/4.2/bits/char_traits.h:266: error: 'memmove' was not declared in this scope
/usr/include/c++/4.2/bits/char_traits.h: In static member function 'static char* std::char_traits<char>::copy(char*, const char*, size_t)':
/usr/include/c++/4.2/bits/char_traits.h:270: error: 'memcpy' was not declared in this scope
/usr/include/c++/4.2/bits/char_traits.h: In static member function 'static char* std::char_traits<char>::assign(char*, size_t, char)':
/usr/include/c++/4.2/bits/char_traits.h:274: error: 'memset' was not declared in this scope
In file included from /usr/include/c++/4.2/memory:57,
                 from /usr/include/c++/4.2/string:48,
                 from string.h:2,
                 from everything.h:2:
/usr/include/c++/4.2/bits/stl_uninitialized.h: In function 'char* std::uninitialized_copy(const char*, const char*, char*)':
/usr/include/c++/4.2/bits/stl_uninitialized.h:120: error: 'memmove' is not a member of 'std'
/usr/include/c++/4.2/bits/stl_uninitialized.h: In function 'wchar_t* std::uninitialized_copy(const wchar_t*, const wchar_t*, wchar_t*)':
/usr/include/c++/4.2/bits/stl_uninitialized.h:128: error: 'memmove' is not a member of 'std'
In file included from everything.h:2:
string.h: At global scope:
string.h:4: error: redefinition of 'class StringXXX'
string.h:5: error: previous definition of 'class StringXXX'


Mantis 1.1.4[^]
Copyright © 2000 - 2008 Mantis Group
Powered by Mantis Bugtracker