Project

General

Profile

Actions

Feature #3379

closed

Support composite pointcuts for macros

Added by Evgeny Novikov over 11 years ago. Updated over 11 years ago.

Status:
Rejected
Priority:
Normal
Category:
-
Start date:
08/30/2012
Due date:
% Done:

0%

Estimated time:
Published in build:

Description

Assume we have such the program:

#define A(lock) lock
#define B(lock) lock
int c = A(10) + 2 * B(10);

and such the aspect:
around: define(A(lock)) || define (B(lock))
{
  100
}

The original program initializes c with 30. One expect that the instrumented program will initialize c with 300, but we have such the code after instrumentation:
int c = 120;

that means that macro A(lock) was replaced by 100 while macro B(lock) was left as is.
So we need '||' support for macros as well as for functions. Workaround is to separate composite pointcuts for macros:
around: define(A(lock)).
{
  100
}
around: define(B(lock))
{
  100
}


Related issues 1 (1 open0 closed)

Is duplicate of C Instrumentation Framework - Bug #1230: Aspectator doesn't work correctly with disjunction of define pointcutsOpenEvgeny Novikov05/18/2011

Actions
Actions #1

Updated by Evgeny Novikov over 11 years ago

  • Status changed from Open to Rejected

Closed as duplicate of old #1230 issue.

Actions

Also available in: Atom PDF