From: SourceForge.net <no...@so...> - 2007-03-29 17:49:02
|
Feature Requests item #1505013, was opened at 2006-06-12 23:05 Message generated for change (Comment added) made by wek_ You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=350599&aid=1505013&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Priority: 5 Private: No Submitted By: Philipp Krause (spth) Assigned to: Nobody/Anonymous (nobody) Summary: Inline assembler won't work with C99 Initial Comment: When I try to compile _asm _endasm; using sdcc -mz80 --std-c99 I get an error. I think this is a bug since this is not analogous to the other sdcc-specific keywords (where "word" is not a keyword with --std-c99, but "_word" is). sdc --version gives: SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.5.6 #4190 (May 26 2006) (UNIX) Philipp ---------------------------------------------------------------------- Comment By: wek (wek_) Date: 2007-03-29 19:49 Message: Logged In: YES user_id=1201677 Originator: NO Sorry for the dummy question: What feature is requested here exactly? JW ---------------------------------------------------------------------- Comment By: Frieder Ferlemann (frief) Date: 2006-08-01 23:21 Message: Logged In: YES user_id=589052 Thank you for clarifying!) So this probably means all occurrences of _asm and _endasm within the library sources of SDCC could/should be changed to their "__" versions? ---------------------------------------------------------------------- Comment By: Maarten Brock (maartenbrock) Date: 2006-08-01 22:55 Message: Logged In: YES user_id=888171 The condition is correct. If sdcc language extensions are not enabled and this keyword does not start with double underscore then treat it as a normal identifier / keyword and thus call check_type. Otherwise start accepting the asm. This also means that __asm is defined, just poorly documented. It's in the index but nowhere in the text. The chapter about ANSI compliance does explain the general rules however. ---------------------------------------------------------------------- Comment By: Frieder Ferlemann (frief) Date: 2006-06-23 10:29 Message: Logged In: YES user_id=589052 I do not understand the condition: if (!options.std_sdcc && yytext[1] != '_') return check_type(); in line 71 (and 79) of SDCC.lex. Shouldn't it be: if (options.std_sdcc && yytext[1] != '_') there? ---------------------------------------------------------------------- Comment By: Maarten Brock (maartenbrock) Date: 2006-06-12 23:29 Message: Logged In: YES user_id=888171 Only double underscore keywords are reserved in C99 for the compiler. Unfortunately there is no __asm defined yet. I will move this to Feature Requests. ---------------------------------------------------------------------- Comment By: Steven Borley (sjborley) Date: 2006-06-12 23:27 Message: Logged In: YES user_id=1270801 >From the manual... Compliant equivalents of these keywords are always available in a form that begin with two underscores, f.e. ’__data’ instead of ’data’. (end of section 8.2) So try __asm (two underscore characters) and __endasm Regards, Steven ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=350599&aid=1505013&group_id=599 |