Hi Reinhard! We should definitely look into these three problems within the next few weeks, but I don't regard them as very critical, because they affect only special use cases: Advice for user-defined "operator new" implementations and the code generation for get/set advice, which is a feature that is only enabled with --data_joinpoints and still a bit experimental.
How to proceed? Can we/you live with these problems for now and update later or is there no update option and we have to fix it sooner? Cheers, Olaf On 08/24/2017 00:16, Reinhard Tartler wrote: > > > On 08/23/2017 12:07 PM, Olaf Spinczyk wrote: >> Hi! >> >> You can generate the config file easily with ag++ --gen_config. Sorry >> for the inconvenience. The background is that when I wrote the first >> ac++ tests, I did not want the makefile to depend on ag++. >> >> We should change that sooner or later, because it is obviously confusing. > > Not a problem. > > Progress! With a "correct" PUMA CONFIG, I now get further, but there seem to > be > genuine test failures. Are they concerning or shall I ignore them for the > debian > package? > > They look like this: > > /usr/bin/make -C tests -s all > make[2]: Entering directory > '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests' > ...........................................[C:ExecAdviceNewDelete].................................................................................[D:Bug574].......[C:Bug598]........ > > > +---------+ > |ERRORS: | > +---------+ > > ----------------------------------------------------------------------------- > TEST: ExecAdviceNewDelete > ----------------------------------------------------------------------------- > STDOUT: > -------- > make[3]: Entering directory > '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/ExecAdviceNewDelete' > Weaving main.cc > * Running ac++ 2.2 > * Handling Translation Unit `main.cc'. > - Path "main.cc" > - Parsing ... > - Weaving Aspects Forward Declarations ... > - Inserting namespace AC > - Committing > - Preparing introductions ... > - Parsing again ... > - Weaving access control bypass classes ... > - Weaving Join Points ... > Advicecode manipulation > Collecting Advice > Setting up thisJoinPoint for aspectof > Create pointcut expression tree > Matching joinpoints > Aspect ordering ... > Creating project repository 'repo.acp' > Type Check Functions > Access Join Points > Execution Join Points > void *operator new(unsigned long int) > void *operator new[](unsigned long int) > void operator delete(void *) > void operator delete[](void *) > void A::operator delete(void *) > void *C::operator new(unsigned long int) > void C::operator delete(void *) > Construction Join Points > Destruction Join Points > - Aspect Includes ... > - Final cleanup > - Committing > * Inserting unit pro- and epilogues > - Manipulating translation unit file main.cc > * Updating #line directives of generated code fragments > * Saving > - Expanding project includes > - Fixing #line directives > - Path "main.acc" > * Done > Compiling main.acc > ../Makefile.generic:80: recipe for target 'Junk/main.o' failed > make[3]: Leaving directory > '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/ExecAdviceNewDelete' > > STDERR: > -------- > main.cc:5:30: warning: dynamic exception specifications are deprecated in > C++11 > [-Wdeprecated] > void *operator new (size_t ) throw(std::bad_alloc); > ^~~~~ > main.cc:7:31: warning: dynamic exception specifications are deprecated in > C++11 > [-Wdeprecated] > void *operator new (size_t s) throw(std::bad_alloc) { > ^~~~~ > main.cc: In function 'void* operator new(size_t)': > main.cc:7:7: error: declaration of 'void* operator new(size_t) throw > (std::bad_alloc)' has a different exception specifier > void *operator new (size_t s) throw(std::bad_alloc) { > ^~~~~~~~ > main.cc:5:7: note: from previous declaration 'void* operator new(std::size_t)' > void *operator new (size_t ) throw(std::bad_alloc); > ^~~~~~~~ > main.acc: In function 'void* operator new(std::size_t)': > main.acc:147:61: warning: dynamic exception specifications are deprecated in > C++11 [-Wdeprecated] > typedef TJP__Znwm_0< void *, void, void, void *(::size_t) > throw(std::bad_alloc), AC::TL< ::size_t, AC::TLE > > __TJP; > ^~~~~ > main.cc: At global scope: > main.cc:11:33: warning: dynamic exception specifications are deprecated in > C++11 > [-Wdeprecated] > void *operator new[] (size_t s) throw(std::bad_alloc) { > ^~~~~ > main.acc: In function 'void* operator new [](std::size_t)': > main.acc:198:61: warning: dynamic exception specifications are deprecated in > C++11 [-Wdeprecated] > typedef TJP__Znam_0< void *, void, void, void *(::size_t) > throw(std::bad_alloc), AC::TL< ::size_t, AC::TLE > > __TJP; > ^~~~~ > make[3]: *** [Junk/main.o] Error 1 > > > ----------------------------------------------------------------------------- > TEST: Bug574 > ----------------------------------------------------------------------------- > STDOUT: > -------- > make[3]: Entering directory > '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/Bug574' > Weaving main.cc > * Running ac++ 2.2 > * Handling Translation Unit `main.cc'. > - Path "main.cc" > - Parsing ... > - Weaving Aspects Forward Declarations ... > - Inserting namespace AC > - Committing > - Preparing introductions ... > - Parsing again ... > - Weaving access control bypass classes ... > - Weaving Join Points ... > Advicecode manipulation > Collecting Advice > Setting up thisJoinPoint for aspectof > Create pointcut expression tree > Matching joinpoints > Aspect ordering ... > Creating project repository 'repo.acp' > Type Check Functions > Access Join Points > Get: bool Cyg_SchedThread::priority_inherited > Get: int Cyg_SchedThread::original_priority > Execution Join Points > Construction Join Points > Destruction Join Points > - Aspect Includes ... > - Final cleanup > - Committing > * Inserting unit pro- and epilogues > - Manipulating translation unit file main.cc > * Updating #line directives of generated code fragments > * Saving > - Expanding project includes > - Fixing #line directives > - Path "main.acc" > * Done > Compiling main.acc > Linking > make[3]: Leaving directory > '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/Bug574' > make[3]: Entering directory > '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/Bug574' > 1a2 >> int Cyg_SchedThread::original_priority > ../Makefile.generic:48: recipe for target 'diff' failed > make[3]: Leaving directory > '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/Bug574' > > STDERR: > -------- > make[3]: *** [diff] Error 1 > > > ----------------------------------------------------------------------------- > TEST: Bug598 > ----------------------------------------------------------------------------- > STDOUT: > -------- > make[3]: Entering directory > '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/Bug598' > Weaving main.cc > * Running ac++ 2.2 > * Handling Translation Unit `main.cc'. > - Path "main.cc" > - Parsing ... > - Weaving Aspects Forward Declarations ... > - Inserting namespace AC > - Committing > - Preparing introductions ... > - Parsing again ... > - Weaving access control bypass classes ... > - Weaving Join Points ... > Advicecode manipulation > Collecting Advice > Setting up thisJoinPoint for aspectof > Create pointcut expression tree > Matching joinpoints > Aspect ordering ... > Creating project repository 'repo.acp' > Type Check Functions > Access Join Points > Get: char const arr[2] > Execution Join Points > Construction Join Points > Destruction Join Points > - Aspect Includes ... > - Final cleanup > - Committing > * Inserting unit pro- and epilogues > - Manipulating translation unit file main.cc > * Updating #line directives of generated code fragments > * Saving > - Expanding project includes > - Fixing #line directives > - Path "main.acc" > * Done > Compiling main.acc > ../Makefile.generic:80: recipe for target 'Junk/main.o' failed > make[3]: Leaving directory > '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests/Bug598' > > STDERR: > -------- > main.acc: In instantiation of 'TResult __Get__Z4mainv_1_0(TEntity&, AC::RT<T>) > [with TResult = char; TEntity = const char]': > main.cc:16:66: required from here > main.acc:283:17: error: uninitialized const '__result_buffer' [-fpermissive] > const TResult __result_buffer; > ^~~~~~~~~~~~~~~ > main.acc:285:19: error: assignment of read-only variable '__result_buffer' > __result_buffer = ::arr; > ~~~~~~~~~~~~~~~~^~~~ > main.acc:285:19: error: invalid conversion from 'const char*' to 'char' > [-fpermissive] > make[3]: *** [Junk/main.o] Error 1 > > Makefile:161: recipe for target 'all' failed > make[2]: *** [all] Error 1 > make[2]: Leaving directory > '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++/tests' > Makefile:259: recipe for target 'testall' failed > make[1]: *** [testall] Error 2 > make[1]: Leaving directory > '/build/aspectc++-rCVJRW/aspectc++-2.2+git20170823/AspectC++' > debian/rules:52: recipe for target 'test-builds' failed >