www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/02/12/06:50:45

Xref: news2.mv.net comp.os.msdos.djgpp:998
From: lupus AT tasha DOT dei DOT unipd DOT it (Molaro Paolo 338814/C (addetto))
Newsgroups: comp.os.msdos.djgpp
Subject: Re: v2 vs v1 C++ interpretation
Date: 31 Jan 1996 15:17:29 GMT
Organization: D.E.I - Universita' di Padova, Italia
Lines: 45
Message-ID: <4eo169$5uo@maya.dei.unipd.it>
References: <4eads7$4e6 AT trog DOT dra DOT hmg DOT gb>
NNTP-Posting-Host: tasha.dei.unipd.it
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

In article <4eads7$4e6 AT trog DOT dra DOT hmg DOT gb>,  <itmiller AT taz DOT dra DOT hmg DOT gb> wrote:
>void term()
>{
>	switch (curr_tok)
>	{
>	case 1:
>		double d = 3.0;
>		break;
>	default:
>		return;
>	}
>}
>
>..should fail to compile under djgpp v2 beta 4 with error messages...
>
>test.cc: In function `void term()':
>test.cc:11: jump to case label
>test.cc:9:   crosses initialization of `double d'
>
>..but compile fine if  I do not initialise d, and compile fine under
>djgpp 1.12m4 without alteration?
>

I think you have to write something like this:

	case 1: {
		double d = 3.0;
		break;
	}
	...


The different behavior is, I think, a matter of optimization:
if you don't use the d variable, the compiler can discard it and
give no error ...

Hope this helps and isn't wrong:)

Bye, lupus

-- 
-----------   
-------                 Molaro Paolo           lupus AT dei DOT unipd DOT it
---------                                      lupus AT maya DOT dei DOT unipd DOT it
--------------          I am not an engineer and I proud of it. 

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019