public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/18829] New: Error signale on an unexisting line
@ 2004-12-04 14:03 federicotomassetti at yahoo dot it
  2004-12-04 14:08 ` [Bug c++/18829] " pinskia at gcc dot gnu dot org
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: federicotomassetti at yahoo dot it @ 2004-12-04 14:03 UTC (permalink / raw)
  To: gcc-bugs

Gcc speaks about an error at line 438 on a file that have only 22x lines... 

Report:
gcc-output,
incriminated source file

In file included from surface.hpp:28,
                 from types.hpp:29,
                 from scene.hpp:28,
                 from scene_intro.hpp:31,
                 from scene_intro.cpp:26:
connecter.hpp:43: warning: `sigc::signal<T_return, T_arg1, T_arg2, T_arg3,
   T_arg4, T_arg5, T_arg6, T_arg7>::slot_type' is implicitly a typename
connecter.hpp:43: warning: implicit typename is deprecated, please see the
   documentation for details
/usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h: In member function `
   typename sigc::functor_trait<T_functor,
   sigc::is_base_and_derived<sigc::functor_base,
   T_functor>::value>::result_type
   sigc::adaptor_functor<T_functor>::operator()() const [with T_functor =
   sigc::bound_mem_functor1<void, IntroScene, bool>]':
/usr/include/sigc++-2.0/sigc++/functors/slot.h:89:   instantiated from `static
T_return
sigc::internal::slot_call0<T_functor,T_return>::call_it(sigc::internal::slot_rep*)
[with T_functor = sigc::bound_mem_functor1<void, IntroScene, bool>, T_return =
void]'
/usr/include/sigc++-2.0/sigc++/functors/slot.h:96:   instantiated from `static
void*(* sigc::internal::slot_call0<T_functor, T_return>::address())(void*) [with
T_functor = sigc::bound_mem_functor1<void, IntroScene, bool>, T_return = void]'

[LOOK HERE]


scene_intro.cpp:438:   instantiated from here

[LOOK HERE]

/usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251: error: no match
   for call to `(sigc::bound_mem_functor1<void, IntroScene, bool>) ()'
/usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1838: error: candidates are:
   T_return sigc::bound_mem_functor1<T_return, T_obj,
   T_arg1>::operator()(typename sigc::type_trait<T_arg3>::take) const [with
   T_return = void, T_obj = IntroScene, T_arg1 = bool]
/usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251: error: return-statement
   with a value, in function declared with a void return type

cc -c -o scene_intro.o `sdl-config --cflags` `pkg-config sigc++-2.0
--cflags`-I../SDL_Flic/ -I/usr/local/include/ -O   scene_intro.cpp


Then come the file scene_intro.cpp:

/***************************************************************************
 *                                                                         *
 *   This file is part of the Domini Terrae project                        *
 *                                                                         *
 *   Copyright (C) 2004 by Federico Tomassetti                             *
 *   federicotomassetti@yahoo.it                                           *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program; if not, write to the                         *
 *   Free Software Foundation, Inc.,                                       *
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
 ***************************************************************************/

#include <cmath>
#include <SDL_image.h>
#include "scene_intro.hpp"
#include "scene_play.hpp"
#include "sdlutil.hpp"
#include "sdlttfutil.hpp"
#include "strutil.hpp"
#include "debug.hpp"
#include "global.hpp"
#include "datafinder.hpp"
#include "app.hpp"
#include "game.hpp"
#include "exit_codes.hpp"
#include "blink.hpp"

#include <iostream>
using namespace std;

static const int line_gap = 40;

IntroScene::IntroScene( unsigned int num_actions,
		const boost::signal<std::string ( unsigned int )>::slot_type& slot_get_text,
		const boost::signal<bool ( unsigned int )>::slot_type& slot_do_action,
		const boost::signal<void ()>::slot_type& slot_all_done )
