Skip to content

Commit

Permalink
Minor fixes - boost::wave whitespace issue and uninitialized variable (
Browse files Browse the repository at this point in the history
…AcademySoftwareFoundation#840)

* Turn off Turn off whitespace insertion when using boost::wave.

* Fix  un-initialized members of ASTfunction_call.
Move all initialization into constructor so some compilers can error on regression.
  • Loading branch information
marsupial authored and lgritz committed Jan 30, 2018
1 parent 9df4e9c commit 9c37c20
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 4 deletions.
6 changes: 3 additions & 3 deletions src/liboslcomp/ast.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1025,14 +1025,14 @@ ASTtype_constructor::childname (size_t i) const
ASTfunction_call::ASTfunction_call (OSLCompilerImpl *comp, ustring name,
ASTNode *args, FunctionSymbol *funcsym)
: ASTNode (function_call_node, comp, 0, args), m_name(name),
m_sym(funcsym ? funcsym : comp->symtab().find (name)), // Look it up.
m_poly(funcsym), // Default - resolved symbol or null
m_argread(~1), // Default - all args are read except the first
m_argwrite(1), // Default - first arg only is written by the op
m_argtakesderivs(0) // Default - doesn't take derivs
{
// If we weren't passed a function symbol directly, look it up.
m_sym = funcsym ? funcsym : comp->symtab().find (name);
if (! m_sym) {
error ("function '%s' was not declared in this scope", name.c_str());
error ("function '%s' was not declared in this scope", name);
// FIXME -- would be fun to troll through the symtab and try to
// find the things that almost matched and offer suggestions.
return;
Expand Down
4 changes: 3 additions & 1 deletion src/liboslcomp/oslcomp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -204,8 +204,10 @@ OSLCompilerImpl::preprocess_buffer (const std::string &buffer,
context_type ctx (instring.begin(), instring.end(), filename.c_str());

// Turn on support of variadic macros, e.g. #define FOO(...) __VA_ARGS__
// Turn off whitespace insertion.
boost::wave::language_support lang = boost::wave::language_support (
ctx.get_language() | boost::wave::support_option_variadics);
(ctx.get_language() | boost::wave::support_option_variadics)
& ~boost::wave::language_support::support_option_insert_whitespace);
ctx.set_language (lang);

ctx.add_macro_definition (OIIO::Strutil::format("OSL_VERSION_MAJOR=%d",
Expand Down

0 comments on commit 9c37c20

Please sign in to comment.