mirror of
https://github.com/github/codeql.git
synced 2025-12-17 09:13:20 +01:00
58 lines
795 B
C++
58 lines
795 B
C++
#include "statements.h"
|
|
|
|
void simple() {
|
|
NonTrivial nt;
|
|
}
|
|
|
|
void simple2() {
|
|
NonTrivial one;
|
|
NonTrivial two;
|
|
}
|
|
|
|
void early_return(int x) {
|
|
NonTrivial before;
|
|
if(x) {
|
|
NonTrivial inner;
|
|
return;
|
|
}
|
|
NonTrivial after;
|
|
}
|
|
|
|
void early_throw(int x) {
|
|
NonTrivial before;
|
|
if(x) {
|
|
NonTrivial inner;
|
|
throw;
|
|
}
|
|
NonTrivial after;
|
|
}
|
|
|
|
void for_loop_scope(int x) {
|
|
NonTrivial outer_scope;
|
|
for(NonTrivial for_scope; x < 10; ++x)
|
|
{
|
|
NonTrivial inner_scope;
|
|
}
|
|
}
|
|
|
|
void never_destructs() {
|
|
NonTrivial nt;
|
|
loop: goto loop;
|
|
}
|
|
|
|
void gotos(int x) {
|
|
NonTrivial nt1;
|
|
if(x)
|
|
goto one; // this goto jumps into a block
|
|
{
|
|
static int y = ++x;
|
|
one:
|
|
NonTrivial nt2;
|
|
if(y)
|
|
goto two; // this goto jumps out of a block
|
|
NonTrivial nt3;
|
|
}
|
|
two:
|
|
--x;
|
|
}
|