try	: to_update_( true ), background_( NULL ),
		font_( NULL ), blinking_text_( NULL ), blink_( NULL ),
		done_( false ), completed_actions_( 0 ), num_actions_( num_actions ),
		img_done_( NULL )
{
	sig_need_text_.connect( slot_get_text );
	sig_do_action_.connect( slot_do_action );
	sig_all_done_.connect( slot_all_done );

	// load the background

	background_ = IMGCK_Load( Glob::datafinder()->find( "intro_background" ) );
	
	SDL_Color color = color_create( 0x10, 0x15, 0xb5 );
	
	// blit lines & semi transparent texts on background
	
	SDL_Surface * img_line = IMGCK_Load( Glob::datafinder()->find( "intro_line" ) );
	font_ = TTFCK_OpenFont( Glob::datafinder()->find( "intro_font"), 20 );	
	for ( int i=0;i<num_actions_;i++ ) {
	
		// blit the line
	
		SDL_Rect dstrect_line = rect_create( 230, 200 + (line_gap*i),
				0, 0 );
		SDLCK_BlitSurface( img_line, NULL, background_, &dstrect_line );
		
		// obtain the string
		
		string text = sig_need_text_( i );
		
		// render the string
		
		SDL_Surface * rendered = TTFCK_RenderText_Blended( font_, text.c_str(), color );
		
		// save it as opaque
		
		opaque_texts_.push_back( rendered );
		
		// copy & alphize it
		
		SDL_Surface * alphized = surface_copy( rendered );
		if ( !surface_alphize( alphized, 90 ) ) {
			App::prog_warning( "Text not alphized" );
		}
		
		// blit it alphized
		
		SDL_Rect dstrect_text = rect_create( 240, 215 + (line_gap*i),
				0, 0 );
		SDLCK_BlitSurface( alphized, NULL, background_, &dstrect_text );
		
		SDL_FreeSurface( alphized );
	}
	SDL_FreeSurface( img_line );
	
	img_done_ = IMGCK_Load( Glob::datafinder()->find( "intro_done" ) );
	
	blinking_text_ = new Surface( TTFCK_RenderText_Blended( font_, 
			"press any key to start the game",
			color_create( 0xff, 0, 0 ) ) );
	
} catch ( const SDL_Failure& ex ) {
	App::debug_info( "SDL_Failure creating IntroScene" );
	throw;
}

IntroScene::~IntroScene()
{
	if ( blinking_text_ ) delete blinking_text_;
	if ( blink_ ) delete blink_;
	if ( img_done_ ) SDL_FreeSurface( img_done_ );
	if ( font_ ) TTF_CloseFont( font_ );
	if ( background_ ) SDL_FreeSurface( background_ );
}

void IntroScene::key_pressed( SDLKey key )
{
	static bool done_sent = false;
	if ( done_ && !done_sent ) {
		sig_all_done_();
		done_sent = true;
	}
}

void IntroScene::mouse_pressed( Uint8 button, uint mouse_x, uint mouse_y )
{
}

void IntroScene::mouse_released( Uint8 button, uint mouse_x, uint mouse_y )
{
}

void IntroScene::mouse_moved( uint mouse_x, uint mouse_y )
{
}

void IntroScene::key_released( SDLKey )
{
}

RectsVector IntroScene::update()
try {
	RectsVector rects;
	
	// if we don't need to update, nothing to do
	
	if ( !to_update_ ) return rects;
	IAMHERE;
	SDL_Surface * fb = Video::inst()->get_framebuffer();
	IAMHERE;
	SDLCK_BlitSurface( background_, NULL, fb, NULL );
	IAMHERE;
	rects.push_back( rect_create( 0, 0, fb->w, fb->h ) );
	IAMHERE;
	to_update_ = false;
	return rects;
} catch ( const SDL_Failure& ex ) {
	App::comunicate_error( string( "IntroScene::update(): An SDL function failed: " )
			+ ex.function_ + string( " error: " ) + ex.error_ );
}

void IntroScene::act()
try {

	if ( completed_actions_ < num_actions_ ) {
		SDL_Surface * fb = Video::inst()->get_framebuffer();
			
		SDL_Rect dstrect_text = rect_create( 240, 215 + (line_gap*completed_actions_), 
				0, 0 );
		SDL_Rect dstrect_done = rect_create( 500, 200 + (line_gap*completed_actions_), 
				0, 0 );
		
		// blit opaque text
		
		SDLCK_BlitSurface( opaque_texts_[ completed_actions_ ], NULL, fb, &dstrect_text );
		SDL_FreeSurface( opaque_texts_[ completed_actions_ ] );
		
		sig_do_action_( completed_actions_ );
		
		// blit done img
		
		SDLCK_BlitSurface( img_done_, NULL, fb, &dstrect_done );
	
		completed_actions_++;
	} else if ( completed_actions_== num_actions_ ) {
	
		// start blink
	
		SDL_Color color = color_create( 0xD0, 0x35, 0x35 );	
		blinking_text_ = new Surface( TTFCK_RenderText_Blended( font_, "Press a key to
continue",
				color ) );
		
		blink_ = new Blink( blinking_text_, 400 );
		SDL_Rect saved_rect = rect_create( 400 - (blinking_text_->get()->w/2), 450,
				400 + (blinking_text_->get()->w/2), blinking_text_->get()->h );
		saved_.save( background_, &saved_rect );
		sigc::slot<void> slot = sigc::mem_fun( this, &IntroScene::slot_blink );
		blink_->conn_changed_.connect( slot );
		
		// set done flag
		
		done_ = true;
	}
} catch ( const SDL_Failure& ex ) {
	App::comunicate_error( string( "IntroScene::act(): An SDL function failed: " )
			+ ex.function_ + string( " error: " ) + ex.error_ );
} 

