Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Bartc <bc@freeuk.com> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: Error messages |
| Date | 2015-07-17 20:31 +0100 |
| Organization | A noiseless patient Spider |
| Message-ID | <mobl33$3rj$1@dont-email.me> (permalink) |
| References | (7 earlier) <mob352$us8$1@dont-email.me> <55A92CAB.3000203@verizon.net> <mobgrv$ind$1@dont-email.me> <55A9496A.5050304@verizon.net> <55A94CDB.50900@verizon.net> |
On 17/07/2015 19:43, James Kuyper wrote:
> Note, in particular, that the "parse error" was reported as having
> occurred somewhere before the '>' character in the following line:
>
> *buf= std::get_temporary_buffer<type>(size);
>
> I know little enough about typical compiler internals, but I would have
> expected that, immediately after reading the '<' character, the parser
> would have recognized that get_temporary_buffer was an identifier, and
> that it would then search it's symbol tables for
> std::get_temporary_buffer. Upon failing to find it, I'd expect an error
> message reporting that fact. I don't understand why it waited until
> after having read the '>' character to report an error,
(I've no idea how C++ compilers are organised. But when I do this sort
of thing, most lookups of user-identifiers aren't done until a later
pass. Then a failure to resolve a name is no longer a syntax error.
But names which are expected to be type identifiers (because the 'shape'
of the syntax only fits a declaration with a type at the beginning) must
be resolved during parsing.)
and in
> particular, to report one not obviously connected to the fact that
> std::get_temporary_buffer has not yet been declared.
> It's fairly obvious what it actually did: it's trying to parse
> std::get_temporary_buffer<type as a comparison expression, and when it
> reaches the '>' character, it realizes that 'type' isn't something that
> can participate in a comparison expression. But that doesn't explain why
> it didn't first identify std::get_temporary_buffer as something that
> also couldn't appear in a comparison expression.
>
> Parsing "TYPE t;" when TYPE has not been declared is a very different
> context.
With this input, when A has not been declared:
A B;
gcc says that the type 'A' is unknown. But change that to:
A(B);
now that works (if B is in scope), because it now assumes that A(B) is a
function call rather than a variable declaration, even though A(B) could
also be declaring B to be of type A. Perhaps the same thing is going on
in your example.
And C++ is considerably more complicated, as a particular bit of starter
syntax could have more possibilities than in C.
--
Bartc
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Error messages jacobnavia <jacob@jacob.remcomp.fr> - 2015-07-17 02:36 +0200
Re: Error messages Richard Heathfield <rjh@cpax.org.uk> - 2015-07-17 01:51 +0100
Re: Error messages Keith Thompson <kst-u@mib.org> - 2015-07-16 18:24 -0700
Re: Error messages Lőrinczy Zsigmond <nospam@for.me> - 2015-07-17 09:31 +0200
Re: Error messages Richard Heathfield <rjh@cpax.org.uk> - 2015-07-17 08:35 +0100
Re: Error messages glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-07-17 09:11 +0000
Re: Error messages Richard Heathfield <rjh@cpax.org.uk> - 2015-07-17 10:30 +0100
Re: Error messages Ian Collins <ian-news@hotmail.com> - 2015-07-17 21:44 +1200
Re: Error messages Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-07-17 12:55 +0100
Re: Error messages Melzzzzz <mel@zzzzz.com> - 2015-07-17 19:53 +0200
Re: Error messages glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-07-17 17:55 +0000
Re: Error messages James Kuyper <jameskuyper@verizon.net> - 2015-07-17 14:19 -0400
Re: Error messages raltbos@xs4all.nl (Richard Bos) - 2015-07-19 21:44 +0000
Re: Error messages gazelle@shell.xmission.com (Kenny McCormack) - 2015-07-17 07:38 +0000
Re: Error messages Noob <root@127.0.0.1> - 2015-07-17 09:58 +0200
Re: Error messages gazelle@shell.xmission.com (Kenny McCormack) - 2015-07-17 13:32 +0000
Re: Error messages Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-07-18 11:13 +0100
Re: Error messages James Kuyper <jameskuyper@verizon.net> - 2015-07-16 22:36 -0400
Re: Error messages Reinhardt Behm <rbehm@hushmail.com> - 2015-07-17 13:05 +0800
Re: Error messages jacobnavia <jacob@jacob.remcomp.fr> - 2015-07-17 09:48 +0200
Re: Error messages David Kleinecke <dkleinecke@gmail.com> - 2015-07-17 19:23 -0700
Re: Error messages Keith Thompson <kst-u@mib.org> - 2015-07-17 21:24 -0700
Re: Error messages David Kleinecke <dkleinecke@gmail.com> - 2015-07-18 18:29 -0700
Re: Error messages Keith Thompson <kst-u@mib.org> - 2015-07-18 20:59 -0700
Re: Error messages David Kleinecke <dkleinecke@gmail.com> - 2015-07-19 19:22 -0700
Re: Error messages David Brown <david.brown@hesbynett.no> - 2015-07-21 11:40 +0200
Compiler conformance (Was: Error messages) gazelle@shell.xmission.com (Kenny McCormack) - 2015-07-21 11:40 +0000
Re: Compiler conformance Noob <root@127.0.0.1> - 2015-07-21 14:01 +0200
Re: Compiler conformance gazelle@shell.xmission.com (Kenny McCormack) - 2015-07-21 13:47 +0000
Re: Error messages Reinhardt Behm <rbehm@hushmail.com> - 2015-07-18 13:38 +0800
Re: Error messages Keith Thompson <kst-u@mib.org> - 2015-07-17 07:54 -0700
Re: Error messages raltbos@xs4all.nl (Richard Bos) - 2015-07-19 22:00 +0000
Re: Error messages Richard Damon <Richard@Damon-Family.org> - 2015-07-19 19:47 -0400
Re: Error messages jacobnavia <jacob@jacob.remcomp.fr> - 2015-07-17 10:06 +0200
Re: Error messages Bartc <bc@freeuk.com> - 2015-07-17 12:07 +0100
Re: Error messages Noob <root@127.0.0.1> - 2015-07-17 13:14 +0200
Re: Error messages Bartc <bc@freeuk.com> - 2015-07-17 12:40 +0100
Re: Error messages gwowen <gwowen@gmail.com> - 2015-07-17 04:32 -0700
Re: Error messages jacobnavia <jacob@jacob.remcomp.fr> - 2015-07-17 14:15 +0200
Re: Error messages gwowen <gwowen@gmail.com> - 2015-07-17 05:25 -0700
Re: Error messages Bartc <bc@freeuk.com> - 2015-07-17 13:34 +0100
Re: Error messages Keith Thompson <kst-u@mib.org> - 2015-07-17 08:07 -0700
Re: Error messages jacobnavia <jacob@jacob.remcomp.fr> - 2015-07-17 14:38 +0200
Re: Error messages Martin Shobe <martin.shobe@yahoo.com> - 2015-07-17 08:50 -0500
Re: Error messages jacobnavia <jacob@jacob.remcomp.fr> - 2015-07-17 16:08 +0200
Re: Error messages Martin Shobe <martin.shobe@yahoo.com> - 2015-07-17 09:24 -0500
Re: Error messages James Kuyper <jameskuyper@verizon.net> - 2015-07-17 12:26 -0400
Re: Error messages Martin Shobe <martin.shobe@yahoo.com> - 2015-07-17 13:19 -0500
Re: Error messages James Kuyper <jameskuyper@verizon.net> - 2015-07-17 14:28 -0400
Re: Error messages James Kuyper <jameskuyper@verizon.net> - 2015-07-17 14:43 -0400
Re: Error messages Bartc <bc@freeuk.com> - 2015-07-17 20:31 +0100
Re: Error messages Martin Shobe <martin.shobe@yahoo.com> - 2015-07-18 08:41 -0500
Re: Error messages David Brown <david.brown@hesbynett.no> - 2015-07-21 12:25 +0200
Re: Error messages James Kuyper <jameskuyper@verizon.net> - 2015-07-21 13:20 -0400
Re: Error messages David Brown <david.brown@hesbynett.no> - 2015-07-22 00:05 +0200
Re: Error messages Noob <root@127.0.0.1> - 2015-07-17 16:16 +0200
Re: Error messages doctor@doctor.nl2k.ab.ca (The Doctor) - 2015-07-17 14:49 +0000
Re: Error messages Noob <root@127.0.0.1> - 2015-07-17 20:02 +0200
Re: Error messages The Doctor <doctor@doctor.nl2k.ab.ca> - 2015-07-17 22:24 +0000
Re: Error messages Noob <root@127.0.0.1> - 2015-07-20 10:46 +0200
Re: Error messages doctor@doctor.nl2k.ab.ca (The Doctor) - 2015-07-20 14:59 +0000
Re: Error messages Keith Thompson <kst-u@mib.org> - 2015-07-17 08:25 -0700
Re: Error messages raltbos@xs4all.nl (Richard Bos) - 2015-07-19 22:07 +0000
Re: Error messages Ed Prochak <edprochak@gmail.com> - 2015-07-17 20:11 -0700
csiph-web