active section at the time of the directive.
* null-dbgfmt.c, stabs-dbgfmt.c: Implement.
* gas-bison.y: Pass.
svn path=/trunk/yasm/; revision=1348
* Call yasm_dbgfmt_directive() instead of calling this function.
*/
int (*directive) (yasm_dbgfmt *dbgfmt, const char *name,
- yasm_valparamhead *valparams, unsigned long line);
+ yasm_section *sect, yasm_valparamhead *valparams,
+ unsigned long line);
/** Module-level implementation of yasm_dbgfmt_generate().
* Call yasm_dbgfmt_generate() instead of calling this function.
/** DEBUG directive support.
* \param dbgfmt debug format
* \param name directive name
+ * \param sect current active section
* \param valparams value/parameters
* \param line virtual line (from yasm_linemap)
* \return Nonzero if directive was not recognized; 0 if directive was
* recognized even if it wasn't valid.
*/
int yasm_dbgfmt_directive(yasm_dbgfmt *dbgfmt, const char *name,
- yasm_valparamhead *valparams, unsigned long line);
+ yasm_section *sect, yasm_valparamhead *valparams,
+ unsigned long line);
/** Generate debugging information bytecodes.
* \param dbgfmt debug format
#define yasm_dbgfmt_destroy(dbgfmt) \
((yasm_dbgfmt_base *)dbgfmt)->module->destroy(dbgfmt)
-#define yasm_dbgfmt_directive(dbgfmt, name, valparams, line) \
- ((yasm_dbgfmt_base *)dbgfmt)->module->directive(dbgfmt, name, valparams, \
- line)
+#define yasm_dbgfmt_directive(dbgfmt, name, sect, valparams, line) \
+ ((yasm_dbgfmt_base *)dbgfmt)->module->directive(dbgfmt, name, sect, \
+ valparams, line)
#define yasm_dbgfmt_generate(dbgfmt) \
((yasm_dbgfmt_base *)dbgfmt)->module->generate(dbgfmt)
static int
null_dbgfmt_directive(yasm_dbgfmt *dbgfmt, const char *name,
- yasm_valparamhead *valparams, unsigned long line)
+ yasm_section *sect, yasm_valparamhead *valparams,
+ unsigned long line)
{
return 1;
}
static int
stabs_dbgfmt_directive(yasm_dbgfmt *dbgfmt, const char *name,
- yasm_valparamhead *valparams, unsigned long line)
+ yasm_section *sect, yasm_valparamhead *valparams,
+ unsigned long line)
{
return 1;
}
vp = yasm_vp_create($3.contents, NULL);
yasm_vps_append(&vps, vp);
- yasm_dbgfmt_directive(parser_gas->dbgfmt, "file", &vps, cur_line);
+ yasm_dbgfmt_directive(parser_gas->dbgfmt, "file",
+ parser_gas->cur_section, &vps, cur_line);
yasm_vps_delete(&vps);
$$ = NULL;
vp = yasm_vp_create($2.contents, NULL);
yasm_vps_append(&vps, vp);
- yasm_dbgfmt_directive(parser_gas->dbgfmt, "file", &vps, cur_line);
+ yasm_dbgfmt_directive(parser_gas->dbgfmt, "file",
+ parser_gas->cur_section, &vps, cur_line);
yasm_vps_delete(&vps);
$$ = NULL;
vp = yasm_vp_create(NULL, p_expr_new_ident(yasm_expr_int($3)));
yasm_vps_append(&vps, vp);
- yasm_dbgfmt_directive(parser_gas->dbgfmt, "loc", &vps, cur_line);
+ yasm_dbgfmt_directive(parser_gas->dbgfmt, "loc",
+ parser_gas->cur_section, &vps, cur_line);
yasm_vps_delete(&vps);
$$ = NULL;
vp = yasm_vp_create(NULL, p_expr_new_ident(yasm_expr_int($4)));
yasm_vps_append(&vps, vp);
- yasm_dbgfmt_directive(parser_gas->dbgfmt, "loc", &vps, cur_line);
+ yasm_dbgfmt_directive(parser_gas->dbgfmt, "loc",
+ parser_gas->cur_section, &vps, cur_line);
yasm_vps_delete(&vps);
$$ = NULL;