void IntroScene::slot_blink( bool blitted )
{
	SDL_Rect rect = rect_create( 400 - (blinking_text_->get()->w/2), 450,
			400 + (blinking_text_->get()->w/2), blinking_text_->get()->h );
	if ( blitted ) {
		SDLCK_BlitSurface( background_, &rect, blinking_text_->get(), NULL );
	} else {
		saved_.restore( background_, &rect );
	}
	to_update_ = true;
}

-- 
           Summary: Error signale on an unexisting line
           Product: gcc
           Version: 3.3.4
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: federicotomassetti at yahoo dot it
                CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18829


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/18829] Error signale on an unexisting line
  2004-12-04 14:03 [Bug c++/18829] New: Error signale on an unexisting line federicotomassetti at yahoo dot it
@ 2004-12-04 14:08 ` pinskia at gcc dot gnu dot org
  2004-12-06  5:15 ` pinskia at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-12-04 14:08 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-12-04 14:08 -------
Can you try 3.4.x, this is most likely fixed there.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18829


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/18829] Error signale on an unexisting line
  2004-12-04 14:03 [Bug c++/18829] New: Error signale on an unexisting line federicotomassetti at yahoo dot it
  2004-12-04 14:08 ` [Bug c++/18829] " pinskia at gcc dot gnu dot org
@ 2004-12-06  5:15 ` pinskia at gcc dot gnu dot org
  2004-12-06 17:50 ` federicotomassetti at yahoo dot it
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-12-06  5:15 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-12-06 05:15 -------
Also can you read http://gcc.gnu.org/bugs.html and provide the preprocessed source?

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pinskia at gcc dot gnu dot
                   |                            |org
             Status|UNCONFIRMED                 |WAITING
           Keywords|                            |diagnostic


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18829


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/18829] Error signale on an unexisting line
  2004-12-04 14:03 [Bug c++/18829] New: Error signale on an unexisting line federicotomassetti at yahoo dot it
  2004-12-04 14:08 ` [Bug c++/18829] " pinskia at gcc dot gnu dot org
  2004-12-06  5:15 ` pinskia at gcc dot gnu dot org
@ 2004-12-06 17:50 ` federicotomassetti at yahoo dot it
  2004-12-06 21:42 ` pinskia at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: federicotomassetti at yahoo dot it @ 2004-12-06 17:50 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1345 bytes --]


------- Additional Comments From federicotomassetti at yahoo dot it  2004-12-06 17:50 -------
Subject: Re:  Error signale on an unexisting line

 --- pinskia at gcc dot gnu dot org
<gcc-bugzilla@gcc.gnu.org> ha scritto: 
> 
> ------- Additional Comments From pinskia at gcc dot
> gnu dot org  2004-12-06 05:15 -------
> Also can you read http://gcc.gnu.org/bugs.html and
> provide the preprocessed source?

I'm afraid I can't, I modifie that code and don't have
an exact backup... I learned the lesson for the next
time...
> 
> -- 
>            What    |Removed                    
> |Added
>
----------------------------------------------------------------------------
>                  CC|                           
> |pinskia at gcc dot gnu dot
>                    |                            |org
>              Status|UNCONFIRMED                
> |WAITING
>            Keywords|                           
> |diagnostic
> 
> 
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18829
> 
> ------- You are receiving this mail because: -------
> You reported the bug, or are watching the reporter.
>  


		
___________________________________ 
Nuovo Yahoo! Messenger: E' molto più divertente: Audibles, Avatar, Webcam, Giochi, Rubrica… Scaricalo ora! 
http://it.messenger.yahoo.it


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18829


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/18829] Error signale on an unexisting line
  2004-12-04 14:03 [Bug c++/18829] New: Error signale on an unexisting line federicotomassetti at yahoo dot it
                   ` (2 preceding siblings ...)
  2004-12-06 17:50 ` federicotomassetti at yahoo dot it
@ 2004-12-06 21:42 ` pinskia at gcc dot gnu dot org
  2004-12-16 18:31 ` federicotomassetti at yahoo dot it
  2004-12-17 12:55 ` pinskia at gcc dot gnu dot org
  5 siblings, 0 replies; 7+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-12-06 21:42 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-12-06 21:42 -------
