I started playing with clang and Firebird sourcecode in a lunchbreak
on Lubuntu 10.10 amd64
http://cplusplus-soup.com/2010/10/04/clang-gc/CXX="clang++"
tar -jxvf /home/mariuz/Downloads/Firebird-2.5.0.26074-0.tar.bz2
apt-get install llvm-2.8 clang
clang++ -v
clang version 2.8 (branches/release_28)
Target: x86_64-pc-linux-gnu
Thread model: posix
sudo apt-get build-dep firebird2.5-super
/configure
make
clang++ -I../src/include/gen -I../src/include -I../src/vulcan
-DNAMESPACE=Vulcan -I../extern/icu/source/common
-I../extern/icu/source/i18n -DNDEBUG -ggdb
-DFB_SEND_FLAGS=MSG_NOSIGNAL -DLINUX -DAMD64 -pipe -MMD -fPIC
-fmessage-length=0 -O3 -fno-omit-frame-pointer -pthread -DBOOT_BUILD
-pthread -fno-rtti -c ../src/common/config/config_file.cpp -o
../temp/boot/common/config/config_file.o
In file included from ../src/common/config/config_file.cpp:27:
In file included from ../src/common/config/../../common/config/config_file.h:28:
../src/common/config/../../common/classes/objects_array.h:408:51:
warning: field is uninitialized when used here [-Wuninitialized]
const_iterator(const const_iterator& it) : ptr(ptr) { }
^
../src/common/config/../../common/classes/objects_array.h:485:39:
warning: field is uninitialized when used here [-Wuninitialized]
iterator(const iterator& it) : ptr(ptr) { }
^
In file included from ../src/common/config/config_file.cpp:27:
In file included from ../src/common/config/../../common/config/config_file.h:28:
In file included from
../src/common/config/../../common/classes/objects_array.h:32:
../src/include/../common/classes/array.h:453:3: error: use of
undeclared identifier 'insert'
insert(pos, item);
^
this->
In file included from ../src/common/config/config_file.cpp:27:
In file included from ../src/common/config/../../common/config/config_file.h:28:
../src/common/config/../../common/classes/objects_array.h:196:22:
note: in instantiation of member function
'Firebird::SortedArray<Firebird::Pair<Firebird::Full<Firebird::StringBase<Firebird::PathNameComparator>,
Firebird::StringBase<Firebird::PathNameComparator> > > *,
Firebird::InlineStorage<Firebird::Pair<Firebird::Full<Firebird::StringBase<Firebird::PathNameComparator>,
Firebird::StringBase<Firebird::PathNameComparator> > > *, 100>,
Firebird::StringBase<Firebird::PathNameComparator> const *,
Firebird::FirstPointerKey<Firebird::Pair<Firebird::Full<Firebird::StringBase<Firebird::PathNameComparator>,
Firebird::StringBase<Firebird::PathNameComparator> > > >,
Firebird::ObjectComparator<Firebird::StringBase<Firebird::PathNameComparator>
const *> >::add' requested here
return inherited::add(dataL);
^
../src/common/config/../../common/classes/objects_array.h:368:11:
note: in instantiation of member function
'Firebird::ObjectsArray<Firebird::Pair<Firebird::Full<Firebird::StringBase<Firebird::PathNameComparator>,
Firebird::StringBase<Firebird::PathNameComparator> > >,
Firebird::SortedArray<Firebird::Pair<Firebird::Full<Firebird::StringBase<Firebird::PathNameComparator>,
Firebird::StringBase<Firebird::PathNameComparator> > > *,
Firebird::InlineStorage<Firebird::Pair<Firebird::Full<Firebird::StringBase<Firebird::PathNameComparator>,
Firebird::StringBase<Firebird::PathNameComparator> > > *, 100>,
Firebird::StringBase<Firebird::PathNameComparator> const *,
Firebird::FirstPointerKey<Firebird::Pair<Firebird::Full<Firebird::StringBase<Firebird::PathNameComparator>,
Firebird::StringBase<Firebird::PathNameComparator> > > >,
Firebird::ObjectComparator<Firebird::StringBase<Firebird::PathNameComparator>
const *> > >::add' requested here
return inherited::add(item);
^
../src/common/config/config_file.cpp:262:3: note: in instantiation of
member function
'Firebird::SortedObjectsArray<Firebird::Pair<Firebird::Full<Firebird::StringBase<Firebird::PathNameComparator>,
Firebird::StringBase<Firebird::PathNameComparator> > >,
Firebird::InlineStorage<Firebird::Pair<Firebird::Full<Firebird::StringBase<Firebird::PathNameComparator>,
Firebird::StringBase<Firebird::PathNameComparator> > > *, 100>,
Firebird::StringBase<Firebird::PathNameComparator>,
Firebird::FirstPointerKey<Firebird::Pair<Firebird::Full<Firebird::StringBase<Firebird::PathNameComparator>,
Firebird::StringBase<Firebird::PathNameComparator> > > >,
Firebird::ObjectComparator<Firebird::StringBase<Firebird::PathNameComparator>
const *> >::add' requested here
parameters.add(Parameter(getPool(), key, value));
^
In file included from ../src/common/config/config_file.cpp:27:
In file included from ../src/common/config/../../common/config/config_file.h:28:
In file included from
../src/common/config/../../common/classes/objects_array.h:32:
../src/include/../common/classes/array.h:181:7: note: must qualify
identifier to find this declaration in dependent base class
void insert(const size_t index, const T& item)
^
../src/include/../common/classes/array.h:189:7: note: must qualify
identifier to find this declaration in dependent base class
void insert(const size_t index, const Array<T, Storage>& items)
^
../src/include/../common/classes/array.h:198:7: note: must qualify
identifier to find this declaration in dependent base class
void insert(const size_t index, const T* items, const size_t itemsCount)
^
2 warnings and 1 error generated.
make[3]: *** [../temp/boot/common/config/config_file.o] Error 1
make[3]: Leaving directory `/tmp/Firebird-2.5.0.26074-0/gen'
make[2]: *** [gpre_boot] Error 2
make[2]: Leaving directory `/tmp/Firebird-2.5.0.26074-0/gen'
make[1]: *** [../gen/firebird/bin/gpre_static] Error 2
make[1]: Leaving directory `/tmp/Firebird-2.5.0.26074-0/gen'
make: *** [firebird] Error 2
------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3.
Spend less time writing and rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyofthewebFirebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel