Subject: [Boost-bugs] [Boost C++ Libraries] #5326: several g++ warnings found when compile boost::interprocess examples
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2011-03-17 02:35:02
#5326: several g++ warnings found when compile boost::interprocess examples
---------------------------------+------------------------------------------
Reporter: frankrq2009@⦠| Owner: igaztanaga
Type: Bugs | Status: new
Milestone: To Be Determined | Component: interprocess
Version: Boost 1.45.0 | Severity: Problem
Keywords: interprocess |
---------------------------------+------------------------------------------
Hi,
When I compiled the examples on
boost_1_46_1/doc/html/interprocess/synchronization_mechanisms.html, in
windows 7 g++ mingw 4.5.2 generated the executable with the following
warnings(though the program run correctly).
output of g++ mingw 4.5.2 in DevC++:
Compiler: Default compiler
Building Makefile: "C:\code\test\ipc2\dev\Makefile.win"
Executing make...
mingw32-make -f "C:\code\test\ipc2\dev\Makefile.win" all
g++.exe -c ../ipc2.cpp -o ../ipc2.o -I"include" -I"F:/boost_1_46_1"
-Wall -Wno-deprecated -DWIN32 -mthreads -march=i686 -fexceptions
-std=gnu++0x -DNDEBUG -fexceptions -O2
In file included from F:/boost_1_46_1/boost/interprocess/errors.hpp:37:0,
from
F:/boost_1_46_1/boost/interprocess/exceptions.hpp:20,
from
F:/boost_1_46_1/boost/interprocess/shared_memory_object.hpp:17,
from ../ipc2.cpp:1:
F:/boost_1_46_1/boost/interprocess/detail/win32_api.hpp: In function 'bool
boost::interprocess::winapi::get_wmi_class_attribute(std::wstring&, const
wchar_t*, const wchar_t*)':
F:/boost_1_46_1/boost/interprocess/detail/win32_api.hpp:1472:21: warning:
unused variable 'co_initialize_end'
In file included from
F:/boost_1_46_1/boost/date_time/microsec_time_clock.hpp:23:0,
from
F:/boost_1_46_1/boost/date_time/posix_time/posix_time_types.hpp:11,
from
F:/boost_1_46_1/boost/interprocess/detail/posix_time_types_wrk.hpp:23,
from
F:/boost_1_46_1/boost/interprocess/sync/scoped_lock.hpp:31,
from ../ipc2.cpp:3:
F:/boost_1_46_1/boost/date_time/filetime_functions.hpp: At global scope:
F:/boost_1_46_1/boost/date_time/filetime_functions.hpp:57:90: warning:
declaration of 'void
boost::date_time::winapi::GetSystemTimeAsFileTime(boost::date_time::winapi::FILETIME*)'
with C language linkage
F:/boost_1_46_1/boost/interprocess/detail/win32_api.hpp:798:49: warning:
conflicts with previous declaration 'void
boost::interprocess::winapi::GetSystemTimeAsFileTime(boost::interprocess::winapi::interprocess_filetime*)'
F:/boost_1_46_1/boost/date_time/filetime_functions.hpp:58:122: warning:
declaration of 'int
boost::date_time::winapi::FileTimeToLocalFileTime(const
boost::date_time::winapi::FILETIME*, boost::date_time::winapi::FILETIME*)'
with C language linkage
F:/boost_1_46_1/boost/interprocess/detail/win32_api.hpp:799:49: warning:
conflicts with previous declaration 'int
boost::interprocess::winapi::FileTimeToLocalFileTime(const
boost::interprocess::winapi::interprocess_filetime*, const
boost::interprocess::winapi::interprocess_filetime*)'
../ipc2.cpp: In function 'int main()':
../ipc2.cpp:18:10: warning: unused variable 'remover'
g++.exe ../ipc2.o -o "ipc2.exe" -L"lib" -L"F:/boost_1_46_1/stage/lib" -s
-lole32 -loleaut32 -lboost_date_time-mgw45-mt-1_46_1 -s
Execution terminated
source file:
#include <boost/interprocess/shared_memory_object.hpp>
#include <boost/interprocess/mapped_region.hpp>
#include <boost/interprocess/sync/scoped_lock.hpp>
#include "doc_anonymous_mutex_shared_data.hpp"
#include <iostream>
#include <cstdio>
using namespace boost::interprocess;
int main ()
{
try
{
//Remove shared memory on destruction
struct shm_remove
{
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
} remover;
//Open the shared memory object.
shared_memory_object shm
(open_only //only create
,"MySharedMemory" //name
,read_write //read-write mode
);
//Map the whole shared memory in this process
mapped_region region
(shm //What to map
,read_write //Map it as read-write
);
//Get the address of the mapped region
void * addr = region.get_address();
//Construct the shared structure in memory
shared_memory_log * data = static_cast<shared_memory_log*>(addr);
//Write some logs
for(int i = 0; i < 100; ++i){
//Lock the mutex
scoped_lock<interprocess_mutex> lock(data->mutex);
//std::sprintf(data->items[(data->current_line++) %
shared_memory_log::NumItems]
// ,"%s_%d", "process_a", i);
printf("%s\n",data->items[i]);
if(i == (shared_memory_log::NumItems-1))
data->end_b = true;
//Mutex is released here
}
//Wait until the other process ends
while(1){
scoped_lock<interprocess_mutex> lock(data->mutex);
if(data->end_a)
break;
}
}
catch(interprocess_exception &ex)
{
std::cout << "ipc exception caught:" << ex.what() << std::endl;
return 1;
}
return 0;
}
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/5326> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:05 UTC