So lets close this now, I think there was a bug like this already fixed on the mainline also.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |RESOLVED
         Resolution|                            |INVALID


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18829


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/18829] Error signale on an unexisting line
  2004-12-04 14:03 [Bug c++/18829] New: Error signale on an unexisting line federicotomassetti at yahoo dot it
                   ` (3 preceding siblings ...)
  2004-12-06 21:42 ` pinskia at gcc dot gnu dot org
@ 2004-12-16 18:31 ` federicotomassetti at yahoo dot it
  2004-12-17 12:55 ` pinskia at gcc dot gnu dot org
  5 siblings, 0 replies; 7+ messages in thread
From: federicotomassetti at yahoo dot it @ 2004-12-16 18:31 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From federicotomassetti at yahoo dot it  2004-12-16 18:31 -------
No I provided info needed to analyze this bug

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |UNCONFIRMED
         Resolution|INVALID                     |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18829


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/18829] Error signale on an unexisting line
  2004-12-04 14:03 [Bug c++/18829] New: Error signale on an unexisting line federicotomassetti at yahoo dot it
                   ` (4 preceding siblings ...)
  2004-12-16 18:31 ` federicotomassetti at yahoo dot it
@ 2004-12-17 12:55 ` pinskia at gcc dot gnu dot org
  5 siblings, 0 replies; 7+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-12-17 12:55 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-12-17 12:55 -------
/usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h: In member function 'typename sigc::
adaptor_functor<T_functor>::result_type sigc::adaptor_functor<T_functor>::operator()() const [with 
T_functor = sigc::bound_mem_functor1<void, IntroScene, bool>]':
/usr/include/sigc++-2.0/sigc++/functors/slot.h:89:   instantiated from 'static T_return sigc::internal::
slot_call0<T_functor, T_return>::call_it(sigc::internal::slot_rep*) [with T_functor = sigc::
bound_mem_functor1<void, IntroScene, bool>, T_return = void]'
/usr/include/sigc++-2.0/sigc++/functors/slot.h:96:   instantiated from 'static void* (* sigc::internal::
slot_call0<T_functor, T_return>::address())(void*) [with T_functor = sigc::bound_mem_functor1<void, 
IntroScene, bool>, T_return = void]'
/usr/include/sigc++-2.0/sigc++/functors/slot.h:438:   instantiated from 'sigc::slot0<T_return>::
slot0(const T_functor&) [with T_functor = sigc::bound_mem_functor1<void, IntroScene, bool>, T_return 
= void]'
/usr/include/sigc++-2.0/sigc++/functors/slot.h:1090:   instantiated from 'sigc::slot<T_return, sigc::
nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::slot(const T_functor&) [with T_functor = 
sigc::bound_mem_functor1<void, IntroScene, bool>, T_return = void]'
scene_intro.cpp:203:   instantiated from here
/usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251: error: no match for call to '(sigc::
bound_mem_functor1<void, IntroScene, bool>) ()'
/usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1837: note: candidates are: T_return sigc::
bound_mem_functor1<T_return, T_obj, T_arg1>::operator()(typename sigc::type_trait<T_arg3>::take) 
const [with T_return = void, T_obj = IntroScene, T_arg1 = bool]
/usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:251: error: return-statement with a value, 
in function returning 'void'

mainly this:
scene_intro.cpp:203:   instantiated from here

So fixed so closing as such.

Also this is a most likely a dup of bug 11616.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|---                         |3.4.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18829


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2004-12-17 12:55 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-12-04 14:03 [Bug c++/18829] New: Error signale on an unexisting line federicotomassetti at yahoo dot it
2004-12-04 14:08 ` [Bug c++/18829] " pinskia at gcc dot gnu dot org
2004-12-06  5:15 ` pinskia at gcc dot gnu dot org
2004-12-06 17:50 ` federicotomassetti at yahoo dot it
2004-12-06 21:42 ` pinskia at gcc dot gnu dot org
2004-12-16 18:31 ` federicotomassetti at yahoo dot it
2004-12-17 12:55 ` pinskia at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).